I was laid off by Atlassian
Contexto
Vasilios Syrakis, engenheiro de software, reflete sobre sua trajetória de oito anos na Atlassian após ser desligado da empresa. O vídeo detalha a evolução da infraestrutura de rede que ele ajudou a construir, focando em sistemas de balanceamento de carga, automação e lições aprendidas sobre manutenção de software e habilidades interpessoais.
Evolução da Infraestrutura e Projetos Técnicos
- Provisionamento Self-Service: Syrakis iniciou desenvolvendo um "Open Service Broker" (usando Python/FastAPI) para facilitar o provisionamento de recursos internos, abstraindo a complexidade da infraestrutura para desenvolvedores.
- Migração para Envoy Proxy: A equipe substituiu balanceadores de carga comerciais por uma solução baseada em Envoy Proxy. Syrakis desenvolveu o "Sovereign", um plano de controle para gerenciar configurações dinâmicas do Envoy via templates.
- Automação de Imagens: O processo utilizava HashiCorp Packer e SaltStack para criar AMIs (Amazon Machine Images) padronizadas, garantindo que instâncias EC2 fossem provisionadas com segurança, observabilidade e configurações de rede consistentes.
- Arquitetura de Sidecars: Para escalar funcionalidades como autenticação (escrita em Rust), autorização e rate limiting, a equipe implementou um modelo de sidecars, permitindo que a lógica fosse centralizada fora dos microserviços das equipes de produto.
- Padronização: A migração forçada de produtos como Jira, Confluence e Bitbucket para essa infraestrutura centralizada permitiu maior segurança e conformidade, eliminando a necessidade de cada equipe gerenciar suas próprias configurações de borda.
Lições sobre Manutenção e Carreira
- O Ciclo de Vida do Software: Syrakis observa que "construir algo é fácil; mudá-lo e garantir que você ainda possa mudá-lo ao longo do tempo é difícil". Ele destaca que o acoplamento excessivo é o maior inimigo da longevidade de um projeto.
- Diplomacia e Conflitos: O autor enfatiza que o crescimento profissional envolveu aprender a lidar com personalidades distintas. "A única coisa que você pode realmente fazer nessas situações é tentar ter autoconsciência e compreensão da psicologia do outro".
- Mentoria: Embora tenha tido sucesso ao treinar colegas em tópicos técnicos complexos, ele admite dificuldades em encontrar o equilíbrio na mentoria de estagiários, especialmente por nunca ter sido formalmente mentorado.
Implicações
- Foco em Abstração: A estratégia de criar camadas de abstração (como o Sovereign) é essencial para empresas que buscam escalar sem sobrecarregar desenvolvedores com detalhes de infraestrutura.
- Gestão de Débito Técnico: O autor sugere que o "churn" (alta rotatividade de alterações) em partes específicas do código é um sinal claro de que a complexidade está crescendo e que uma refatoração (ou "desembaraço") é necessária antes que o sistema se torne inalterável.
- Valor da Disponibilidade: O feedback constante de seus pares destacou que a capacidade de traduzir tópicos técnicos complexos para termos simples foi uma de suas maiores contribuições, reforçando que a comunicação é tão crítica quanto a competência técnica em cargos de engenharia sênior.
