---
title: "Gerrit Code Review - Project Members"
permalink: members.html
hide_sidebar: true
hide_navtoggle: true
toc: false
---

## Community Managers

Gerrit community managers act as stakeholders for the Gerrit community
and focus on the health of the community. For details about the role of
community managers, refer to the
[description here](https://gerrit-review.googlesource.com/Documentation/dev-roles.html#community-manager).

Community Managers for the 2024-2025 term are:

| Name                  | Affiliation                 |
|-----------------------|-----------------------------|
| Daniele Sassoli       | GerritForge                 |
| Matthias Sohn         | SAP                         |
| Nasser Grainawi       | Qualcomm Technologies, Inc. |

### Former community managers

| Name                  | Affiliation            |
|-----------------------|------------------------|
| Edwin Kempin          | Google                 |
| Marco Miller          | Ericsson               |
| Yolanda Jasso         | GerritForge            |

## Engineering Steering Committee

The Gerrit project has an Engineering Steering Committee (ESC) that
governs the project. For details about the role of the ESC, refer to the
[description here](https://gerrit-review.googlesource.com/Documentation/dev-processes.html#steering-committee).

Members of the ESC for the 2024-2025 term are:

| Name                  | Affiliation            |
|-----------------------|------------------------|
| Edwin Kempin          | Google                 |
| Luca Milanesio        | GerritForge            |
| Saša Živkov           | SAP                    |

The Google member(s) have jointly 3 votes on the ESC.

### Former ESC members

| Name                  | Affiliation                            |
|-----------------------|----------------------------------------|
| Albert Cui            | Google                                 |
| Alice Kober-Sotzek    | Google                                 |
| Ben Rohlfs            | Google                                 |
| Chris Poucet          | Google                                 |
| David Pursehouse      | Independent (formerly Sony, CollabNet) |
| Han-Wen Nienhuys      | Independent (formerly Google)          |
| Patrick Hiesel        | Google                                 |

## Maintainers

Maintainers are the gatekeepers of the project and are in charge of approving
and submitting changes. For more details about the role of maintainers, refer
to the
[description here](https://gerrit-review.googlesource.com/Documentation/dev-roles.html#maintainer).

Current maintainers are:

| Name                       | Affiliation                                    |
|----------------------------|------------------------------------------------|
| Antonio Barone             | GerritForge                                    |
| Ben Rohlfs                 | Google                                         |
| Chris Poucet               | Google                                         |
| David Ostrovsky            | Independent                                    |
| David Pursehouse           | Independent (formerly Sony, CollabNet)         |
| Dhruv Srivastava           | Google                                         |
| Dmitrii Filippov           | Google                                         |
| Edwin Kempin               | Google (formerly SAP)                          |
| Frank Borden               | Google                                         |
| Han-Wen Nienhuys           | Independent (formerly Google)                  |
| Jacek Centkowski           | Independent (formerly Digital.ai)              |
| Kamil Musin                | Google                                         |
| Kaushik Lingarkar          | Qualcomm Technologies, Inc.                    |
| Luca Milanesio             | GerritForge                                    |
| Marco Miller               | Ericsson                                       |
| Martin Fick                | NVIDIA (formerly Qualcomm Technologies, Inc.)  |
| Matthias Sohn              | SAP                                            |
| Milutin Kristofic          | Google                                         |
| Nasser Grainawi            | Qualcomm Technologies, Inc.                    |
| Nitzan Gur-Furman          | Google                                         |
| Patrick Hiesel             | Google                                         |
| Patrick Mulhall (Paladox)  | Independent                                    |
| Saša Živkov                | SAP                                            |
| Sven Selberg               | Axis                                           |
| Thomas Dräbing             | SAP                                            |
| Youssef Elghareeb          | Google                                         |

### Former maintainers

| Name                  | Affiliation                        |
|-----------------------|------------------------------------|
| Alice Kober-Sotzek    | Google                             |
| Andrew Bonventre      | Google                             |
| Becky Siegel          | Google                             |
| Dave Borowitz         | Google                             |
| Gal Paikin            | Google                             |
| Hugo Arès             | Kaloom (formerly Ericsson)         |
| Joerg Zieren          | Google                             |
| Kasper Nilsson        | Google                             |
| Logan Hanks           | Google                             |
| Marija Savtchouk      | Google                             |
| Ole Rehmsen           | Google                             |
| Shawn Pearce          | Google (Founder of Gerrit and JGit)|
| Tao Zhou              | Google                             |
| Viktar Donich         | Google                             |
| Wyatt Allen           | Google                             |
