Case studies
Projects
Case studies of three projects: the problem, what I built, the decisions behind it and what I learned.
AIrticlesConsulting projectJan to Aug 2025
An AI pipeline that writes, illustrates and publishes SEO articles
- Result
- 100+paying customersJan to Aug 2025, while I was on the project · 7.5K+ articles and 99%+ uptime
- TypeScript
- Node.js
- React
- AWS
- OpenAI
Quick look: problem and my partHide quick look: AIrticles
- Problem
- Businesses that rely on search traffic need a steady flow of SEO content, and writing, illustrating and publishing each article by hand is slow and expensive.
- My contribution
- Built the first version of the product, frontend and backend, as a consultant through Novva Solutions: the generation pipeline, sign-in, billing, a CTA generator and a conversion-tracking pixel. Then ran the pipeline in production.

ONYXPersonal productJun 2026 to presentPre-launch
An offline-first powerlifting log that does the math between sets
- Result
- 500+automated testsPre-launch, so no usage numbers yet · 180+ merged pull requests since June 2026
- React
- TypeScript
- Fastify
- PostgreSQL
- Astro
Quick look: problem and my partHide quick look: ONYX
- Problem
- Lifters log their training in spreadsheets and do the math between sets by hand, and generic apps are in English and don't speak the sport's language.
- My contribution
- Built it alone, from the product definition to production: an offline-first React PWA, a Fastify and PostgreSQL API with cross-device sync, and the deployment.

River Effluent SimulatorClient projectDec 2024 to Feb 2025
A desktop app that simulates river water quality and optimizes where effluents are discharged
- Result
- ~30,000river simulations in one optimized runDefault settings · Dec 2024 to Feb 2025 · the study's findings are the researcher's
- Python
- PyQt5
- Matplotlib
- pandas
- PyInstaller
Quick look: problem and my partHide quick look: River Effluent Simulator
- Problem
- Deciding where effluents may be discharged into a river, and how much they must be treated, means running many water-quality scenarios, which is impractical by hand.
- My contribution
- Sole developer for a PhD researcher: the QUAL-UFMG model in Python, a multi-objective genetic algorithm, the desktop interface, tests and a Windows executable.



