Samuel Santana
Senior Software Engineer em Salvador, Bahia, com mais de 12 anos construindo aplicações web. Trabalho principalmente no frontend, com Angular e React, e faço o backend em Node.js e NestJS quando o produto pede. Abaixo estão as tecnologias com que trabalho, como cuido de qualidade em produção e onde dá para conferir cada coisa.
Tecnologias
- Frontend: Angular (Signals, RxJS), React, Next.js (App Router), TypeScript em modo strict, micro-frontends com Module Federation, Tailwind CSS, shadcn/ui, TanStack Query e Zustand.
- Backend: Node.js, NestJS, Fastify, APIs REST e WebSockets, PostgreSQL com Prisma e Drizzle, Redis e BullMQ para filas, e autenticação com OAuth 2.0, OpenID Connect (Keycloak) e JWT.
- Infraestrutura: AWS (Lambda, S3, CloudFront), Vercel, Neon, Docker e GitHub Actions.
- Design: implementação a partir do Figma, design tokens no tema do Tailwind e design systems documentados em Storybook.
Qualidade em produção
- Testes automatizados: testes unitários e de componente com Vitest, Testing Library e MSW (Jasmine e Karma em Angular), testes end-to-end com Playwright e Cypress, e suítes de integração contra Postgres e Redis reais no CI. Neste site, os testes end-to-end rodam sem backend, e os que dependem de outra origem ficam num job separado.
- Acessibilidade: WCAG como requisito de entrega. No design system do Ninho, o addon de acessibilidade do Storybook reprova o build em qualquer violação, o axe-core verifica WCAG 2 A/AA nas páginas reais durante os testes end-to-end, e alvos de toque de 44 px são medidos no Chromium como portão de CI.
- Observabilidade: Sentry para erros em produção, logs estruturados com pino e trilha de auditoria. Em ambiente corporativo, Dynatrace, Splunk, Grafana e Kibana, além de painéis de métricas DORA para os times.
- Segurança: cookies HttpOnly e SameSite, CORS e headers de segurança, OAuth com state, PKCE e sem token na URL, e análise de dependências na esteira de CI.
Projetos públicos
Código que dá para ler, rodar e conferir:
- Ninho: app de saúde infantil, com vacinas, consultas e marcos de desenvolvimento. React 19 com TypeScript strict e uma API em Fastify com Clean Architecture, PostgreSQL e filas no Redis com retry e dead letter queue. O código é público, assim como o design system, com acessibilidade verificada no CI.
- rx-state-bridge: biblioteca no npm que liga RxJS a React, Angular Signals e Vue sem o boilerplate de loading, erro e sucesso.
- Este site: Next.js 16 no frontend e NestJS no backend, com uma demo de micro-frontends em Module Federation.
- BolsoVerde: app de controle de vendas, taxas e repasses para pequenos vendedores, em produção.
Como trabalho
Antes de qualquer código, escrevo a especificação: o problema, os critérios de aceite, as restrições e o que fica de fora. A implementação é conferida contra ela. Quando uma decisão técnica tem alternativas reais, comparo as opções e registro no pull request por que uma venceu, junto com o que foi testado e descartado. Se a decisão depende de desempenho ou de comportamento em produção, meço antes de escolher, com a saída do build, um benchmark reproduzível ou o log de produção.
Trabalho com agentes de IA dentro desse método. Divido o trabalho em frentes independentes e entrego cada uma a um subagente com critérios escritos em comum. Cada um devolve a evidência do que fez e diz o que não conseguiu verificar. O conhecimento de cada projeto fica em convenções documentadas e em skills, como a que sobe este site de ponta a ponta para verificar uma mudança. O que precisa valer sempre vira hook ou etapa de CI. Escrita em produção, merge e exclusão continuam comigo.
O critério é o mesmo para código de qualquer origem: tipagem estrita, testes, CI verde e nada dado como pronto sem prova. Os posts deste blog são onde essas medições ficam registradas.
Contato
- LinkedIn: linkedin.com/in/samuelcsantana
- GitHub: github.com/samuelcsantana
- E-mail: samuel.ssa89@gmail.com
Privacidade
Este site mede o uso das páginas com o Pyxis, uma ferramenta de análise de uso que eu mantenho, de código aberto. Ela não usa cookies, não guarda endereço IP nem identificador que dure além da aba, e registra só a página vista, de onde a visita veio, o idioma, o país, o tipo de aparelho e de navegador, até onde um artigo foi lido, e cliques em links e botões da própria página. Quem entra para comentar continua anônimo na medição. O site respeita o sinal "não rastrear" do navegador (GPC e DNT), a chave no rodapé desliga a medição neste navegador, e os eventos são apagados depois de 13 meses.