Avaliação
GitHub
CSBFintech · Engenharia de Software

Avaliação Técnica
de Engenharia

Um desafio prático de 72 horas para avaliar como engenheiros constroem sistemas reais com IA generativa, orquestração de agentes e conhecimento de domínio financeiro. Você escolhe o track que melhor representa seu perfil.

72h de prazo 3 tracks disponíveis 100 pontos possíveis Avaliação automática Domínio financeiro · B3
Track API NestJS + LangGraph
Track WEB Next.js 15 + Streaming
Track MOBILE React Native + Expo
Prazo 72h contínuas
Avaliação Automática + Humana
O que é

Um teste prático, não um quiz

Avaliamos como você pensa e constrói sistemas reais — não o quanto você memorizou.

Este assessment simula um desafio real de produto: construir um pedaço da Financial Intelligence Platform, uma plataforma de análise de mercado com agentes de IA. O objetivo é avaliar profundidade técnica, não quantidade de features.

Cada candidato recebe acesso a um repositório privado no GitHub com specs detalhadas, contexto de domínio financeiro, e toda a documentação necessária. O restante é decisão sua: arquitetura, bibliotecas, estratégia de implementação.

Ao submeter, um pipeline de avaliação automática analisa o código contra uma rubrica estruturada. Os resultados são revisados por engenheiros sênior antes de qualquer decisão de contratação.

O que avaliamos de verdade
🧠
Raciocínio arquitetural
Como você decompõe o problema. Suas escolhas de design e por que as fez.
⚙️
Domínio técnico real
LangGraph com múltiplos nós, RAG com retrieval funcional, MCP com ferramentas bem definidas.
💼
Conhecimento de domínio
RSI, MACD, B3, análise técnica. Você usa os termos certos ou inventa?
📝
Comunicação escrita
ADRs com raciocínio real, README que funciona, PRD alinhado com a implementação.

Como funciona

Do convite à avaliação

O fluxo completo do assessment, do início ao resultado.

01
Receba o convite para o repositório
O time de recrutamento envia um convite para um repositório privado em github.com/csbfintech. Ao aceitar, o prazo de 72 horas começa automaticamente. O repositório contém toda a documentação: specs por track, contexto de domínio, regras e restrições.
Prazo começa ao aceitar
02
Escolha seu track e leia as specs
Escolha o track que melhor representa seu perfil técnico. Você pode fazer mais de um, mas a avaliação foca em qualidade, não em quantidade. Leia o DOMAIN.md, CONSTRAINTS.md e o spec do seu track antes de escrever uma linha de código.
Disponível: API · WEB · MOBILE
03
Construa — com liberdade arquitetural
A stack obrigatória define o framework principal (NestJS, Next.js ou Expo). O restante é sua decisão: qual vector store para RAG, como estruturar o grafo LangGraph, quais bibliotecas usar. Documente suas escolhas em ADRs.
# Commits frequentes são bem-vindos — mostre seu processo
git commit -m "feat: implement signal-normalizer node in LangGraph"
git commit -m "docs: ADR-002 — chose pgvector over Pinecone"
04
Submeta com uma tag Git
Quando estiver pronto (ou quando as 72h acabarem), crie a tag de submissão. O pipeline de avaliação é disparado automaticamente. Você pode criar tags intermediárias para checkpoints — apenas a tag v1.0.0 é avaliada.
git tag v1.0.0
git push origin v1.0.0
# Pipeline de avaliação inicia automaticamente
Avaliação automática Resultado em até 30min

Os tracks

Escolha o seu perfil

Cada track constrói uma camada da Financial Intelligence Platform — você escolhe a que mais te representa.

🔧
Backend · API
Financial Intelligence Engine
O que você vai construir
A API REST que orquestra múltiplos agentes de IA especializados usando LangGraph. Os agentes processam sinais financeiros, consultam uma knowledge base via RAG, buscam dados de mercado via MCP e geram análises e alertas automaticamente.
Stack obrigatória
NestJS 10 LangGraph MCP PostgreSQL 16 Prisma 5 RAG TypeScript 5

O que deve entregar
API com endpoints para sinais, alertas, consultas em linguagem natural e análises
Grafo LangGraph com mínimo 4 nós e 1 edge condicional
Mínimo 2 ferramentas MCP para dados de mercado
Knowledge base financeira populada com conteúdo real
Swagger/OpenAPI sincronizado com a implementação
PRD, 3 ADRs e README com setup funcional
🖥
Frontend · WEB
Financial Intelligence Dashboard
O que você vai construir
O dashboard de inteligência financeira onde analistas interagem com os agentes de IA em tempo real. O foco é na experiência de UI projetada para IA: streaming de respostas, visualização de raciocínio dos agentes e gerenciamento de estado de conversas longas.
Stack obrigatória
Next.js 15 Zustand SSE Streaming Tailwind CSS React 18+ TypeScript 5

O que deve entregar
Chat com agentes com streaming em tempo real (tokens progressivos)
Dashboard de sinais financeiros com filtros e atualização em tempo real
Gerenciamento de alertas com histórico
Stores Zustand para sinais, chat e alertas
Loading, error e empty states em todas as seções
PRD, 3 ADRs e README com setup funcional
📱
Mobile · Expo
Financial Intelligence App
O que você vai construir
O app mobile da plataforma — o canal mais rápido para o analista receber alertas críticos de mercado e consultar os agentes de forma conversacional. O diferencial não é ter todas as features do web: é ser rápido, nativo e confiável mesmo em condições de conectividade limitada.
Stack obrigatória
Expo (latest) Expo Notifications Expo Router React Native AsyncStorage TypeScript 5

O que deve entregar
Push notifications com Expo Push Token + deep link para alerta
Chat com agentes com resposta progressiva
Dashboard de sinais com pull-to-refresh e filtro por favorito
Cache local para uso offline básico (AsyncStorage ou MMKV)
UX nativa: haptics, swipe actions, loading skeletons
PRD, 3 ADRs e README com setup EAS/Expo Go

Critérios de avaliação

Como seu código é analisado

Cada dimensão tem peso definido. A rubrica completa está disponível no repositório em rubrics/.

A avaliação é multidimensional: não existe nota em uma única área. Um código excelente com documentação fraca ainda perde pontos. Um sistema arquitetado corretamente mas com TypeScript descuidado é penalizado. O objetivo é avaliar o engenheiro completo, não apenas o programador.
D01 25 pts
Agent Orchestration (LangGraph)
Avalia a profundidade do uso de LangGraph para orquestrar múltiplos agentes especializados. Não é suficiente usar createReactAgent — o grafo deve ter nós distintos com responsabilidades claras.
StateGraph com mínimo 3 nós e estado tipado
Conditional edges com função de roteamento real
Single Responsibility em cada nó do grafo
Tratamento de erros dentro do grafo (não apenas try/catch)
API
D02 20 pts
RAG Implementation
Avalia a qualidade da implementação de Retrieval Augmented Generation. A knowledge base deve ter conteúdo financeiro real — não Lorem Ipsum ou dados genéricos.
Documentos financeiros indexados e relevantes
Retrieval funcional — contexto usado nos prompts
Prompts com {"{context}"} explícito e não ignorado
Estratégia de chunking e embedding documentada em ADR
API
D03 15 pts
MCP Integration
Avalia a integração com Model Context Protocol para acesso a dados de mercado em tempo real. As ferramentas devem ter schemas corretos e ser usadas de forma significativa pelos agentes.
Mínimo 2 ferramentas com name, description e inputSchema válido
ToolNode ou bind_tools() conectado ao agente LangGraph
Output das ferramentas usado para enriquecer análises
API
D04 20 pts
Code Quality
Avalia a qualidade geral do código, arquitetura e boas práticas. TypeScript sem any, estrutura limpa, sem console.log, secrets em .env.
Estrutura correta do framework (NestJS / Next.js / Expo)
TypeScript strict — sem any desnecessários
Validação de inputs em DTOs / componentes
Logger estruturado; secrets em variáveis de ambiente
API WEB MOBILE
D05 15 pts
Documentation
A documentação tem peso equivalente ao código. PRD alinhado com a implementação, ADRs com raciocínio real (não decorativo), README que funciona sem perguntas.
PRD com visão, personas e requisitos funcionais
Mínimo 3 ADRs: contexto, decisão, alternativas, consequências
README: clone → instalar → rodar sem perguntas
OpenAPI sincronizado com implementação (Track API)
API WEB MOBILE
D06 5 pts
Financial Domain
Avalia se o candidato realmente entende o domínio — ou se apenas copia termos sem compreensão. Nomenclatura, dados plausíveis e prompts com contexto correto.
Termos corretos: RSI, MACD, ticker, threshold, sinal
Dados com tickers reais (PETR4, VALE3) e valores plausíveis
Prompts com contexto financeiro específico; não genérico
API WEB MOBILE
BONUS +5 pts
Testes Automatizados
Não penalizado se ausente, mas valorizado quando presente. Testes dos nós do grafo LangGraph, hooks React, stores Zustand ou fluxos críticos do app mobile.
Testes unitários dos nós do grafo (API)
Testes de hooks e stores Zustand (WEB)
Testes de integração de endpoints (API)
Testes E2E de fluxo crítico (WEB / MOBILE)
API WEB MOBILE

Resultado

Níveis de classificação

A classificação é um ponto de partida para a conversa — não um veredito final. O resultado é apresentado e discutido em uma entrevista técnica.

Senior 85 – 100 Domínio técnico profundo e documentação consistente
Pleno 65 – 84 Implementação sólida com pontos de melhoria identificáveis
Junior 45 – 64 Base técnica presente, profundidade a desenvolver
Não passou 0 – 44 Requisitos essenciais não atendidos ou ausentes
O que o número não captura
💬
Entrevista técnica: o score é apresentado e discutido com engenheiros. Você pode explicar suas decisões, trade-offs e o que faria diferente.
🔍
Revisão humana: além da rubrica automática, engenheiros sênior revisam código, commits e ADRs antes de qualquer decisão.
Bônus de testes: até +5 pontos adicionados ao total para candidatos que entregam testes automatizados com cobertura significativa.
📊
Contexto importa: um score de 72 com commits claros e ADRs honestos vale mais que 80 com código copiado e sem raciocínio.

Regras e restrições

O que você precisa saber

Leia antes de começar. O não cumprimento impacta o score diretamente.

72 horas sem prorrogação
O prazo começa ao aceitar o convite e o sistema revoga o acesso automaticamente. Pushes após o prazo são ignorados na avaliação. Planeje o ritmo desde o início.
🔧
Stack obrigatória por track
Cada track tem framework obrigatório: NestJS 10 (API), Next.js 15 (WEB) ou Expo (MOBILE). Bibliotecas adicionais são permitidas — não substituições do framework principal.
📌
Tag v1.0.0 dispara a avaliação
Use git tag v1.0.0 && git push origin v1.0.0 para submeter. Versões intermediárias como v0.1.0 são permitidas para checkpoints. Apenas a última v1.0.0 é avaliada.
🚫
O que não fazer
Não comite .env com chaves reais. Não use mock de IA para simular respostas — o avaliador verifica chamadas reais. Não use any como escape de TypeScript — isso é penalizado. Não copie código de outros assessments (detectável).
📝
Documentação tem peso igual ao código
PRD, 3 ADRs e README são obrigatórios e avaliados com o mesmo rigor que o código. ADRs devem ter contexto, decisão, alternativas consideradas e consequências — não apenas "escolhi X porque é bom".
🤖
IA generativa é permitida e esperada
Você pode usar Claude, GPT, Copilot e outras ferramentas de IA para escrever código. O que avaliamos é sua capacidade de direcionar, revisar e responsabilizar-se pelo que foi produzido — não a ausência de assistência.