Pedro Chasci PugaI build the boring parts that have to stay up.
I work where a system has to keep standing — APIs, data, deploy — and the language is whichever one the problem is already written in. The API serving this page is one of mine: it sleeps on a free tier, wakes up in about a minute, and I decided that was worth it. Open any project to read the decisions behind it.
How I work
I build and maintain services — the kind that sit behind something else and are only noticed when they stop. Most of what I do is deciding which constraint to accept: a free tier that sleeps, a database without joins, a seed that fails without taking the process down with it. None of that changes with the language, and neither does the habit of writing the decision down — including the ones that aged badly.
Core
- C#
- .NET
- ASP.NET Core
- PostgreSQL
- Firestore
- Docker
Also worked with
- Oracle
- EF Core
- AngularJS
- Azure
- CI/CD
Selected work
Portfolio Frontend
The site you are reading. One server-rendered page — no client-side router, no state library — and every project on it comes from the C# API in the same repository.
- TypeScript
- Next.js 16
- React 19
- Tailwind v4
- Vercel
5 decisions
Portfolio API
An ASP.NET Core 9 Minimal API on Cloud Firestore, containerised and deployed on Render. It serves the project list on this page — if you are reading this, it answered.
- C#
- .NET 9
- Minimal API
- Firestore
- Docker
- Render
5 decisions