I build products and the teams that ship them.
Twelve years writing software, six of them leading engineering teams. I’ve shipped products, rebuilt legacy systems, and grown small teams into ones that run on their own.
I like problems that look messy from the outside and turn out to have a simple shape once you stop and think.
Most days I’m somewhere between code, architecture and people. I’m comfortable in all three.
What I do
-
Leading teams
Hiring, direction, and getting out of the way. Teams I’ve led kept shipping after I left.
-
Designing systems
Boring, scalable architecture over clever. Decisions you can still explain a year later.
-
Writing code
Still hands-on. .NET on the back, React on the front, tests before merge.
Built with Claude
This page is not a template. It was designed, written, tested and deployed together with Claude Code, in one working session, the same way I run real projects.
-
Brainstorm and spec
We started from a few questions: hosting, stack, language, content. The answers became a written design spec before any code existed.
-
Plan
The spec turned into a step-by-step implementation plan with tests, exact file contents and commit points.
-
Implement with subagents
Each task went to a fresh Claude subagent that wrote the failing test first, then the code, then committed.
-
Review, then review again
Every task got an independent review for spec compliance and quality. Findings went back to the implementer until the review was clean.
-
Deploy on every push
GitHub Actions runs the tests and syncs the site to my Plesk host over FTPS. Pushing to main is the release.
Claude also inspected the hosting panel, moved the DNS, verified the deploy and wrote this text. I made the decisions; it did the legwork.
Latest writing
- Development
EF Core pitfalls
EF Core code that's fast in development and slow in production: N+1 queries, needless tracking, Include explosions and other common mistakes.
- Development
async/await pitfalls in C#
Async code that compiles and passes tests, then deadlocks, swallows errors or starves the thread pool in production. Common mistakes and their fixes.
- Development
Saving tokens in Claude Code without losing quality
Tokens usually go where we don't look: long sessions, huge outputs, a bloated CLAUDE.md, unused plugins. What to watch for.
- Geliştirme
EF Core tuzakları
Geliştirme ortamında hızlı, canlıda yavaş çalışan EF Core kodu: N+1 sorgular, gereksiz tracking, Include patlaması ve diğer sık hatalar.
- Geliştirme
C#'ta async/await tuzakları
Derlenen, testleri geçen ama canlıda kilitlenen, sessizce hata yutan ya da thread pool'u tüketen async kod. Sık görülen hatalar ve düzeltmeleri.
- Geliştirme
Claude Code'da verimi düşürmeden token tasarrufu
Token'lar çoğu zaman fark etmediğimiz yerlerde gidiyor: uzun oturumlar, dev çıktılar, şişkin CLAUDE.md, gereksiz eklentiler. Neye dikkat etmeli?