Full-Stack / Applied AI Engineer
Reliable systems.
Answers you can trace.
I’m João Paulo. I build backend systems for public-sector workflows, and an AI tutor whose answers cite the pages they rely on. Now I’m bringing the same care for data integrity to open-source software for Nordic energy data.
- 5 years shipping production software
- Patient-regulation system in production
- Open-source Nordic energy library on PyPI
- AI answers linked to their source pages
What connects the work: business rules that have to hold, data that has to stay consistent, and answers that can be checked.
São Paulo, Brazil / Available to relocate, with visa sponsorship
01 / Nordic energy, built in public
Making Nordic energy data easier to inspect and use.
Nordic balancing data comes from five sources, each with its own formats, gaps and revisions, and the public APIs show only the latest value. nordic-balancing puts it into one 15-minute UTC model and leaves a missing value missing instead of filling it in. Nordic Balancing Watch runs on that library and keeps every version it sees, so you can trace when a price first appeared and what changed later.
Open-source Python library
nordic-balancing
The data layer: typed Python clients for balancing and imbalance data from Energinet, Fingrid, Svenska kraftnät, eSett and ENTSO-E, on 15-minute UTC intervals. A value the source has not published stays empty, never zero, and two sources can be reconciled where they disagree. Installable from PyPI.
Source ↗PyPI v0.4.0 ↗
Live tracking site
Nordic Balancing Watch
Built on nordic-balancing: a collector polls the sources and keeps every price version it sees; the site shows when each price first appeared, per zone and source, and what was revised afterward. Collection started in October 2026, so the history is still short.
Visit the site ↗
Upstream pull request
entsoe-py contribution
A contribution to entsoe-py, the Python client for the ENTSO-E Transparency Platform. Submitted, under review.
View the pull request ↗
02 / Selected work
Built to solve real problems.
Health, regulation and applied AI.
Each one built so the right decision is the easy one.
01 / Public-service regulation
In productionPatients reach the right specialist care, in the right order.
Public-sector staff have to match a specialist waiting list against limited appointment capacity. I built the system that proposes allocations by specialty, priority and waiting time. A proposal is only a preview: nothing changes in patient records until the operator confirms it.
- React / TypeScript
- FastAPI
- SQLAlchemy / Alembic
Read the RegMais case study →02 / Public pharmacy operations
Built end to end · private repositoryThe right medicine, in the right amount, from the right lot.
A public pharmacy must give each patient exactly what they are authorized to receive and keep stock true down to the lot. I built the dispensing system end to end. Each dispensation rechecks the authorization version before stock moves and carries an idempotency key, so a retry is recognized instead of counted as a new dispensation.
- Python / FastAPI
- PostgreSQL
- React / TypeScript
Read the DispensaMais case study →03 / Applied AI · personal study tool
Personal tool · used daily · being rebuiltAI answers you can check against the source.
Fluent chatbot answers were no use for exam study if I couldn’t check them. I built a personal AI tutor over my own PDF library and used it daily. Each retrieved passage keeps its file and page all the way to the answer, so every answer can be checked against the document.
- Python / FastAPI
- Qdrant / Neo4j
- Ollama
- Next.js / TypeScript
Read the Study Brain case study →03 / Engineering approach
The useful work is in the decisions.
AModel the rules.
Authorization, stock, capacity and history deserve explicit models. The backend should protect the rules the interface promises.
See the dispensing boundary →BMake actions understandable.
Preview consequential changes. Explain empty and failure states. Let the operator understand a decision before committing it.
See the allocation workflow →CMake answers inspectable.
Carry source text and page references through ingestion, retrieval and model output. Verify the evidence against the document it came from.
See the document-to-evidence path → 04 / Further exploration
A wider engineering toolkit.
Interactive language learning
Bulldog: Sverige
A 2D life simulator in Unity 6 for learning Swedish by living an ordinary life in a small Swedish town: exploring, studying, shopping, working and making friends. Designed so Swedish becomes something the player needs, not just studies. In development.
Ask me about it →05 / Professional context
Close to the domain.
Across the stack.
I build software that real organizations run on every day.
At DemandaNet, I’ve worked on education-management workflows, relational data migrations and product modules since 2021. My independent projects extend that practice into public-sector health services and evidence-grounded document intelligence.
Python and PHP have been part of my work since the start of my career: PHP is the base of the DemandaNet platform, and I also work with Laravel. TypeScript and SQL cover much of the rest, and I choose other tools around the problem, the people using the software and the cost of maintaining it.
Experience & résumé →