Data engineering · AI/ML · Brasília

Raw data in.
Clear decisions out.

I'm Tiago, a software engineering student at UnB and tech lead of a data platform that makes five Brazilian federal systems finally speak the same language.

scroll — the ink follows you

The archive

06 entries · catalogued by hand · hover a photo to bring back its colour

AI · 0032026
BobFlow in Slack: it asks a clarifying question, then creates a CRITICAL GitHub issue after approval

BobFlow

IBM Dev Day Hackathon · 8 agents, one Slack thread

Describe an IT problem in Slack, in English or Portuguese. Agents refine, triage and route it; priority comes from a deterministic 7-signal score, not an LLM guess, and every step lands in an append-only decision trace.

ibm watsonx · python · typescript · slack bolt

RS · 0042026
Tiago presenting results at IEEE CSEE&T in Florence

MSR Brasil Participativo

Paper · IEEE CSEE&T 2026 · Florence, Italy

Mining-software-repositories analysis of data extracted from the Brasil Participativo (BP) repository: Brazil's largest social-participation platform, with 7 million users.

repository mining · graphql · python

ML · 0052025
Drawing digits on a canvas and getting live predictions

OCR from scratch

Neural net in pure NumPy

784 → 128 → 10, hand-written backprop, trained on MNIST. No frameworks, just matrices.

numpy · javascript · canvas

DE · 0062025
Chart: 76.1% of public works in the Federal District stalled in planning

Public works, DF

ETL on the ObrasGov API

76.1% of the Federal District’s public works stuck in planning, 64.9% of capital (R$ 2.0 bi) in road corridors, and small health clinics creating the most jobs per real invested.

python · postgres · docker · parquet

Case study · GovHub-br

Five rivers, one sea

Five federal systems, each built for its own job, never designed to talk. One platform, now running for IPEA and for the Ministry of Racial Equality. Hover any stop on the map to see what it holds and what happens to it.

I · Sources

II · Medallion lakehouse

III · Where it lands

How to read this map Hover a stop

Each source on the left flows through three layers of refinement before it reaches the people who decide. Hover, tap or tab through any stop to read its story.

start with SIORG, it ties everything together

2deployments: IPEA and the Ministry of Racial Equality
91Airflow DAGs orchestrating ingestion
308dbt models across bronze, silver and gold
#1contributor to both repos · 350+ commits of my own

As tech lead I set the team’s rules of the road: pre-commit hooks, automated tests, Conventional Commits and GPG-signed commits, so a growing team could keep shipping without breaking the river.

GovHub data architecture: APIs flow through an ETL pipeline into raw, bronze, silver and gold tables, then to BI, data science and machine learning
the original blueprint, as drawn by the teamGovHub

The lab · live

Write a digit.
The page will read it.

Built from scratch: every neuron, every gradient, written by hand in plain NumPy. No TensorFlow, no PyTorch, no server. It runs in your browser.

784 inputs → 128 hidden (ReLU) → 10 outputs · 97.7% on the MNIST test set

waiting for ink…

  1. 00%
  2. 10%
  3. 20%
  4. 30%
  5. 40%
  6. 50%
  7. 60%
  8. 70%
  9. 80%
  10. 90%

A few notes
about me

No dramatic origin story, honestly. I just love the moment a messy dataset starts to make sense. That’s what keeps me in data engineering, and what pulls me into AI side projects, from hackathons to neural networks written by hand.

Off the keyboard:

8 years in the pool

gold · freestylebronze · butterfly

Competitive swimmer who raced regional meets for years, with medals at the youth regionals.

discipline, one lap at a time

Learning guitar

A brand-new hobby, still at the sore-fingertips stage. Learning MPB and bossa nova, chasing Tom Jobim and João Gilberto one chord at a time.

no stack trace for wrong chords

Max, my golden retriever, peeking out from a pile of couch cushions, his muzzle slightly white

Max

My golden retriever and chief code reviewer. A touch of vitiligo left his muzzle a little white, which only makes him cuter.

approves every PR with a tail wag