Senior Solutions Architect · MongoDB

Arquiteturas de dados que saem
do slide e rodam em produção.

Sou Bruno Vieira. Trabalho ao lado de clientes desenhando soluções sobre MongoDB — modelagem de documentos, busca vetorial, agentes com memória — e transformo cada uma delas em uma demo funcional.

Aqui ficam essas demos, o código por trás delas e artigos curtos explicando os conceitos que mais aparecem nessas conversas.

Bruno Vieira
Cargo atual
Senior Solutions Architect
MongoDB
São Paulo, Brasil
Sobre mim →
atual
Senior Solutions ArchitectMongoDB

Arquitetura de soluções para clientes enterprise: modelagem de documentos, estratégias de busca com Atlas Search e Vector Search, aplicações de IA com agentes e memória. Construo as demos técnicas que provam cada conceito.

PLACEHOLDER
Cargo anteriorEmpresa

PLACEHOLDER — troque por um cargo real. Uma ou duas frases sobre o escopo e o resultado, no mesmo tom da entrada acima.

PLACEHOLDER
Cargo anteriorEmpresa

PLACEHOLDER — terceira posição da trajetória. Remova a linha se preferir mostrar apenas as duas mais recentes.

Todos os projetos →
Demo · Varejo2026

E-commerce com busca semântica

Catálogo onde a busca entende intenção em vez de palavra-chave. Combina Vector Search para similaridade semântica, Atlas Search para relevância textual e schema flexível para variações de produto sem migração.

Atlas Vector SearchAtlas SearchFlexible SchemaAggregation Pipeline
Demo · Seguros2026

Agente de seguradora com memória

Assistente que atende sinistros mantendo contexto da conversa e histórico do cliente. Memória de curto prazo na sessão, longo prazo indexada por vetores, e ferramentas expostas ao modelo via MCP.

Short/Long-term MemoryAtlas Vector SearchMCP ServerTime Series
Busca vetorial com filtro em uma única pipeline
vector_search.py
pipeline = [
    {
        "$vectorSearch": {
            "index": "produtos_vector_index",
            "path": "descricao_embedding",
            "queryVector": embed("sapato leve para corrida"),
            "numCandidates": 150,
            "limit": 10,
            "filter": {"em_estoque": True}
        }
    },
    {
        "$project": {
            "nome": 1,
            "preco": 1,
            "score": {"$meta": "vectorSearchScore"}
        }
    }
]

for doc in db.produtos.aggregate(pipeline):
    print(doc["nome"], round(doc["score"], 3))
Todos os artigos →
Conceitos

O que é Vector Search e como utilizar em seus projetos

Busca por significado, não por palavra-chave. Neste artigo: como os embeddings representam texto, como o índice vetorial do Atlas funciona e uma pipeline pronta para copiar.