Pular para o conteúdo
< samuelsantana.dev />

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.

01.

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

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

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

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.

05.

Contato

06.

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.