SaaS de gestão agrícola em que trabalho na OMD do Brasil. Escrevi o backend do zero em NestJS, Prisma e PostgreSQL, com arquitetura em camadas de domínio, casos de uso e repositórios, que o time adotou como padrão. Também containerizei a aplicação e escrevi o pipeline de deploy, que foi o que permitiu tirar a plataforma do Google App Engine.
NathanSantos
Engenheiro de Software Full-Stack
|
Trabalhos Selecionados
Alguns deles, e o que quebrou no caminho.
Gerador de currículos em PDF, com cobrança em três moedas e roteamento entre Stripe e PIX conforme o país. Interface e conteúdo saem em inglês e português via next-intl.
A maior parte do meu trabalho é backend, e a parte interessante quase sempre está no banco.
Trabalho no ecossistema TypeScript: NestJS e Node na API, Next.js e React na interface, PostgreSQL embaixo. Me importo mais em acertar o modelo de dados cedo do que com o framework do mês.
Acompanho de perto as partes mais novas da stack e coloco código em produção com Next.js, React 19, Tailwind e Biome. Adoto uma ferramenta nova cedo quando ela realmente prova seu valor. No momento estou aberto a vagas full-stack em que eu cuide da feature da API até a UI.
Sertãozinho, SP, Brasil- Postgraduate in Software EngineeringDescomplica EAD · Oct 2024 — Apr 2025Concluído
- Technologist in Industrial MechatronicsFATEC · Jan 2019 — Dec 2023Concluído
- Full Stack Web DevelopmentProgramadorBR · 60 horasConcluído
- Node.js PathRocketseat · 50 horasConcluído
No que eu passo o tempo de verdade.
- 01
Engenharia de Produto Full-Stack
Construo e entrego produtos SaaS completos, do schema do banco de dados à UI refinada, usando o App Router do Next.js, Server Actions e deploys edge-first.
- 02
Design de APIs e Arquitetura de Backend
Construí APIs REST com Node.js, NestJS e Hono. Isolo tenants com Row Level Security no Postgres, aplicado por requisição, em vez de confiar que toda query lembrou do filtro.
- 03
Otimização de Performance e DX
Construí frontends com foco em performance usando React Server Components, Turbopack e code-splitting. Faço profiling antes de otimizar, pra o esforço ir onde o tempo realmente está.
Construo com IA no meio do processo. O que torna isso seguro de colocar em produção não é o modelo, é o que acontece em volta dele.
- 01
Spec antes do código
Toda mudança que não é trivial começa como spec escrito: a decisão, a restrição e a opção que descartei de propósito. O agente lê isso, e quem pegar o projeto depois também.
- 02
Leio como revisor, não como autor
Código gerado passa pela mesma leitura de um pull request de alguém que eu não conheço. A maior parte do que eu descarto parece certa e está errada em silêncio, numa linha só.
- 03
Quem decide é o teste, não o diff
Regra de negócio e política de acesso ganham teste antes de eu confiar na mudança. Um agente que roda a suíte e lê a falha vale mais que um que escreve o código mais rápido.
- 04
O contexto precisa sobreviver à sessão
Migrations versionadas, decisão escrita ao lado do código e um arquivo de projeto que o agente lê ao entrar. É o que me deixa voltar a um projeto seis semanas depois sem reconstruir tudo de memória.
As ferramentas que eu uso mesmo, não as que eu já ouvi falar.
Os itens em destaque são os que uso todos os dias.
Frontend
- Next.js
- React
- TypeScript
- Tailwind CSS
- TanStack Query
Backend e Dados
- NestJS
- Node.js
- PostgreSQL
- Drizzle ORM
- Redis
Infra e Ferramentas
- Docker
- Git
- Playwright
- Biome
Vamos construir
algo juntos
Está tocando algum projeto, tem uma ideia ou só quer trocar uma ideia sobre engenharia? Fale comigo por qualquer canal abaixo, ou mande uma mensagem por aqui.
- +55 (16) 99143-7961
- linkedin.com/in/nathannfs
- github.com/nathannfs
- Sertãozinho, SP, Brasil