- O que você escolhe quando fazer o trabalho direito entra em conflito com a velocidade acelerada da empresa?
- A história do engenheiro Chris Krycho, que escolheu a segunda opção entre manter suas convicções e fazer concessões ou partir em busca de um trabalho alinhado a seus princípios
- No fim, Chris deixou o LinkedIn para buscar um trabalho que estivesse de acordo com seus princípios
- Um resumo do que ele contou no podcast
- A história dele destaca a tensão entre a "necessidade de inovar" e a "importância da saúde do projeto"
O primeiro dia de Chris Krycho no LinkedIn
- Chris entrou no LinkedIn no fim de janeiro de 2019. Passou por vários processos de onboarding comuns em grandes empresas ou em pequenas empresas saudáveis.
- Chris trabalharia remotamente do Colorado, mas passou as duas primeiras semanas no onboarding e com a equipe.
Milhões de linhas de código
- Em comparação com sua experiência na empresa anterior, ele ficou muito surpreso com a escala do app cliente de frontend e dos serviços de backend do LinkedIn.
- O frontend do LinkedIn tinha 2 milhões de linhas, muito mais do que todo o código de sua empresa anterior.
Equipe de infraestrutura
- O papel de Chris era na equipe de infraestrutura, com foco não em montar servidores, mas em suporte de engenharia ou melhoria da experiência do desenvolvedor.
- O objetivo era facilitar o trabalho com o enorme app desktop do LinkedIn.
Modernização do JavaScript
- Ele participou do trabalho de modernização do código com a introdução de classes JavaScript. Aprendeu muito no processo de resolver os problemas que surgiam ao usar o framework Ember.
- Percebeu que o trabalho de migração em uma base de código desse porte precisava ser automatizado ao máximo, pois o volume era grande demais para ser tratado manualmente.
Adoção do TypeScript
- Foi decidida a migração para TypeScript para reduzir os erros que ocorriam no frontend.
- O TypeScript pode ser adotado de forma gradual, o que oferecia a escalabilidade de que o LinkedIn precisava.
Plano de migração lenta vs. o 'Finger Gun's Plan'
- Chris e sua equipe propuseram um plano de 3 a 5 anos para migrar o código em Ember para React, mas outra equipe apresentou o 'Finger Gun's Plan', prometendo uma reformulação geral e alta velocidade.
- Essa diferença de abordagem refletia o conflito entre os problemas enfrentados por Chris e sua equipe e uma cultura empresarial que priorizava a velocidade.
As experiências e aprendizados de Chris
- Reconhecimento do problema de alertas insuficientes.
- Os servidores de todo o data center caíram por causa de uma reação em cadeia provocada pelo aumento no uso de memória e reinicializações de servidores.
- Tentaram resolver o problema por meio de reset do sistema e ajustes de permissões.
- Falhas são inevitáveis, e engenharia de software consiste em projetar sistemas que deem suporte ao processo pelo qual engenheiros produzem resultados de produto.
- Ênfase na necessidade de sistemas com resiliência em múltiplas camadas.
Reação ao incidente
- Surgiu insatisfação durante a resolução do problema por causa da falta de confiança da gestão.
- Houve divergências com engenheiros seniores e problemas de comunicação.
- Destacou-se que o sistema não deve funcionar apenas em seu melhor estado, mas ser capaz de oferecer suporte em qualquer situação.
Aumento da pressão
- Apesar dos esforços para resolver dívida técnica e melhorar a resiliência, a insatisfação da liderança aumentou.
- Houve conflito com gestores que exigiam soluções simples para problemas complexos.
Reorganização
- Reorganização causada pela 'equipe finger guns' e mudanças de papel.
- Reconhecimento de novas experiências e oportunidades de aprendizado em outros papéis.
Reflexão e tomada de consciência
- Autorreflexão por meio das experiências passadas e da situação atual.
- Reconhecimento da importância de construir relações humanas e da comunicação.
- Entendimento de que problemas técnicos e sociais estão interligados.
Conclusão e lições
- Chris manteve uma visão crítica sobre uma cultura que coloca a velocidade como valor supremo.
- Buscou novas oportunidades ao refletir sobre carreira e valores pessoais.
- A jornada de Chris para encontrar um papel voltado à excelência em engenharia continua.
Opinião do GN⁺
- A experiência de Chris Krycho mostra bem o conflito entre princípios técnicos e exigências de negócio.
- A decisão dele destaca a importância de encontrar equilíbrio entre valores pessoais e escolhas profissionais.
- Gerenciar mudanças em um ambiente tecnológico de grande escala como o do LinkedIn é algo complexo, e isso também oferece lições importantes para outras empresas.
- A adoção de tecnologias como TypeScript pode ajudar a melhorar a qualidade do código e reduzir erros, mas em bases de código muito grandes é necessária uma abordagem gradual.
- Ao promover mudanças técnicas como essas, é preciso considerar o equilíbrio entre experiência do desenvolvedor e velocidade de lançamento do produto.
1 comentários
Comentários do Hacker News