Skip to Content

Blog

Thoughts on tech, systems, and everything in between

DateTitleTagsLink
Oct 11, 2026Building a Static Analyzer in GoWent down the gopls rabbit hole, learned how static analyzers work in Go, and built one to catch SQL injection vulnerabilities.Golang·Static Analysis·Security·AST·gopls
Oct 11, 2026Kafka Share Groups - Using Kafka as a Real Message QueueKafka share groups (KIP-932) finally let multiple consumers read from the same partition concurrently - treating Kafka as a proper message queue.Kafka·Distributed Systems·Message Queues·KIP-932
Oct 11, 2026How Go Compiles Switch Statements to AssemblyLooking at how the Go compiler translates switch statements into assembly - from naive if-else chains to binary search trees, jump tables, and lookup tables.Golang·Compilers·Assembly·SSA·Systems
Oct 11, 2026Writing a VCR Package in GoBuilt a VCR (video cassette recorder) package in Go for recording and replaying HTTP traffic in tests, inspired by pytest-recording and vcr.py.Golang·Testing·HTTP·Open Source
Oct 11, 2026ext3 vs ext4 - Why Pauses Matter in FilesystemsReading about ext3 and ext4 filesystems - timestamps, journaling, and why ext3 was expensive to adopt on commodity hardware.Filesystems·Linux·ext3·ext4·Systems
Oct 11, 2026Simhash and Locality Sensitive HashingStumbled upon simhash - a locality sensitive hashing technique used by Google for VisualRank, and built a naive implementation.Algorithms·Hashing·Search·LSH
Oct 11, 2026containerd-shim and the Double Fork TrickHow containerd-shim uses the classic double fork to detach from its parent and survive containerd/dockerd restarts.Docker·Containers·Linux·Processes·OCI
Oct 11, 2026Building a Distributed Scheduler with Raft ConsensusBuilding a disc-backed distributed scheduler with leader-follower replication and raft consensus for failover.Distributed Systems·Golang·Raft·Scheduling·Systems
Oct 11, 2026Building a Distributed Scheduler - Disk-Based StorageExperimenting with a disk-based distributed scheduler using partitioned file storage, atomic renames, and sorted filenames for constant-time polling.Distributed Systems·Golang·Scheduling·Systems
Oct 11, 2026HTTP/2 Streams, mTLS and Zero-Trust AuthExploring zero-trust authentication at the transport layer - mTLS, per-connection client identity, HTTP/2 stream IDs, and how APNs combines both.Networking·HTTP/2·mTLS·Security·Zero Trust
Oct 11, 2026Fitting 800MB of Active Usage onto 512MB RAMRunning Chromium and multiple services on a 512MB RAM machine - OOM scores, zram, swap tuning, and manual memory management on Linux.Linux·Memory Management·Systems·Performance
Oct 11, 2026Building a Distributed Queue in GolangImplementing a distributed queue with scheduling, rate limiting, and backpressure - and the nuances of NUMA-aware thread scheduling.Distributed Systems·Golang·Queues·Performance·NUMA
Oct 11, 2026Storage Engine for Graph Databases - Part 2: mmap and O_DIRECTContinuing the storage engine rewrite - using mmap for reads, O_DIRECT for WAL writes, and LSM tree compaction without stopping the world.Storage Engine·Golang·LSM Trees·Graph Databases·Systems
Oct 11, 2026Distributed Queue in Golang - Part 2: Redis BackendMoving the distributed queue to Redis as a shared memory backend - BLPOP for blocking dequeues, timeout handling, and data races on shutdown.Distributed Systems·Golang·Queues·Redis
Oct 11, 2026Distributed Queue in Golang - Part 1: Ring BufferStarting off building a distributed queue in Golang - a naive ring buffer with multiple memory backends, partitioning, and async/sync support.Distributed Systems·Golang·Queues·Ring Buffer
Apr 21, 2026Running Isolated Containers for SandboxingRunning Isolated Containers for SandboxingNetworking·Sandboxing·Virtualization·Containerization
Mar 20, 2026Managing your own servers on cloud/bare metalRewriting a storage engine for graph databases, i build sometime back in C++ to Golang.Storage Engine·Golang·LSM Trees·Graph Databases
Mar 20, 2026Managing your own servers on cloud/bare metalRewriting a storage engine for graph databases, i build sometime back in C++ to Golang.Storage Engine·Golang·LSM Trees·Graph Databases
Mar 8, 2026Rewriting a storage engine for graph database in GolangRewriting a storage engine for graph databases, i build sometime back in C++ to Golang.Storage Engine·Golang·LSM Trees·Graph Databases
Feb 18, 2026PDF Rendering and PostScript - A Weekend Deep DiveSpent a weekend understanding how PDFs work under the hood - PostScript, text rendering, and the Turing-complete nature of PDFs.PDF·PostScript·Systems Programming·Go·Graphics
Feb 23, 2024ResNet50 vs ResNeXt50: An Experiment with CIFAR10 DataComparing ResNet50 and ResNeXt50 architectures on CIFAR10 dataset - a deep learning experiment.Deep Learning·Computer Vision·ResNet·CIFAR10·PyTorch
Feb 20, 2024Digging Up on DIG - The DNS Lookup UtilityPacket analysis using Wireshark to understand how DNS queries work under the hood.Networking·DNS·Wireshark·Packet Analysis·Systems