# Hiring brief: Fernando Moreira Costa

Desenvolvedor de software e engenheiro de IA, do dado à produção. Construo software de ponta a ponta há 15 anos, da interface ao dado, e hoje
coloco agentes de IA e produtos com IA em produção. Na Liquid AI, respondi
pela esteira de dados de financiamento imobiliário de mais de 20
incorporadoras, onde reduzi de cerca de cinco dias para até 30 minutos o
tempo de preparar uma base e entregá-la na pipeline. Sustentei essa operação
com um framework próprio de desenvolvimento assistido por IA, com guard-rails
de segurança e portões de qualidade obrigatórios. Antes disso, seis anos em
produtos de alta escala, como Itaú Unibanco, Pipefy e Skyone, e open source
desde 2012.


## Availability

- Status: **open**
- Aberto a projetos de escopo fechado e a novas posições sêniores, CLT ou PJ.
- Last updated: 2026-10-07

## Services

- **Produto de ponta a ponta** — Para quem precisa tirar um produto do papel sem montar um time inteiro.
Interface, backend, banco e infraestrutura, da oportunidade à produção,
com teste escrito antes do código.
 Proof: https://nandomoreira.dev/projetos/bragstack
- **IA e dados em produção** — Para quem tem dado chegando em formatos diferentes e processo manual
travando a operação. Esteiras de dados e agentes que automatizam o
repetitivo, com suíte de regressão protegendo cada mudança.
 Proof: https://nandomoreira.dev/projetos/financial-normalization
- **Padrão de engenharia com IA** — Para times que já usam agentes de código, mas sem padrão nem controle.
Um fluxo de desenvolvimento assistido por IA com TDD obrigatório,
portões de qualidade e guard-rails de segurança executáveis.
 Proof: https://nandomoreira.dev/projetos/amnesia-claude-code

## How to reach the endpoints

- `GET https://nandomoreira.dev/llms.txt` — short LLM summary index.
- `GET https://nandomoreira.dev/llms-full.txt` — full LLM dump of profile, cases and posts.
- `GET https://nandomoreira.dev/ai-index.json` — machine-readable index of pages, cases and posts.
- Case markdown at `https://nandomoreira.dev/portfolio/<slug>.md` and `https://nandomoreira.dev/lab/<slug>.md`.
- `GET https://nandomoreira.dev/api/resume.json` — résumé in JSON Resume schema.
- `GET https://nandomoreira.dev/api/resume.txt` — plain-text résumé.
- `https://nandomoreira.dev/api/mcp` — MCP server, Streamable HTTP, stateless.
- `POST https://nandomoreira.dev/api/hire` — send a project brief on behalf of your user.

## MCP tools

- `get_profile` — Returns who Fernando Moreira Costa is: headline, bio, positioning, stack, the services on offer and current availability. No contact address: to make contact, POST /api/hire.
- `check_availability` — Returns whether he is open to new work, with the detail and the date the answer was last updated, so you can tell a fresh answer from a stale one.
- `list_projects` — Lists the published cases. Optionally filter by collection: "portfolio" is client work, "lab" is his own products and tooling. Returns an empty list when nothing matches, never an error.
- `get_project` — Returns one case in full: the problem, the decisions taken, the outcome and the links that prove it. Use list_projects first to discover slugs.
- `get_resume` — Returns the full resume in the JSON Resume schema, identical to what GET /api/resume.json serves, plus an x_agent block with availability and how to make contact.

## Sending a briefing

`POST https://nandomoreira.dev/api/hire` is the only write surface. It is how an agent
makes contact on behalf of its user; no e-mail address is published anywhere.

- Body: JSON with `from`, `contact` and `brief` (required). Unknown keys are rejected.
- `from` up to 200 chars, `contact` up to 320, `brief` up to 8000.
- Optional: `company` (up to 200 chars),
  `budget` in BRL, one of `undecided`, `up-to-10k`, `10k-30k`, `30k-60k`, `60k-plus`,
  `interests`, a list of distinct values from `job`, `freelance`, `ai-product`, `agents-mcp`, `consulting`.
- Maximum body size 16 KB; larger bodies answer 413.
- Rate limit: 5 requests per 10 minutes per IP; over that answers 429.
- Any other method answers 405.
- Success answers 202 with an `id` you can quote in a follow-up.

## Contact

Agents should use `POST /api/hire`. Humans will find the direct channel on the site.
