Híbrido SP · tempo integral · respostas fora do LinkedIn
Não é “aprender mais IA”.
É virar o playbook.
Polvo, Coletas e Caçador já fecham conta, processam coleta e caçam MTR em produção. Cada um nasceu snowflake. A vaga é quem constrói deploy, eval, observability e rollback compartilhados — sem quebrar fluxo crítico.
Vaga no ar há ~6 meses · +100 cliques em Candidate-se · Simmon Nam (CPO, 1º) dá pra mandar mensagem. Curriculum lista CLT.
O job de verdade, numa frase
Forward Deployed Engineer colado em ops e platform engineer de agente. Você senta com o dono do fluxo (faturamento, coleta, MTR), decide se AI entra, coloca o agente no caminho crítico com SLA, e deixa o próximo agente usar a mesma infra.
Polvo
Corner case contratual + medição customizada. Cada cliente tem regra diferente. Analogia tua: iugu / taxa por conta.
Coletas
Aderência de processo de parceiro. Inconsistência antes de virar incidente. Analogia: Hora Solar WAHA (intent, skip, CRM).
Caçador
Plugado no core. Rebarba de integração com órgão público (SINIR/SIGOR). Processo massivo não sistematizado.
Musa não tem caminhão. Orquestra gerador, operador logístico e receptor. +750 empresas, +3 mil pontos, +200 operadores. Integra MTR, CDF e DMR nos sistemas oficiais. Clientes tipo Zamp, Atacadão, SBT, Urbia. Kaszek, Canary, Lowercarbon.
Você × a vaga (honesto)
Obrigatório deles: “carregou o bebê”. Não pedem unicórnio. Pedem cicatriz.
| Eles pedem | O que você já tem | O furo |
|---|---|---|
| LLM/agente em fluxo real, SLA | Jus Chat AI no caminho crítico da busca; Hora Solar WAHA em produção com intent e CRM | Falar em métrica de sistema (sucesso da tarefa, fallback, custo), não “o bot responde bem” |
| RAG, orquestração, eval, guardrail como trade-off | Pinecone/Chroma + tool vs resposta direta + fallback determinístico no Jus | Eval automatizado em CI. Você opera; ainda não tem harness compartilhado pra mostrar |
| Quando modelo fechado / fine-tune / sem AI | WAHA: regra e skip list antes de modelo. Intents help/hours/cep sem LLM | Discurso de 60s sobre fine-tune (quase nunca) vs prompt+tools vs regra |
| Python sólido + cloud (AWS) | FastAPI no currículo; hora-solar-waha-reply em Python; Dotted AWS CI/CD |
Python é segunda língua. Rails é casa. Precisa parecer fluente em Pydantic/pytest |
| Infra: obs, eval, feature flag, rollback | CI/CD, deploy, on-call clássico | Este é o job. Versionar prompt como código, canary, rollback de modelo |
| LangGraph / CrewAI / arquitetura própria | LangChain no Jus; arquitetura própria no WAHA (máquina de intent) | LangGraph como state graph, não CrewAI de demo. Saber dizer por que graph > multi-agent |
| B2B complexo (cobrança, compliance, logística) | iugu (cobrança/SFN), Purple Stock (ERP), Zaitt (operação), homologação solar | Vocabulário de resíduo: MTR, CDF, DMR, SIGOR, PGRS, 3 elos. Uma tarde. |
Leitura: você já é o perfil “colocou agente em produção”. O que falta vender é o segundo salto — padronizar três snowflakes. Estude isso. O resto é vocabulário.
O que não estudar
- Fine-tune o dia todo. A vaga diz isso na cara. Fine-tune entra só como “quando eu recuso”.
- Chatbot de portfólio / CrewAI tutorial. Eles já têm agente que fecha conta. Demo não conta.
- Reler o ebook Dev AI First. Aquela vaga (abr/2026) era “AI no runtime”. Esta é “infra pra multiplicar agentes”. Sobreposição existe; o centro mudou.
- Curso genérico de LangChain 101. Você já fez RAG em produção. Pule pra LangGraph + eval.
- Paper de researcher. Eles não querem quem quer treinar modelo.
Trilha 1 · 40% do tempo
Plataforma: deploy, eval, obs, rollback
É o que a Musa admite não ter. Quem chega falando só de prompt perde. Quem chega com um desenho de plataforma de 4 caixas ganha a conversa.
- Prompt/config como artefato versionado. YAML ou JSON no git. Hash no trace. Troca de prompt = deploy, não edição no dashboard no calor do incidente.
- Eval no PR. Dataset de casos reais (log virando teste). Três camadas: schema/regra (determinístico), heurística, judge só no que a regra não pega. Gate: não mergeia se quebrar golden set.
- Canary + rollback. 5% do tráfego no prompt B. Métrica de sucesso da tarefa, não “bleu”. Flag (LaunchDarkly / AWS AppConfig / tabela). Rollback = voltar o hash, não “desfazer o commit e rezar”.
- Trace de uma run. request_id, agente, modelo, tokens in/out, custo, tools, latência por step, fallback_used, versão do prompt. OpenTelemetry gen_ai ou LangSmith/Phoenix. Sem isso você não opera; você torce.
Ler (nessa ordem)
- OpenTelemetry Semantic Conventions for GenAI
- OpenAI · evaluation best practices
- LangSmith · tracing + eval (mesmo se a stack for própria)
- Arize Phoenix · open-source obs
- AWS AppConfig · feature flag / rollback de config
Exercício (usa o que você já tem): no hora-solar-waha-reply, extraia 20 inbound reais (sem PII), vire fixture, rode a intent como eval. Métrica: intent certa, “não enviou quando skip”, “não inventou CEP”. Isso é o mesmo músculo do Polvo — golden set de corner case.
Trilha 2 · 20%
Quando AI resolve — e quando é regra
A vaga testa cicatriz, não entusiasmo. Decisão em três gavetas:
Regra / SQL / fila
Campo obrigatório, status de MTR, skip list, CEP conhecido, “já emitiu CDF?”. Barato, auditável, testável.
Modelo fechado + tools
Texto sujo, contrato em PDF, e-mail de órgão, classificação de resíduo ambígua, corner case de medição. Schema rígido na saída.
Fine-tune
Só se o volume for enorme, o schema estável, o custo de API doer, e eval mostrar teto de prompt. Na Musa, default é não.
Frase-molde: “Se a verdade está no banco ou no contrato, eu não chamo modelo. Se a verdade está num PDF mal OCR ou numa regra que muda por cliente e não cabe em if, aí sim — com schema, timeout e fallback humano.”
Trilha 3 · 15%
Orquestração: LangGraph como máquina de estados
CrewAI é o que eles listam pra achar quem já brincou. O desenho maduro é grafo com nós explícitos: roteador → tool → validador → persistência → fallback. Loop com critério de parada. Estado durável fora do prompt.
receber → classificar
├─ regra_clara → executar_sql / emitir_mtr
├─ texto_sujo → llm_structured → validar_schema
│ ├─ ok → efeito (idempotente)
│ └─ inválido → retry_1 → humano
└─ baixa_confiança → fila_ops
Cada seta é logada. Cada efeito colateral tem idempotency_key. Sem isso o Caçador duplica MTR no retry do órgão.
Ler / fazer
- LangGraph docs — um grafo, checkpoint, interrupt humano. Pule multi-agent swarm.
- AWS · saga em fluxos agentic
- Exercício: reescreva o reply_logic do WAHA como grafo LangGraph com 4 nós. Não precisa ir pra prod. Precisa desenhar no quadro.
Trilha 4 · 15% · uma tarde + um sábado
Domínio: lixo com futuro, em vocabulário de sistema
Você não precisa virar ambientalista. Precisa falar a língua do Caçador e do Polvo sem inventar jargão.
Os 3 elos
- Gerador — quem produz o resíduo (Zamp, SBT, obra). Emite o MTR. Paga a Musa. Quer uma fatura e zero fiscalização.
- Operador logístico — caminhão/caçamba. Musa não tem frota. Aderência de processo = Coletas.
- Receptor / destinador — aterro, reciclador, coprocessamento. Fecha o ciclo com CDF.
A papelada que o Caçador engole
- MTR — Manifesto de Transporte de Resíduos (Portaria MMA 280/2020). Autodeclaratório, numerado, acompanha a carga. Sistema nacional: SINIR (mtr.sinir.gov.br). SP costuma ser SIGOR-MTR / CETESB. RJ, SC, MG, RS, ES, GO têm sistema próprio que deveria integrar o nacional. Gov.br no login nacional desde ago/2026.
- CDF — Certificado de Destinação Final. Sem CDF o ciclo fica aberto. MTR sem CDF é o tipo de rebarba que vira multa.
- DMR — Declaração de Movimentação de Resíduos. Consolidado periódico.
- PGRS — Plano de Gerenciamento. Quem está obrigado (Lei 12.305/2010) precisa do MTR.
Por que o Caçador existe: órgão público, API instável ou inexistente, HTML legado, estados diferentes, processo massivo que era planilha. Integração + reconciliação + engolir o que o sistema oficial não sistematizou. Retry sem idempotência emite MTR duplicado. Isso é iugu + órgão, não chatbot.
Por que o Polvo dói
Faturamento de resíduo não é “preço × km”. Medição customizada: peso na balança vs volume da caçamba vs contrato por ponto vs desconto de reciclável vs mínimo de coleta. Cada cliente (Zamp vs obra vs parque) tem anexo diferente. LLM pega o corner; a regra contratual valida; o cálculo fecha. Analogia: taxa iugu / regra de boleto — PORO, não controller.
Ler
- musa.co — FAQ inteiro. “Não temos caminhão”, “MTR/CDF/DMR integrados”, 3 elos.
- Gov.br · o que é o MTR
- SINIR · módulo MTR
- Portaria MMA nº 280/2020 (institui o MTR nacional)
Trilha 5 · 10% · ginásio, não curso
Python de produção + AWS no formato Musa
Eles discutem cloud; têm AWS. Python é a língua do job. Você já tem FastAPI e o watcher do Hora Solar. Falta parecer nativo.
- Pydantic v2 em todo I/O de agente. Structured output = model, não regex esperançoso.
- pytest no golden set. Um comando. Igual você já faz no reply_logic.
- typing nas fronteiras. Sem
Anyno contrato público do agente. - AWS que importa aqui: SQS + DLQ, ECS/Fargate ou Lambda com timeout honesto, S3 pra artefato de eval, AppConfig pra flag, CloudWatch + OTel, Bedrock só se custo/dados pedirem (default: API fechada com fallback).
Não estude “AWS inteiro”. Estude o caminho: worker pega job → chama modelo → valida → grava efeito idempotente → emite métrica.
Sprint de 14 dias (usa código teu)
Não construa um agente novo de portfólio. Endureça o que já roda e tenha um quadro pra desenhar na entrevista.
Semana 1 — chão
- Ler musa.co FAQ + Gov.br MTR + Portaria 280. Uma página de notas.
- Desenhar os 4 caixas da plataforma (deploy, eval, obs, rollback) no papel.
- Golden set: 20 mensagens do WAHA → pytest de intent.
- Log estruturado: request_id, intent, fallback, latency_ms.
- Pydantic no I/O do reply_logic.
- LangGraph: o mesmo fluxo em 4 nós, local.
- Simular entrevista: “quando você não usa AI?” em voz alta, 90s.
Semana 2 — plataforma
- Versionar o “prompt/config” em YAML + hash no log.
- Eval no CI (mesmo que seja o unittest de hoje, rodando no PR).
- Flag: config A/B no YAML. Rollback = checkout do hash.
- Trace: um span por tool/intent. Screenshot do log.
- Estudo de caso Polvo: escrever a analogia iugu em 8 linhas.
- Estudo de caso Caçador: MTR duplicado no retry. Quadro.
- Pitch 60s + mensagem pro Simmon. Gravado no celular.
Critério de pronto: você desenha no quadro, sem slide, o caminho de um MTR do gerador até o CDF, e aponta onde o agente entra, onde a regra entra, e como você reverte um prompt ruim em 5 minutos.
Perguntas que vão cair · pitch pronto
Regra: projeto real + por que + o que faria de novo. Zero definição de livro. Inglês: B2 53 — lê e escreve; call em PT.
Como você colocaria o 4º agente em produção sem virar o 4º snowflake?
O modelo devolveu JSON inválido no faturamento. E agora?
Como você observa um agente em produção?
60 segundos · quem você é pra essa vaga
Primeiros 90 dias (se perguntarem)
- Semana 1–2: sombra em ops. Um faturamento, uma coleta, um MTR quebrado. Inventário dos três snowflakes.
- Semana 3–4: o menor primitivo compartilhado — trace + versão de prompt nos três. Sem reescrever agente.
- Mês 2: eval CI no que mais dói (provavelmente Caçador ou Polvo). Golden set sai do log, não da imaginação.
- Mês 3: o 4º agente nasce em cima disso. Playbook escrito. Feature flag de verdade.
Se for mandar mensagem pro Simmon
Ele é 1º. CPO. A vaga pede respostas fora do LinkedIn. Curto, sem “apaixonado por IA”, com cicatriz.
Não envia sozinho. Copia quando você quiser. Inglês da vaga não pede call em EN.