JOURNAL
Notes from building software that had to survive real change.
I write about the decisions that become important after the demo works: architecture, .NET, databases, performance, AI-assisted development, Android, and the mistakes that taught me something useful.
The One Interview Trick That Got Me Hired as a Senior .NET Developer
Interviewers rarely care whether you know what something is — they assume you do. What they test is whether you have lived with its consequences in production. Here is the answer format that changed every interview I walked into.
Read article → Career · InterviewsWhy You Keep Failing Senior Developer Interviews (Even With the Experience)
The rejection says “strong candidate, not quite the right fit.” You have shipped production systems for years. Seven specific, fixable reasons strong engineers give weak interview signal in the room.
Read article → .NET · async/awaitasync/await in .NET Interviews: Deadlocks and Thread Pool Starvation
The async question is not about I/O versus CPU. It is about what blocking a thread pool thread costs you under load — a hard deadlock, or a slow latency collapse with healthy CPU and memory. The trade-off answer that sounds senior.
Read article → .NET · EF CoreEF Core Interview Questions: Tracking, the N+1 Problem, and IQueryable Traps
EF Core questions are database questions in disguise. Tracking overhead, N+1 that nobody wrote on purpose, and IQueryable that silently pulls a table into memory — with the production symptom and the rule for each.
Read article → .NET · ASP.NET CoreASP.NET Core Interviews: Middleware Order and DI Service Lifetimes
Two questions where a small, invisible mistake produces a confusing production bug — a CORS failure that is not about CORS, a threading exception that is not about your code. The “has been burned” answer for each.
Read article → .NET · System designCaching, Garbage Collection, and System Design: Three .NET Interview Answers
Three topics where the textbook answer is easy and the senior answer is a different thing entirely: cache invalidation, GC generations and the Large Object Heap, and driving requirements before the diagram.
Read article →