Skip to content

Case study

Real problems, engineering decisions.

A closer look at a problem I encountered, the options I considered and the solution I built.

Case study / Co-founder

Monafy

Visit project — Monafy

Part 1 of 2

Resuming a Kafka consumer without losing database progress

Data and consumer progress can diverge across a crash. One PostgreSQL transaction commits both, with a deliberate cost when a batch contains a bad row.

Read the case study

Part 2 of 2

Keeping CLAUDE.md instructions consistent across repositories

Copied rules drift as repositories change. One authoritative home for shared instructions keeps local commands separate from workspace policy.

Read the case study

Case study / Client work / 2026–

B2B SaaS platform

Part 1 of 2

Separating SaaS workflow templates from customer state

Reusable steps can serve different services when customer documents and progress belong to each purchase, rather than to the shared template.

Read the case study

Part 2 of 2

Integrating an e-invoicing API without a sandbox

An accepted request can still produce an incorrect invoice. Retry identity, tax semantics and automatic submission each need their own checks.

Read the case study

Case study / Client work

E-commerce platform

Case study / Client work

Why a PayTR callback cannot clear a Laravel session cart

A server callback does not carry the customer’s session. Payment verification belongs to the notification; cart cleanup belongs to a browser request.

Read the case study

Case study / Personal project / 2026

Multiplayer browser games

Case study / Personal project

Testing multiplayer games from one browser

Local bots use the existing game rules, including a 45-second night timer. That lets me inspect voting flows from a single screen.

Read the case study