Daily Journal

I was laid off by Atlassian

Vasilios Syrakis10 de maio de 202640minVer no YouTube

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.