Blog
Technical notes from real projects: architecture decisions, problems and how I solved them.
Tenant Isolation in a Multi-Tenant SaaS: EF Core Filters Aren't Enough, So I Added SQL Server RLS
How I isolated each law firm's data in a multi-tenant SaaS across three independent layers: signed JWT claims, EF Core query filters and SQL Server RLS.
Running 6 Marketplaces From One Panel: An Approval Gate for Every Outbound Operation
How I prevented bad bulk operations in a system that pushes stock, prices and invoices to Trendyol, Hepsiburada, N11, Amazon and other channels.
GEO: Does Your Site Show Up in AI Answers? A 21-Bot Access Matrix, llms.txt and Log Analysis
How Yankı, my SEO + GEO platform, measures whether a site is technically open to AI search engines like ChatGPT, Claude and Perplexity.
Building a Live-Stream Selling Backend with SignalR in ASP.NET Core
How I built a real-time live-stream selling, auction and chat infrastructure in ASP.NET Core with SignalR, in production.
Reconciling 8 Payment Providers Into One Accounting System: A Reconciliation Architecture
How I built the background-worker architecture that reconciles bank receipts, payment providers and e-invoicing into one system.
Running a Local LLM in Production with Ollama: Building an AI Listing Coach
How I built a local AI assistant that runs in production with Ollama and Qwen Coder, without any cloud API cost.
GPT-6 Astra Is Out — Does It Actually Change Anything?
A developer's take on OpenAI's GPT-6 Astra: the numbers are impressive, but do they actually matter in production?
Claude Fable 5.1 or GPT-6 Astra? I Looked at the Numbers and Made My Call
I compared benchmarks from both models — the sources disagree with each other, so I tried to untangle what's actually better for what.
Is Claude Fable 5.1 Actually As Good As Claimed?
I looked closely at Anthropic's claims for Fable 5.1 — which ones hold up as real progress, and which are just marketing language.