Experiência na GitLab
- Trabalhei na GitLab por cerca de 6 anos, de outubro de 2015 a dezembro de 2021.
- Decidi sair da GitLab para me dedicar ao trabalho no Inko, mas nunca havia compartilhado minha experiência na GitLab.
- Como o NDA (acordo de confidencialidade) expirou, ganhei energia para revisitar meu tempo na GitLab.
Antes da GitLab
- Trabalhei em uma pequena startup sediada em Amsterdã e, ao mesmo tempo, desenvolvi o Rubinius e o Oga, uma biblioteca de parsing de XML/HTML.
- Por falta de recursos e problemas técnicos, deixamos de levar adiante o uso do Rubinius.
- Entrei na GitLab perguntando se poderia dedicar um dia por semana ao trabalho no Rubinius.
2015-2017
- Meu primeiro dia na GitLab foi o dia seguinte ao meu último dia na empresa anterior, marcando minha transição para o trabalho remoto.
- A GitLab era uma empresa remota, mas também sociável, com vários encontros e eventos.
- A GitLab enfrentava dificuldades como problemas de performance, quedas frequentes de servidores e problemas de gestão.
- Havia pouca infraestrutura de monitoramento de performance, o que dificultava melhorar o desempenho.
- Tentei mudar a cultura e a atitude da GitLab, mas enfrentei dificuldades devido à insatisfação da empresa com as melhorias de performance.
2017-2018
- A performance melhorou bastante, e a GitLab começou a levar performance mais a sério.
- Houve uma mudança para a "equipe de banco de dados", com foco na performance do banco de dados.
- Construí o balanceador de carga de banco de dados da GitLab, o que teve um impacto positivo na performance.
- Me opus, com base em dados, à necessidade de sharding de banco de dados defendida pela GitLab.
2019-2021
- Fui para a equipe de "delivery", com foco em melhorar o processo e as ferramentas de release da GitLab.
- Depois que um commit chegava à branch principal, levava em média vários dias, e no pior caso até 3 semanas, para ser implantado no GitLab.com.
- Liderei o trabalho de unificar o GitLab Community Edition e o GitLab Enterprise Edition em um só.
- Problemas relacionados à gestão de notebooks e mudanças culturais reduziram minha motivação e produtividade.
- Conflitos com um novo gestor levaram à criação de um "plano de melhoria de desempenho".
Lições aprendidas
- Escalabilidade precisa fazer parte da cultura da empresa: a GitLab não deu atenção suficiente à escalabilidade.
- É preciso tornar as equipes mais orientadas por dados e por desenvolvedores: a GitLab tinha uma estrutura centrada em gerentes de produto.
- Sem dados, não dá para decidir o que é um 'produto mínimo viável': a GitLab adotava a "mudança mínima viável" como princípio central, mas na prática criou muitos recursos pouco úteis.
- SaaS e self-hosted não combinam bem: a GitLab oferecia ao mesmo tempo instalações self-hosted e SaaS, mas isso não funcionava de forma eficaz.
- Mais pessoas não significam resultados melhores: a GitLab contratou muitas pessoas ao longo dos anos, mas mais desenvolvedores não significam mais produtividade.
- Conflitos no uso de Ruby on Rails: a GitLab teve sucesso usando Ruby e Ruby on Rails, mas isso se torna um desafio em projetos grandes.
- O tempo de deploy do código é extremamente importante para o sucesso da organização: na GitLab, reduzir o tempo de deploy era um objetivo importante.
- Salário baseado em localização é discriminatório: a GitLab pagava salários diferentes de acordo com a localização, mas isso é uma prática discriminatória.
Opinião do GN⁺
- A experiência na GitLab ajuda a entender os prós e contras do trabalho remoto e os diversos problemas enfrentados no processo de crescimento de uma startup.
- Destaca a importância da melhoria de performance e da escalabilidade, bem como da importância de consolidar isso como cultura.
- Aponta o problema do salário baseado em localização, um caso importante para discutir sistemas de remuneração justos em ambientes de trabalho remoto.
1 comentários
Comentários do Hacker News