AI Engineer

Gabriel Chaves

I build LLM-powered products that ship — structured output, streaming, retrieval — and I own the whole path: interface, API, data pipeline and deployment on Google Cloud.

3 years shipping production web software, now focused on AI engineering. Python · TypeScript · GCP. Completing a Technologist degree in Systems Analysis and Development at IFSP (Dec 2026); finished Google Cloud's Professional Machine Learning Engineer learning path.

São Paulo, Brazil · Remote · Open to remote AI engineering roles — Brazil and international

Projects

AutoApply

Code

Browser extension that fills job application forms through an LLM — designed so the model cannot invent facts about you.

  • Chrome MV3 and Firefox extension that maps arbitrary job application forms to a structured candidate profile through an LLM, with no per-site adapters: the form is scraped for labels, options and required flags, and the model resolves the mapping.
  • Designed against model fabrication: the LLM returns a fill plan that is schema-validated with one corrective retry before any field is written, open-ended answers are anchored to the profile and the job posting, and no code path submits the form.
  • Local-first, no backend: API key and profile stay in extension storage, CVs are parsed in-browser with pdf.js, and any OpenAI-compatible endpoint works, including a local Ollama.
  • GitHub Actions CI with lint, type checks, a Vitest suite and both browser builds; a containerized six-page ATS test environment deployed to Cloud Run with Terraform.
  • TypeScript
  • Chrome MV3
  • Firefox
  • Vitest
  • Terraform
  • Cloud Run

InquilinoIA

Code

Citation-grounded RAG over Brazilian tenancy law — every claim verified in code against the statute before it is shown.

  • Answers questions against the full text of Lei 8.245/1991: each claim must be backed by a verbatim quote from the actual article, checked by normalized substring match in Python — not taken on the model's word — or the answer is flagged.
  • Two Gemini calls by design: one streams a responsive answer over SSE, a second structured-output call extracts {article, quote} pairs for verification — avoiding the fragile alternative of parsing citation tags out of a live token stream.
  • Ingestion scrapes planalto.gov.br and strips both strikethrough forms of revoked amendments (HTML tags and CSS line-through) so historical wording never ships as current law; the chunked output is committed as a reproducible seed.
  • FastAPI + Vue 3 on a single Cloud Run service, Supabase pgvector as the store, Terraform for the GCP resources and keyless deploys via Workload Identity Federation.
  • Python
  • FastAPI
  • Vue 3
  • Gemini
  • pgvector
  • Terraform
  • Cloud Run

Obsidian Chatter

Code

Private RAG chat over an Obsidian vault, with hybrid retrieval and git-versioned write-back.

  • Hybrid local retrieval — e5 embeddings plus BM25 — over the vault's notes, re-indexed automatically after every write.
  • The assistant writes knowledge back into the vault as proper PARA notes with wikilinks and frontmatter, and every change is a git commit you can undo.
  • Tool-use agent loop with on-demand SKILL.md skills, DeepSeek server-side web search with required source citations, and SSE streaming behind a FastAPI service.
  • Python
  • FastAPI
  • DeepSeek
  • e5 + BM25
  • SSE
  • Cloud Run

More projects

Task Helper AI

CodeLive

Voice-driven task orchestrator on Gemini multimodal input, with offline Vosk wake-word detection.

  • Gemini 2.5 Flash
  • Vosk
  • Docker
  • Cloud Run

bookcerto

Code

Multi-tenant scheduling SaaS: database-level booking-overlap guarantee, BullMQ background jobs, SSE live dashboard.

  • Next.js 15
  • Postgres
  • Drizzle
  • BullMQ
  • Terraform

RAG-IC

Code

Research POC: fully local RAG over a company's internal safety-equipment docs — indexing and retrieval never leave the machine.

  • Python
  • Local embeddings
  • Ollama

VIRT-IC

Code

Container network observability: captures the same packet at multiple points (host, bridge, namespaces) and reconstructs the conversation.

  • Python
  • Docker
  • Linux namespaces

Experience

Software Engineer (Freelance) · Independent / Freelance

Jul 2026 – present · Remote

  • Rebuilding the public web platform for Yank EPC, an engineering, procurement and construction company, in Next.js — with search visibility, mobile compatibility and overall user experience as the defining requirements.
  • Using server-side rendering and a structured page architecture so service and project content is indexable, with semantic markup and per-route metadata.
  • Running requirement sessions directly with the client to define product and service content, rather than building to a handed-down spec.

AI / Software Engineer (Freelance) · Meet Oscar

Feb 2025 – Nov 2025 · Remote

  • Built an AI email assistant integrating the Gmail API with Gemini and OpenAI models, delivering automated message categorization and real-time streamed responses inside a custom React interface.
  • Led the complete rewrite of the company's legacy HTML/JS platform to React and Tailwind CSS, improving Core Web Vitals and developer experience.
  • Established the frontend engineering baseline for a startup with no prior frontend specialist: component standards, directory structure, and an accessible Figma-to-React component library.

Junior Software Engineer · Trular

Sep 2022 – Dec 2024 · São Paulo, SP — Hybrid

  • Led the migration of the primary real-estate engine from Next.js to SvelteKit, optimizing server-side rendering and improving organic search visibility.
  • Built Python crawlers (Scrapy, BeautifulSoup) on cloud instances aggregating real-time listing data from multiple sources, feeding the core product database with high availability and consistency.
  • Introduced the testing culture: unit tests with Vitest, component documentation in Storybook, end-to-end coverage with Playwright.
  • Collaborated daily in English with international stakeholders on architecture reviews and technical planning.

Skills

LLM engineering

  • Prompt design
  • Structured output & intent parsing
  • RAG (retrieval-augmented generation)
  • LLM-based classification
  • Real-time streaming (SSE)
  • Multimodal audio input
  • Voice interfaces

Models & APIs

  • Gemini API
  • OpenAI API
  • DeepSeek API
  • TensorFlow

Languages

  • Python
  • TypeScript
  • JavaScript
  • SQL

Web

  • React
  • Next.js
  • SvelteKit
  • Tailwind CSS
  • Node.js
  • FastAPI
  • Flask

Cloud & DevOps

  • Google Cloud (Cloud Run, Cloud Build, Artifact Registry)
  • Docker
  • Terraform
  • GitHub Actions
  • CI/CD
  • Firebase

Data & testing

  • PostgreSQL
  • pgvector
  • BigQuery
  • Scrapy
  • Vitest
  • Playwright
  • Storybook

ML foundations — Google Cloud coursework

Professional Machine Learning Engineer learning path, 19 Skills Boost courses (2025–2026).

  • MLOps & agent platforms
  • ML pipelines
  • Feature engineering
  • BigQuery ML
  • Model evaluation
  • Responsible AI

Contact

The fastest way to reach me is email. I read everything.

gabriel.chaves.tech@gmail.com