18 Sept 2026 · 16 min read
Building a Merkle tree, verifying inclusion and absence, and understanding how Ethereum's modified Merkle Patricia Trie commits to accounts, storage, transactions and receipts.
Blockchain · Ethereum · Cryptography · Data structures
→ 13 Sept 2026 · 23 min read
A practical guide to indexes, query plans, isolation, locks, MVCC, vacuum, replication and safe schema changes.
PostgreSQL · Databases · Production engineering · Performance · Reliability
→ 12 Sept 2026 · 24 min read
Following a query through database/sql, connection pools and wire protocols, then comparing pgx with MySQL, SQLite and SQL Server drivers.
Go · Databases · PostgreSQL · MySQL · SQLite · SQL Server
→ 24 Aug 2026 · 11 min read
Notes from building a focused Ethereum mainnet indexer with bounded concurrency, PostgreSQL storage, reorg recovery and a simple read API.
Go · Blockchain · Ethereum · PostgreSQL
→ 09 Aug 2026 · 9 min read
A simple guide to gRPC contracts, generated code, HTTP/2, deadlines, errors, streaming and the production details that matter.
Distributed systems · gRPC · Go · Networking · Protobuf
→ 18 Jul 2026 · 11 min read
Following one 1 ETH transfer from the Send button to signing, sender recovery, EVM execution, receipts and block roots.
Ethereum · Cryptography · Blockchain
→ 19 Jun 2026 · 17 min read
A distributed-systems view of transaction conflicts, deterministic execution, and how Ethereum, Solana, Aptos, Sui and Monad expose or discover parallelism.
Distributed systems · Blockchain · Ethereum · Solana · Parallel execution
→ 14 May 2026 · 13 min read
Implementing fixed window, sliding window log, sliding window counter, token bucket and leaky bucket to understand their behavior and trade-offs.
Go · Algorithms · Rate limiting · Concurrency
→ 26 Apr 2026 · 24 min read
How routing, ownership and scheduling connect five Go concurrency patterns to Kafka partitions, database shards, consistent hashing and MapReduce.
Go · Concurrency · Distributed systems · Kafka · Sharding
→ 12 Mar 2026 · 16 min read
Following goroutines through the G–M–P model, run queues, work stealing, netpolling, syscalls, preemption and runtime diagnostics.
Go · Concurrency · Runtime
→ 21 Feb 2026 · 19 min read
Designing a global rate limiter from policy and atomic state to Redis sharding, regional quotas, failure behavior and production observability.
System design · Redis · Distributed systems
→ 16 Jan 2026 · 2 min read
A concise explanation of faster reads, slower writes, storage overhead and why the query planner may ignore an index.
PostgreSQL · Databases · Performance
→ 14 Dec 2025 · 11 min read
A step-by-step mental model for moves, async state machines, Pin, Unpin, stack and heap pinning, and static versus dynamic futures.
Rust · Async · Futures · Memory safety
→ 19 Nov 2025 · 16 min read
A layered mental model for OS threads, async tasks, synchronization, blocking, atomics and choosing the right Rust primitive.
Rust · Tokio · Concurrency · Async
→ 23 Jul 2025 · 3 min read
A compact guide to choosing between mutexes, atomics, wait groups, condition variables, Once and sync.Map.
Go · Concurrency · Synchronization
→ 18 Feb 2025 · 14 min read
How a parental-leave learning project grew from AMM arithmetic into a production trading engine with Go, Solidity, simulation and risk controls.
Go · Solidity · Ethereum · DeFi · Trading systems · AMM
→ 06 Nov 2024 · 11 min read
A research map of MEV opportunities, from arbitrage and liquidations to JIT liquidity, cross-domain execution and intent auctions.
MEV · Ethereum · Flashbots · DeFi · Block building
→ 23 Jul 2023 · 7 min read
Why unrestricted computation creates the halting problem and how Ethereum uses gas to bound every transaction.
Computer science · Ethereum · EVM · Gas
→ 20 Apr 2023 · 7 min read
How I built a small Ethereum mempool watcher that decoded Uniswap swaps and assembled cross-DEX backruns as Flashbots bundles.
Go · Ethereum · MEV · Flashbots · DeFi
→ 17 Feb 2022 · 4 min read
A look inside Go's sync.Once, including its fast path, mutex-protected slow path and important edge cases.
Go · Concurrency · Standard library
→ 06 Nov 2019 · 15 min read
Following a request through net/http, from the TCP accept loop and runtime netpoller to ServeHTTP, keep-alive and graceful shutdown.
Go · HTTP · Networking · Concurrency
→ 24 Jun 2019 · 7 min read
How I represented vehicle states, transition rules and role permissions in a small concurrency-safe Go package.
Go · State machines · Concurrency · Authorization
→ 19 Jan 2019 · 2 min read
The difference between when types are checked and how source code is translated for execution.
Programming languages · Type systems · Compilers
→ 15 Nov 2018 · 6 min read
My notes on Cassandra's partitioning, replication, tunable consistency, gossip membership and LSM-style storage engine.
Distributed systems · Cassandra · Databases · Replication
→ 27 Aug 2018 · 5 min read
How znodes, sessions, watches and ordered updates provide a small foundation for leader election, membership and configuration.
Distributed systems · ZooKeeper · Coordination · Consensus
→ 12 Jun 2018 · 5 min read
My notes on Chubby cells, Paxos replication, sessions, leases, advisory locks, sequencers, caching and coarse-grained coordination.
Distributed systems · Chubby · Coordination · Consensus
→ 18 Mar 2018 · 5 min read
How SWIM separates probing from dissemination, uses indirect checks and suspicion, and scales membership traffic with cluster size.
Distributed systems · Gossip · SWIM · Failure detection
→ 14 Mar 2018 · 3 min read
How a signed JSON Web Token is structured, created and verified without confusing integrity with encryption.
Security · Authentication · Authorization · Web
→ 25 Jan 2018 · 5 min read
My notes on the original Kafka paper: partitioned logs, consumer-owned offsets, batching, sequential I/O and the boundary with modern Kafka.
Distributed systems · Kafka · Messaging · Storage
→ 06 Nov 2017 · 5 min read
My notes on HDFS block storage, the NameNode, DataNode pipelines, replication, recovery and the trade-offs behind high-throughput access.
Distributed systems · HDFS · Storage · Hadoop
→ 07 Sept 2017 · 6 min read
How map, shuffle and reduce turn large batch jobs into schedulable, repeatable tasks with locality and failure recovery.
Distributed systems · MapReduce · Data processing · Fault tolerance
→ 23 Jun 2017 · 6 min read
My notes on Bigtable's data model, tablets, Chubby coordination, commit logs, memtables, SSTables and compaction.
Distributed systems · Bigtable · Storage engines · Databases
→ 14 Mar 2017 · 5 min read
Why ordinary modulo hashing breaks during scaling, how the hash ring limits movement and where virtual nodes and replicas fit.
Distributed systems · Consistent hashing · Partitioning · Caching
→ 19 Jan 2017 · 6 min read
My notes on Amazon Dynamo: consistent hashing, replication, vector clocks, sloppy quorums, hinted handoff and anti-entropy repair.
Distributed systems · Dynamo · Databases · Availability · Replication
→