About

I’m a software engineer at the AI Lab of Folha de S.Paulo, Brazil’s largest newspaper, and a journalist by training. I build the AI systems the newsroom and its readers use every day: a news monitoring pipeline whose architecture I designed, a public essay grader built on a model I fine-tuned (more than 30,000 users), a declarative video engine, features across the newsroom’s AI platform and the portal journalists use it from, and a reader tool on European citizenship published in 2025. Outside the paper I maintain dolly, an open-source tool that captures how a project is organized as a portable pattern and applies it anywhere, and I’m under contract building an audience-intelligence system for a TV network: a chat grounded only in the station’s own reports, with the page cited.

I came to engineering through journalism. I studied it, then did a master’s in digital communications, and somewhere in there I stopped writing stories and started writing the software that helps other people write them: election data at The Atlanta Journal-Constitution in 2024, then the scraping and formatting pipelines behind two published interactives at Estadão, another of Brazil’s major newspapers. Before that, the LAPD scraping plan for CLEAN, an open-source police-records scraper built at Big Local News, Stanford’s data-journalism program.

The journalism half isn’t decoration. Most of what makes these tools usable is knowing how a newsroom actually runs, and what an editor will or won’t trust. The problems I like sit at the seam between what a model outputs and what a person has to rely on. I work mostly in Python and TypeScript, end to end: the data model and the pipeline, the API, and the page a person actually uses.

Background

  1. 2019–2023

    BA Journalism

    University of Southern California

  2. 2023–2024

    MA Digital Communications

    Stanford · Big Local News

    At Stanford I worked with Big Local News on CLEAN, where I designed and implemented the scraping plan for the LAPD data.

  3. Jun 2024 – Sep 2024

    Data Journalism Intern

    The Atlanta Journal-Constitution

    Helped collect and format 2024 US election data, and implemented automated newsgathering pipelines.

  4. Dec 2024 – Apr 2025

    Data journalist

    Estadão

    Built the scraping and data-formatting pipelines behind the published Radar da Criminalidade and Radar do Litoral interactives.

  5. 2025–

    Software engineer

    AI Lab · Folha de S.Paulo

    I ship full-stack AI features used daily by the newsroom of Brazil’s largest newspaper.

Earlier public work

  • CLEAN

    Stanford Big Local News · 2024

    An open-source Python scraper library and CLI that harvests police accountability records from California law-enforcement agencies, surfaced publicly through a Los Angeles Times collaboration. During my MA I designed and implemented the scraping plan for the LAPD data.

  • Radar da Criminalidade

    Estadão

    A published interactive piece from Estadão, another of Brazil’s major newspapers, that maps robberies by street and neighbourhood in São Paulo from public-security data. I built the scraping and data formatting behind it.

  • Radar do Litoral

    Estadão

    The coastal edition, mapping crime around São Paulo’s beach towns. Same role: scraping and data formatting.

Skills

Languages
  • Python
  • TypeScript
  • JavaScript
  • SQL
AI engineering
  • LLM pipelines (OpenAI, Anthropic, Gemini via LiteLLM)
  • LLM fine-tuning (OpenAI)
  • RAG systems
  • Structured output (Instructor, Pydantic, Zod)
  • Agents with tools (PydanticAI)
  • Prompt-injection defence & moderation gates
  • Embeddings + pgvector
  • Clustering (DBSCAN)
  • Evals with precision and cost gates (pydantic-evals)
  • Transcription and TTS pipelines
  • Spec-driven development with coding agents (plans, review gates, evals)
Backend
  • FastAPI
  • Celery
  • Temporal
  • SQLAlchemy/Alembic
  • Redis
  • PostgreSQL
  • Nitro/Hapi
Frontend
  • Vue 3 / Nuxt 3
  • SvelteKit
  • Tauri (desktop shell)
  • Client-side document generation (DOCX/PDF)
Media
  • OpenTimelineIO
  • PyAV/ffmpeg
  • MoviePy
Ops
  • Docker
  • Kubernetes (Kustomize/ArgoCD)
  • GitLab CI / GitHub Actions
  • OpenTelemetry
  • Playwright (end-to-end)
  • uv / just / pnpm / Bun