
Overview
Meeting rooms and company vehicles with an approval workflow, QR check-in, and utilisation analytics. The hard part is booking conflict — solved once, belt-and-suspenders.
Role
Full-stack / product engineer
Stack
- .NET 9
- Clean Architecture
- CQRS
- MediatR
- Next.js
- Postgres
- Resend
Highlights
- 01Dependency direction inward only: Api → Application → Domain ← Infrastructure
- 02Booking conflict solved with one isolation strategy + a Postgres exclusion constraint
- 03Append-only audit_logs written in the same transaction as every mutation
- 04Cross-cutting concerns via MediatR pipeline behaviours
Outcomes
0
double-bookings by designCQRS
clean architecture