ENGINEERING
Idempotency keys: how to avoid charging your customer twice
Learn what idempotency keys are, why they exist, and how to use them so a repeated request never turns into a duplicate charge.
04 de out de 2026 · 7 MIN READ
WHOISKAWHAN / SOFTWARE ENGINEER / João Pessoa
APPLIED ENGINEERING
I am Kawhan. Four years building software, currently on systems for industrial automation. I write code for two reasons: to solve a real problem, and to get an idea off paper — until it runs, it is still a guess.
ARTICLES / ESSAYS / DECISIONS
ENGINEERING
Learn what idempotency keys are, why they exist, and how to use them so a repeated request never turns into a duplicate charge.
04 de out de 2026 · 7 MIN READ
8 PROJECTS / REPOSITORY
A sales API in .NET with DDD, CQRS through MediatR and events published to RabbitMQ. Quantity discounts computed in the domain, soft deletes, and no business rules hiding in controllers.
An ordering API for a burger joint that figures out the combo on its own and applies the best discount. .NET 10, EF Core, PostgreSQL and tests covering the rules.
Opportunity again, this time split into microservices with Spring Boot, Eureka for service discovery and a gateway handling authentication. The question was whether I could make it scale without turning it into a distributed mess.
A job board for UFPB Campus IV: students and professors sign in with their institutional email, and charts show who showed interest in which opening. Django, PostgreSQL, JWT and Docker.
Reimplementing the C standard library at 42 São Paulo. No garbage collector, no safety net — just malloc, free, and the consequences of getting it wrong.
A .NET API written with real DDD, not slide-deck DDD. Entity Framework, dynamic validation through FluentValidation, and Swagger for whoever consumes it.
Portfolio
Things I wanted to prove would work, so I built them.