# Gerrit Virtual User Summit 2021 - Speakers

### Luca Milanesio - GerritForge {#lmilanesio}

[LinkedIn](https://www.linkedin.com/in/lucamilanesio/)

Luca is the co-founder of GerritForge and has over 25 years of software
development and application lifecycle management experience.
He is a Gerrit Contributor since 2012 and member of the Engineering
Steering Committee since 2019.

Luca maintains [GerritHub.io](https://gerrithub.io), the Open Service
for Gerrit Code Review on top of GitHub repositories.

### Fabio Ponciroli - GerritForge {#fponciroli}

[LinkedIn](https://uk.linkedin.com/in/fponciroli/)

Fabio is a Senior Software Engineer at GerritForge where he contributes to the
OpenSource Gerrit Code Review project.
He has been involved since the beginning in the design and development of DevOps
analytics tools for Gerrit.
He has extensive experience in working on backend systems, on-premise and
cloud-based, with different programming languages, such as Scala, Java, NodeJS
and related ecosystems.
