Open to Work: Senior Backend & Distributed Systems Engineer (Go / Python) View LinkedIn →

Deep Dive

Technical Journal // Deep Dive
Jul '26

Couchbase Index Best Practices and Query Performance Tuning

A practical field guide to Couchbase indexing. Covers primary vs GSI indexes, composite key ordering, index-order sorting, covering and partial indexes, array indexes (including replacing OR and LIKE), IntersectScan and UnionScan avoidance, replication and partitioning, projection selectivity, the ADVISE and INFER tools, scan consistency, and pagination, all with runnable SQL++ (N1QL) examples against the travel-sample dataset.

Apr '26

Why Your Goroutines Need a Speed Limit: Bounded Concurrency in Go

Unbounded concurrency is a reliability nightmare. Learn how to protect your system from OOM kills and database exhaustion by implementing Semaphores and Worker Pools in Go.

Apr '26

Kubernetes on WSL2 and the macOS tunnel

A pragmatic guide to running k3s inside WSL2 on a Windows gaming PC and accessing it securely from a MacBook. No LAN exposure, no fragile port proxies: just SSH and control-plane tunneling.

Mar '26

ClickHouse data masking with regex

Ingesting PII is easy; cleaning it up is hard. Here is how to use ClickHouse's data masking policies and regex to redact sensitive logs in flight without killing your query performance.

Mar '26

Understanding CPU Caches in Go

A practical guide to understanding how CPU caches (L1/L2/L3) impact Go service performance, with benchmarks on modern hardware.

Mar '26

ClickHouse vs. Postgres: When to Move Your Logs Out of a Relational DB

Postgres is the swiss-army knife of databases, but when you hit the 10-million row mark for write-heavy logs, the relational wall becomes real. Here is why we moved our observability stack to ClickHouse.

Mar '26

WSL2 Is Slow? Fix /mnt/c/ File System Performance & Go Latency

Why is WSL2 so slow? Understand the 9P filesystem boundary, why /mnt/c/ degrades Go build times, and how to fix WSL2 performance bottlenecks on Windows.

Jan '26

Go Struct Field Alignment: How Memory Padding Wastes Your RAM

How CPU word alignment and struct field ordering silently inject memory padding in Go. Learn field reordering to cut heap memory allocations and cache misses.

Jan '26

Memory Mechanics In Go - Stack vs Heap

When thinking about performance, it's easy to focus on Big O notation. But in Go, the difference between the Stack and the Heap is often the difference between a service that scales and one that chokes on GC pauses. This post explores escape analysis, the "Pointer Myth", and why passing by value is often 40x faster than passing by pointer.

Jan '26

OLTP vs OLAP - Why You Need Two Databases

"The database that runs your app cannot be the database that analyzes your app". It's a hard lesson learned at scale. Early on, Postgres does it all. But as you hit massive scale, your analytics queries start killing your login APIs. This post breaks down the physics of Row-oriented (Couchbase) vs Column-oriented (ClickHouse) databases, and how to bridge them using Change Data Capture (CDC) for a robust, lag-free architecture.