Blog 43 posts
Notes about .NET, databases, testing and the engineering decisions behind working software.
2026 — July
12 posts
5 min read
Preventing Inconsistent Data with ACID Transactions
#Databases
Every ACID property has a default, and three of them promise less than the word does. The fourth default is honest, which turns out to be the dangerous part.
5 min read
Pix: How Brazil's Instant Payment System Works
#Payments
Pix isn't an app and isn't a company. It's a payment system the central bank built and operates itself, which is exactly the part that confuses people outside Brazil.
5 min read
How .NET Modernization Works with the Copilot Upgrade Agent
#.NET
Microsoft published a free course on upgrading .NET Framework apps to .NET 10, plus full docs on the Copilot modernization agent. Here's what the assess, plan, execute workflow actually does.
3 min read
The YouTube Channels Helping Me Learn C# and .NET
#.NET
Tim Corey for fundamentals that actually stick, Nick Chapsas for what changed in the latest versions, and Balta plus Canal .NET in Portuguese. Four channels doing four different jobs.
3 min read
Building a Simple Fraud-Detection Rule in .NET
#.NET
A walkthrough of one real fraud rule: the interface, the verdict type, the repository query behind it, and why the whole thing is about 20 lines of actual logic.
3 min read
How I'm Learning System Design
#System Design
Most system design content assumes you have already run something in production. Building what the videos explain, instead of only watching them, closes that gap faster than waiting for the experience to arrive.
4 min read
How I Would Design a Payment System as a Junior .NET Developer
#Payments
If I got handed a payment feature tomorrow, the hard parts wouldn't be the API design. They'd be idempotency, the fact that money problems don't show up in testing, and knowing what not to build.
5 min read
Designing a URL Shortener as a Learning Project
#System Design
A URL shortener in .NET 9, three copies behind nginx, backed by Cassandra and cached with Redis, built to actually understand a system design video instead of just watching it.
4 min read
How I Designed a Payment Gateway Orchestrator After an iGaming Course
#Payments
PayMaestro: one API in front of many payment gateways, with routing, cascading retries, database-enforced idempotency, and fraud screening informed by an iGaming Academy anti-fraud certification.
4 min read
My First Thoughts After Learning About Cassandra
#Cassandra
Coming from SQL Server, the surprises weren't about scale. No joins, denormalising on purpose, designing the primary key before the table exists, and a query language that looks like SQL but refuses things SQL allows.
4 min read
What an iGaming Course Taught Me About Anti-Fraud Systems
#iGaming
Anti-fraud in payments is not one filter that blocks bad transactions. It's a set of judgment calls about risk, cost, and how much friction a real customer will tolerate.
2 min read
The .NET Creators I Learn Software Design From
#.NET
Milan Jovanović for clean architecture, Nick Chapsas and Balta for the smaller habits that add up. The CRUD project I built came straight out of one of those lessons.
2026 — June
7 posts
4 min read
Setting Up Azure Monitor Alerts and Action Groups
#Azure
An alert rule decides when something is wrong. An action group decides who finds out. Splitting those two apart is why you don't end up editing forty alerts to change a phone number.
4 min read
RBAC, Policy and Resource Locks: How Azure Governance Fits Together
#Azure
Three features that sound similar and answer completely different questions: who can act, what is allowed to exist, and what nobody should delete by accident.
3 min read
Kubernetes Felt Easier Once I Understood These Basics
#Kubernetes
I haven't actually deployed Kubernetes in a real project yet, same as most of what I know about software design: watched, understood, not yet applied. The basics still stopped feeling like a wall of YAML once I had a mental model for them.
4 min read
Using Azure Cloud Shell and the az CLI for the First Time
#Azure
A terminal in the browser, already authenticated, with the tooling installed. Once I saw the pattern behind the az commands, the portal started feeling slower than typing.
2 min read
What I Learned After Taking Two Months Off Coding
#Career
Two months off taught me the knowledge sticks around. The routine doesn't, and you have to earn it back one session at a time.
4 min read
How Getting Certified Got Me Studying Again
#Career
How preparing for AZ-900 helped me stop jumping between topics and study with a clearer direction.
3 min read
What I Do to Make a .NET Application Safer
#.NET
Security isn't only authentication. Version control hygiene, secrets, JWT validation, RBAC, HTTPS, monitoring, dependency trust, and reviewing every piece of LLM-generated code before it runs.
2026 — May
1 post2026 — April
4 posts
3 min read
JWT and Microsoft Identity: How I Understand the Difference
#.NET
I kept treating JWT and Microsoft Identity as competing choices. They're not. One's the ticket booth confirming who you are, the other's the wristband proving it on every ride after that.
4 min read
Why Scaling Matters Even Before Your Application Gets Big
#System Design
Scaling isn't about traffic you don't have yet. A few .NET habits, keeping the app stateless, async all the way down, and not calling the database in a loop, cost nothing early and are painful to add later.
3 min read
Why I Think Beginners Should Learn Clean Architecture
#.NET
I used to drop my DbContext straight into controllers and dump logic into Program.cs. It worked, until I had to change something. Clean architecture is what fixed that.
3 min read
How I Study Programming Today: Watch, Build, Repeat
#Learning
My study routine right now: watch a short list of people I trust, rebuild what they showed without the video open, then keep GitHub updated so the practice doesn't disappear.
2026 — March
1 post2026 — February
2 posts
4 min read
SQL or NoSQL? How I Think About the Choice
#Databases
The question isn't which database is better. It's whether I know my access patterns up front, and whether the data has relationships I need the database itself to protect.
4 min read
How I Containerised My API and Deployed It to Azure
#Azure
A multi-stage Dockerfile, Docker Compose with a health-checked SQL Server, and the Sports Betting API running on Azure Container Apps with Azure SQL behind it.
2026 — January
2 posts
3 min read
What I Learned About Building REST APIs in .NET
#.NET
A plain CRUD API, no payments, nothing fancy. HTTP verbs, routing, EF Core, and status codes are finally clicking while I build it.
4 min read
Azure SQL Database or SQL Server on a VM? What I Learned
#Azure
Both run SQL Server. The difference is who patches it, who backs it up, and how much control you actually need. For my API, handing all of that to Azure was the obvious call.
2025 — December
2 posts
2 min read
What I Learned Implementing JWT Authentication in .NET
#.NET
Access token expiration is easy to handle. The refresh token expiring silently, with no explicit failure path, is what actually caused confusing logouts until I gave it one.
2 min read
Finishing My Computing Degree After Failing an Exam
#Education
I failed a module the first time from lack of study time. The retake was a hand-written SQL exam, joins and indexes on paper, and it taught me more than passing first try would have.
2025 — November
1 post2025 — September
1 post2025 — February
2 posts
2 min read
Learning to Code with JetBrains Rider
#JetBrains Rider
Every C# tutorial for Mac said install VS Code and a stack of extensions. That fell apart for me until someone on Reddit mentioned Rider, and auto-complete and debugging just worked.
3 min read
How I Keep Myself Studying Every Day
#Learning
No syllabus, mostly video across five lanes I keep circling, and a habit of noticing when I've fallen down a SaaS rabbit hole instead of studying what I sat down for.
2024 — December
1 post2024 — October
2 posts
2 min read
What I Find Hardest About Learning Programming
#Learning
It's not any single technology. It's the blank page after the tutorial ends, and everything that shows up the moment you start making your own decisions instead of following someone else's.
3 min read
The AI Prompts That Help Me Study Programming
#AI
Prompts that just explain a concept don't stick. The ones that force me to answer, guess, or produce code before getting the explanation are the ones that actually teach me something.
2024 — September
2 posts
2 min read
Using GPT to Practise Italian One Sentence at a Time
#AI
The default GPT experience for practicing a language is a wall of text. Constraining it to 1-2 sentences, a correction format, and one question per turn turns it into an actual conversation instead of an essay generator.
2 min read
How I Reached the Third Round of a Google SWE Internship Interview Without LeetCode
#Career
Screening, behavioral, then a live palindrome challenge I wasn't ready for. I thought I'd lost my one shot. I hadn't, and system design still interests me more than LeetCode ever will.
2024 — July
1 post2024 — May
2 posts
2 min read
The Mac Apps I Actually Use for Development
#macOS
Rider for the backend, VS Code for Angular, Postman and Azure Data Studio in between. The smallest set of tools that covers a full stack without fighting macOS to get there.
2 min read
Moving to a MacBook Pro: What I Liked and What Took Time to Get Used To
#macOS
Years of Windows muscle memory fought me for weeks. The Unix-based terminal, Homebrew, and battery life that lasts a full day are what actually won me over.