# perk/legacy-takeover ## Hero ### De codebase terceirizado a production-grade em 90 dias — sem parar de entregar. Perk herdou um monolito Rails terceirizado no GitLab. Sem CI. Sem PR reviews. Sem testes rodando. A Bleu assumiu, reconstruiu o processo de engenharia e entregou produto ao mesmo tempo. ## Contexto O codebase da Perk tinha sido construído por um time terceirizado na Índia e entregue. O time foi embora. Não tinha integração contínua, não tinha code review, não tinha suite de testes rodando. Pushavam direto pras branches e mergeavam sem revisão. Deploys eram manuais. A pergunta não era se devia arrumar — era se um time novo conseguia assumir o sistema de produção de outra pessoa, entender profundamente, e modernizar sem quebrar o que já funcionava. - Sem pipeline de CI — código ia pra produção sem checks automáticos - Sem PR reviews — merges diretos sem supervisão - Sem suite de testes rodando — sem rede de segurança pra mudanças - Deploys manuais — cada release um processo manual e sujeito a erro - Time anterior foi embora — sem knowledge transfer, sem documentação ## Nosso papel Em vez de só corrigir bugs em cima do setup existente, reconstruímos o processo de engenharia enquanto entregávamos produto. As duas coisas aconteceram ao mesmo tempo — estabilização não foi separada de entrega. ### Quote > "O que você queria que o time anterior fosse." ## O que mudou Em 90 dias, o codebase saiu de não-governado pra profissionalmente gerenciado. Cada mudança passava por CI, era revisada, e era deployed automaticamente. E produto continuou sendo entregue o tempo todo. - Migração do GitLab pro GitHub com branch protection e reviews obrigatórios - Pipeline de CI rodando em cada push — testes, lints, builds - Containerizado com Docker pra ambientes consistentes - Background job processing introduzido (Sidekiq) - TailwindCSS integrado pra consistência no frontend - Linear pra tracking de projeto (864 tickets até hoje) - Entregamos social feed challenges, fixes de email, e fixes de auth admin simultaneamente ## Áreas que assumimos #### Processo de Engenharia Reconstruímos o workflow de desenvolvimento do zero. - **Controle de Versão & Code Review**: Migração do GitLab pro GitHub. Branch protection rules, PR reviews obrigatórios, e workflow de merge que garante que cada mudança é revisada antes de ir pra produção. - **Integração Contínua**: Pipeline de CI construída do zero. Testes, lints e builds rodam em cada push. Nenhum código chega em produção sem passar por checks automáticos. - **Containerização**: Aplicação containerizada com Docker, eliminando inconsistências de ambiente e estabelecendo builds repetíveis do desenvolvimento até produção. #### Modernização de Infraestrutura Processos manuais substituídos por sistemas automatizados e repetíveis. - **Deploys Automatizados**: Deploys manuais substituídos por pipelines automatizadas. Cada merge na main dispara build, teste e deploy sem intervenção humana. - **Processamento em Background**: Sidekiq introduzido pra processamento de jobs em background, tirando envio de email, processamento de mídia e sync de dados do ciclo de request. #### Entrega de Produto Features entregues enquanto modernizava — não depois. - **Social Feed Challenges**: Mecânicas de desafio de social feed construídas enquanto o overhaul de engenharia acontecia. Usuários podiam postar, compartilhar e ganhar recompensas. - **Fixes de Email & Mídia**: Confiabilidade de envio de email e links de mídia S3 corrigidos. Fluxos de autenticação estabilizados em toda a plataforma. ## Por que isso importa A maioria dos times não encosta no sistema legado de outra pessoa. Os que encostam geralmente propõem reescrever do zero — meses de trabalho antes de entregar qualquer valor. Modernizamos incrementalmente: entregamos produto no dia um enquanto reconstruíamos a fundação por baixo. Nenhum dia de downtime durante a transição. Três anos depois, aquele codebase é um monorepo de 16 apps servindo clientes Fortune 500 com 99.984% de uptime. ## Resultado A estabilização construiu a fundação pra tudo que veio depois. O pipeline de CI, PR reviews e deploys automatizados que colocamos nos primeiros 90 dias ainda estão rodando três anos depois — agora processando 12.000+ commits em 1.600+ pull requests. O que começou como resgate virou parceria.