La experiencia en GitLab
- Trabajé en GitLab durante unos 6 años, desde octubre de 2015 hasta diciembre de 2021.
- Decidí dejar GitLab para dedicarme por completo a trabajar en Inko, pero nunca había compartido mi experiencia en GitLab.
- Como el NDA (acuerdo de confidencialidad) expiró, tuve la energía para mirar atrás y reflexionar sobre mi tiempo en GitLab.
Antes de GitLab
- Trabajaba en una pequeña startup con base en Ámsterdam, donde también trabajaba en Rubinius y en una librería de parsing XML/HTML llamada Oga.
- Dejamos de impulsar el uso de Rubinius por falta de fondos y por problemas técnicos.
- Entré a GitLab preguntando si podía dedicar un día a la semana a trabajar en Rubinius.
2015-2017
- Mi primer día en GitLab fue el día después de mi último día en la empresa anterior, y pasé a trabajar de forma remota.
- GitLab era una empresa remota, pero también muy social, con muchas reuniones y eventos.
- GitLab atravesaba dificultades por problemas de rendimiento, caídas frecuentes de servidores y problemas de gestión.
- Faltaba infraestructura de monitoreo de rendimiento, lo que dificultaba mejorar el desempeño.
- Traté de cambiar la cultura y la actitud en GitLab, pero fue difícil debido a la insatisfacción de la empresa con las mejoras de rendimiento.
2017-2018
- El rendimiento mejoró mucho y GitLab empezó a tomarse el tema más en serio.
- El equipo pasó a convertirse en el “equipo de base de datos”, con foco en el rendimiento de la base de datos.
- Construí el balanceador de carga de base de datos de GitLab, lo que tuvo un impacto positivo en el rendimiento.
- Me opuse, con base en datos, a la necesidad que GitLab planteaba sobre hacer sharding de la base de datos.
2019-2021
- Me cambié al equipo de “Delivery” para enfocarme en mejorar el proceso y las herramientas de release de GitLab.
- Desde que un commit llegaba a la rama principal hasta que se desplegaba en GitLab.com, el promedio era de varios días y, en el peor de los casos, hasta 3 semanas.
- Lideré el trabajo para unificar GitLab Community Edition y GitLab Enterprise Edition en una sola edición.
- Los problemas relacionados con la gestión de laptops y los cambios culturales redujeron mi motivación y productividad.
- Por conflictos con un nuevo gerente, se estableció un “plan de mejora de desempeño”.
Lo que aprendí
- La escalabilidad debe ser parte de la cultura de la empresa: GitLab no prestó suficiente atención a la escalabilidad.
- Hay que hacer que los equipos estén más orientados a los datos y a los desarrolladores: GitLab tenía una estructura centrada en los product managers.
- Sin datos no se puede decidir un “producto mínimo viable”: GitLab tomó el “cambio mínimo viable” como principio central, pero en la práctica construyó muchas funciones que no resultaban útiles.
- SaaS y self-hosting no combinan bien: GitLab ofrecía al mismo tiempo instalaciones autohospedadas y un servicio SaaS, pero eso no funcionó de manera efectiva.
- Más personas no significa mejores resultados: GitLab contrató a mucha gente a lo largo de los años, pero más desarrolladores no necesariamente mejoran la productividad.
- Conflicto por el uso de Ruby on Rails: GitLab tuvo éxito usando Ruby y Ruby on Rails, pero eso se vuelve un reto en proyectos grandes.
- El tiempo de despliegue del código es clave para el éxito organizacional: En GitLab, reducir el tiempo de despliegue del código era un objetivo importante.
- El salario basado en la ubicación es discriminatorio: GitLab pagaba salarios distintos según la ubicación, pero eso es una práctica discriminatoria.
La opinión de GN⁺
- La experiencia en GitLab ayuda a entender las ventajas y desventajas del trabajo remoto, así como los distintos problemas que surgen durante el crecimiento de una startup.
- Destaca la importancia de mejorar el rendimiento y la escalabilidad, y de convertir eso en parte de la cultura.
- Señala el problema del salario basado en la ubicación, un caso importante para debatir sistemas de compensación justos en entornos de trabajo remoto.
1 comentarios
Comentarios de Hacker News