---
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 Sassioli      | GerritForge            |
| Edwin Kempin          | Google                 |
| Matthias Sohn         | SAP                    |
| Nasser Grainawi       | Qualcomm               |

### Former community managers

| Name                  | Affiliation            |
|-----------------------|------------------------|
| 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            |
|-----------------------|------------------------|
| Chris Poucet          | Google                 |
| Luca Milanesio        | GerritForge            |
| Patrick Hiesel        | Google                 |
| Saša Živkov           | SAP                    |

The Google members have jointly 3 votes on the ESC.

### Former ESC members

| Name                  | Affiliation                            |
|-----------------------|----------------------------------------|
| Albert Cui            | Google                                 |
| Alice Kober-Sotzek    | Google                                 |
| Ben Rohlfs            | Google                                 |
| David Pursehouse      | Independent (formerly Sony, CollabNet) |
| Han-Wen Nienhuys      | 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           | Google                                  |
| Jacek Centkowski           | Independent (formerly Digital.ai)       |
| Joerg Zieren               | Google                                  |
| Kaushik Lingarkar          | Qualcomm                                |
| Luca Milanesio             | GerritForge                             |
| Marco Miller               | Ericsson                                |
| Marija Savtchouk           | Google                                  |
| Martin Fick                | Qualcomm                                |
| Matthias Sohn              | SAP                                     |
| Milutin Kristofic          | Google                                  |
| Nasser Grainawi            | Qualcomm                                |
| 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) |
| Kasper Nilsson        | Google                     |
| Logan Hanks           | Google                     |
| Ole Rehmsen           | Google                     |
| Shawn Pearce          | Google                     |
| Tao Zhou              | Google                     |
| Viktar Donich         | Google                     |
| Wyatt Allen           | Google                     |
