I build automation and data systems for the Brazilian financial market — the layer that sits between the trading desk and the database: broker API integrations, ETL pipelines, reconciliation routines, and the internal tools people actually open every morning.
Based in São Paulo.
Broker & market data integration — collectors on top of brokerage APIs (positions, orders, trades, corporate actions), plus scrapers for the sources that never bothered to publish one.
Data pipelines — Airflow DAGs feeding PostgreSQL, with the unglamorous parts done properly: idempotent loads, instrument deduplication, FK constraint chains that don't blow up on a delete.
Reconciliation & reporting — matching internal records against custodian and clearing files, and automating the reports that come out of it (portfolio statements, income statements, regulatory inputs).
Internal services — FastAPI webhooks and Dash/Streamlit dashboards running on Ubuntu VMs under systemd, behind Caddy as a reverse proxy. Each app in its own venv, deployed like a service and not like a script.
Trading automation — order execution routines and signal ingestion, including a Telegram-based channel for environments where opening ports isn't on the table.
Python (pandas, FastAPI, Flask, SQLAlchemy) · PostgreSQL MySQL MongoDB · Apache Airflow · Docker · Linux (Ubuntu, systemd, Caddy) · Git
- National finalist at the Maratona de Programação (ICPC Brazil). The habit of thinking about complexity before writing the first line stuck around.
- Most of my performance wins come from fixing the query or the data model, not from rewriting things in a faster language.
- I care about code that survives handoff: one repo per project, config in
.env, database access behind a single module instead of scattered across every script.
Portfolio — personal site with experience, projects and contact.
repo-name — one line on what it does. Python PostgreSQL Airflow
repo-name — one line on what it does. Python FastAPI Docker
