# 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.