Blog

Posts, notes, and articles.

Debug posts count: 181
  1. 0 - /blog/software-defined-networking-openflows-match-action-tables-the-p4-language-and-the-programmable-data-plane-vision/ (section=blog)
  2. 1 - /blog/bgp-and-internet-routing-the-path-vector-protocol-as-level-topology-convergence-and-the-prefix-hijacking-problem/ (section=blog)
  3. 2 - /blog/quic-and-http/3-the-udp-based-transport-revolution-0-rtt-connection-migration-and-stream-multiplexing-without-head-of-line-blocking/ (section=blog)
  4. 3 - /blog/content-delivery-networks-dns-based-routing-anycast-edge-caching-and-the-economics-of-cdn-peering/ (section=blog)
  5. 4 - /blog/edge-computing-the-fog/mist/cloud-continuum-k3s-and-the-computation-offloading-decision/ (section=blog)
  6. 5 - /blog/geo-distributed-systems-wan-latency-multi-leader-replication-and-the-speed-of-light-constraint/ (section=blog)
  7. 6 - /blog/p2p-networks-bittorrents-incentives-ipfss-merkle-dags-and-the-decentralized-web-vision/ (section=blog)
  8. 7 - /blog/database-internals-storage-engines-transactions-and-recovery/ (section=blog)
  9. 8 - /blog/distributed-hash-tables-chord-pastry-kademlia-and-the-structured-overlay-revolution/ (section=blog)
  10. 9 - /blog/epidemic-protocols-gossip-hyparview-plumtree-and-the-mathematics-of-infection-style-dissemination/ (section=blog)
  11. 10 - /blog/cpu-microarchitecture-pipelines-out-of-order-execution-and-modern-performance/ (section=blog)
  12. 11 - /blog/tls-pki-and-secure-protocols-how-encrypted-web-traffic-works/ (section=blog)
  13. 12 - /blog/distributed-snapshots-the-chandy-lamport-algorithm-lai-yang-and-the-foundations-of-consistent-global-state/ (section=blog)
  14. 13 - /blog/inside-vector-databases-building-retrieval-augmented-systems-that-scale/ (section=blog)
  15. 14 - /blog/distributed-systems-consensus-consistency-and-fault-tolerance/ (section=blog)
  16. 15 - /blog/clock-synchronization-lamport-clocks-vector-clocks-hybrid-logical-clocks-and-the-crdt-connection/ (section=blog)
  17. 16 - /blog/learned-indexes-when-models-replace-btrees/ (section=blog)
  18. 17 - /blog/the-100microsecond-rule-why-tail-latency-eats-your-throughput-and-how-to-fight-back/ (section=blog)
  19. 18 - /blog/time-in-distributed-systems-ntp-ptp-truetime-and-the-impossibility-of-perfect-synchronization/ (section=blog)
  20. 19 - /blog/the-quiet-calculus-of-probabilistic-commutativity/ (section=blog)
  21. 20 - /blog/the-hidden-backbone-of-parallelism-how-prefix-sums-power-distributed-computation/ (section=blog)
  22. 21 - /blog/gpudirect-storage-in-2025-optimizing-the-end-to-end-data-path/ (section=blog)
  23. 22 - /blog/the-johnson-lindenstrauss-lemma-and-the-geometry-of-high-dimensional-data/ (section=blog)
  24. 23 - /blog/lattice-based-cryptography-learning-with-errors-and-the-road-to-fully-homomorphic-encryption/ (section=blog)
  25. 24 - /blog/storage-class-memory-intel-optane-3d-xpoint-and-the-lessons-of-a-bold-failure/ (section=blog)
  26. 25 - /blog/differential-privacy-formal-guarantees-composition-theorems-and-the-engineering-of-private-systems/ (section=blog)
  27. 26 - /blog/memory-technologies-dram-hbm-gddr-and-the-scaling-wall/ (section=blog)
  28. 27 - /blog/kolmogorov-complexity-and-algorithmic-information-theory-the-deepest-measure-of-information/ (section=blog)
  29. 28 - /blog/queueing-theory-for-systems-engineers-from-m/m/1-to-heavy-tail-distributions-and-tail-at-scale/ (section=blog)
  30. 29 - /blog/algebraic-topology-in-distributed-computing-wait-free-solvability-and-simplicial-complexes/ (section=blog)
  31. 30 - /blog/mpi-vs.-openmp-in-2025-where-each-wins/ (section=blog)
  32. 31 - /blog/memory-consistency-models-from-sequential-consistency-to-the-c-11-memory-model/ (section=blog)
  33. 32 - /blog/asic-design-flow-from-rtl-to-gdsii-synthesis-sta-and-the-tapeout-checklist/ (section=blog)
  34. 33 - /blog/spectral-graph-theory-how-eigenvalues-reveal-the-hidden-structure-of-graphs/ (section=blog)
  35. 34 - /blog/the-probabilistic-method-and-randomized-algorithms-from-tail-bounds-to-derandomization/ (section=blog)
  36. 35 - /blog/from-mapreduce-to-spark-the-arc-of-data-parallel-systems/ (section=blog)
  37. 36 - /blog/error-correcting-codes-reed-solomon-ldpc-and-how-distributed-storage-survives-failure/ (section=blog)
  38. 37 - /blog/fpga-programming-hls-verilog-and-the-spatial-computing-paradigm/ (section=blog)
  39. 38 - /blog/the-lambda-calculus-and-combinatory-logic-the-minimalist-foundations-of-all-computation/ (section=blog)
  40. 39 - /blog/zero-knowledge-proofs-from-interactive-protocols-to-zk-snarks-and-practical-verifiable-computation/ (section=blog)
  41. 40 - /blog/quantum-computing-architectures-superconducting-qubits-trapped-ions-and-the-nisq-era/ (section=blog)
  42. 41 - /blog/the-fast-fourier-transform-from-cooley-tukey-to-modern-signal-processing-and-fast-multiplication/ (section=blog)
  43. 42 - /blog/auditing-the-algorithm-building-a-responsible-ai-pipeline-that-scales/ (section=blog)
  44. 43 - /blog/the-pcp-theorem-why-some-problems-are-hard-even-to-approximate/ (section=blog)
  45. 44 - /blog/the-curry-howard-correspondence-how-type-theory-bridges-proof-and-computation/ (section=blog)
  46. 45 - /blog/cheri-and-capability-hardware-memory-safety-at-the-gate-level/ (section=blog)
  47. 46 - /blog/shannons-information-theory-from-first-principles-entropy-channel-capacity-and-the-fundamental-limits-of-communication/ (section=blog)
  48. 47 - /blog/landauers-principle-and-the-thermodynamics-of-computation-why-bits-have-an-energy-floor/ (section=blog)
  49. 48 - /blog/memory-allocation-and-garbage-collection-how-programs-manage-memory/ (section=blog)
  50. 49 - /blog/scheduling-trading-latency-for-throughput-and-back-again/ (section=blog)
  51. 50 - /blog/risc-v-the-open-isa-revolution-and-the-cambrian-explosion-of-processor-design/ (section=blog)
  52. 51 - /blog/kernel-bypass-networking-dpdk-io_uring-and-the-rdma-revolution/ (section=blog)
  53. 52 - /blog/processing-in-memory-upmem-samsung-hbm-pim-and-the-near-data-computing-paradigm/ (section=blog)
  54. 53 - /blog/linearizability-and-serializability-a-formal-hierarchy-of-consistency-models/ (section=blog)
  55. 54 - /blog/exactly-once-in-streaming-what-it-means-and-how-systems-achieve-it/ (section=blog)
  56. 55 - /blog/the-flp-impossibility-result-why-distributed-consensus-is-fundamentally-hard/ (section=blog)
  57. 56 - /blog/neuromorphic-computing-loihi-2-truenorth-spiking-networks-and-where-neuromorphic-wins/ (section=blog)
  58. 57 - /blog/optical-computing-silicon-photonics-optical-matrix-multiplication-and-the-integration-challenges/ (section=blog)
  59. 58 - /blog/tuning-cuda-with-the-gpu-memory-hierarchy/ (section=blog)
  60. 59 - /blog/write-ahead-logging-the-unsung-hero-of-database-durability/ (section=blog)
  61. 60 - /blog/network-topologies-for-hpc-fat-trees-dragonfly-torus-and-the-cost-diameter-bandwidth-optimization/ (section=blog)
  62. 61 - /blog/bloom-filters-and-probabilistic-data-structures-trading-certainty-for-speed/ (section=blog)
  63. 62 - /blog/seeing-in-the-dark-observability-for-edge-ai-fleets/ (section=blog)
  64. 63 - /blog/adaptive-feature-flag-frameworks-for-hyper-growth-saas/ (section=blog)
  65. 64 - /blog/lock-free-data-structures-concurrency-without-the-wait/ (section=blog)
  66. 65 - /blog/amdahls-law-vs.-gustafsons-law-what-they-really-predict/ (section=blog)
  67. 66 - /blog/concurrency-primitives-and-synchronization-from-spinlocks-to-lock-free-data-structures/ (section=blog)
  68. 67 - /blog/unicode-and-character-encoding-from-ascii-to-utf-8-and-beyond/ (section=blog)
  69. 68 - /blog/interconnects-pcie-cxl-nvlink-and-the-emerging-composable-disaggregated-architecture/ (section=blog)
  70. 69 - /blog/transactional-memory-htm-stm-and-why-intel-tsx-kept-getting-disabled/ (section=blog)
  71. 70 - /blog/simultaneous-multithreading-resource-sharing-security-implications-and-the-smt-performance-security-tradeoff/ (section=blog)
  72. 71 - /blog/countdown-to-quantum-migrating-an-enterprise-to-post-quantum-cryptography/ (section=blog)
  73. 72 - /blog/vliw-and-epic-the-multiflow-trace-itanium-and-why-static-scheduling-lost-to-out-of-order/ (section=blog)
  74. 73 - /blog/sealing-the-supply-chain-zero-trust-build-pipelines-that-scale/ (section=blog)
  75. 74 - /blog/superscalar-processors-register-renaming-reorder-buffers-and-how-modern-cores-extract-ilp/ (section=blog)
  76. 75 - /blog/anonymous-communication-onion-routing-mix-networks-dc-nets-and-the-anonymity-trilemma/ (section=blog)
  77. 76 - /blog/file-systems-and-storage-internals-how-data-persists-on-disk/ (section=blog)
  78. 77 - /blog/smart-contract-security-reentrancy-front-running-and-verification-with-certora-and-foundry/ (section=blog)
  79. 78 - /blog/memory-allocators-from-malloc-to-modern-arena-allocators/ (section=blog)
  80. 79 - /blog/reverse-indexing-and-inverted-files-how-search-engines-fly/ (section=blog)
  81. 80 - /blog/blockchain-consensus-nakamoto-consensus-casper-ffg-tendermint-bft-and-the-safety-liveness-tradeoff/ (section=blog)
  82. 81 - /blog/formal-verification-of-cryptographic-protocols-proverif-tamarin-and-the-tls-1.3-verification-story/ (section=blog)
  83. 82 - /blog/microarchitectural-attacks-spectre-meltdown-and-the-transient-execution-apocalypse/ (section=blog)
  84. 83 - /blog/side-channel-attacks-timing-power-analysis-cache-timing-and-the-constant-time-discipline/ (section=blog)
  85. 84 - /blog/searchable-encryption-querying-encrypted-databases-forward-privacy-and-the-leakage-abuse-frontier/ (section=blog)
  86. 85 - /blog/latency-aware-edge-inference-platforms-engineering-consistent-ai-experiences/ (section=blog)
  87. 86 - /blog/format-preserving-encryption-the-ffx-mode-rank-encipher-unrank-and-legacy-database-protection/ (section=blog)
  88. 87 - /blog/keeping-the-model-awake-building-a-self-healing-ml-inference-platform/ (section=blog)
  89. 88 - /blog/tcp-congestion-control-from-slow-start-to-bbr/ (section=blog)
  90. 89 - /blog/floating-point-how-computers-represent-real-numbers/ (section=blog)
  91. 90 - /blog/threshold-cryptography-distributed-key-generation-threshold-ecdsa-and-the-validator-use-case/ (section=blog)
  92. 91 - /blog/verifiable-delay-functions-wesolowski-pietrzak-and-the-sequentiality-assumption/ (section=blog)
  93. 92 - /blog/oblivious-ram-and-private-information-retrieval-hiding-access-patterns-from-the-storage-server/ (section=blog)
  94. 93 - /blog/multi-party-computation-from-yaos-garbled-circuits-to-the-spdz-line/ (section=blog)
  95. 94 - /blog/garbage-collection-algorithms-from-mark-and-sweep-to-zgc/ (section=blog)
  96. 95 - /blog/analytic-combinatorics-the-symbolic-method-generating-functions-and-average-case-algorithm-analysis/ (section=blog)
  97. 96 - /blog/additive-combinatorics-szemer%C3%A9dis-theorem-sumset-inequalities-and-applications-in-property-testing/ (section=blog)
  98. 97 - /blog/combinatorial-designs-and-coding-theory-block-designs-steiner-systems-and-finite-geometry/ (section=blog)
  99. 98 - /blog/tropical-geometry-algorithmic-applications-in-optimization-phylogenetics-and-deep-learning/ (section=blog)
  100. 99 - /blog/timeouts-retries-and-idempotency-keys-a-practical-guide/ (section=blog)
  101. 100 - /blog/teaching-graphql-to-cache-at-the-edge/ (section=blog)
  102. 101 - /blog/algebraic-geometry-in-computer-science-gr%C3%B6bner-bases-the-nullstellensatz-and-applications-in-cryptography-and-coding-theory/ (section=blog)
  103. 102 - /blog/designing-crdt-powered-collaboration-platforms-that-stay-consistent/ (section=blog)
  104. 103 - /blog/cpu-caches-and-cache-coherence-the-memory-hierarchy-that-makes-modern-computing-fast/ (section=blog)
  105. 104 - /blog/information-geometry-statistical-manifolds-the-fisher-information-metric-and-natural-gradient-descent/ (section=blog)
  106. 105 - /blog/virtual-memory-and-page-tables-how-modern-systems-manage-memory/ (section=blog)
  107. 106 - /blog/process-scheduling-and-context-switching-how-operating-systems-share-the-cpu/ (section=blog)
  108. 107 - /blog/software-supply-chain-security-sboms-sigstore-reproducible-builds-and-attestation/ (section=blog)
  109. 108 - /blog/online-learning-regret-minimization-the-multiplicative-weights-algorithm-and-adversarial-bandits/ (section=blog)
  110. 109 - /blog/statistical-learning-theory-pac-learning-vc-dimension-and-the-bias-complexity-tradeoff/ (section=blog)
  111. 110 - /blog/large-deviations-theory-cram%C3%A9rs-theorem-importance-sampling-and-rare-event-simulation/ (section=blog)
  112. 111 - /blog/renewal-theory-for-computer-science-the-renewal-equation-key-renewal-theorem-and-applications-in-cache-analysis-and-failure-recovery/ (section=blog)
  113. 112 - /blog/stochastic-processes-for-computer-science-poisson-brownian-motion-queueing-and-reliability/ (section=blog)
  114. 113 - /blog/markov-chains-for-computer-science-mcmc-mixing-times-and-randomized-algorithms/ (section=blog)
  115. 114 - /blog/abstract-interpretation-the-cousot-framework-galois-connections-and-sound-static-analysis-by-construction/ (section=blog)
  116. 115 - /blog/domain-theory-scotts-d-construction-denotational-semantics-and-the-mathematics-of-recursive-types/ (section=blog)
  117. 116 - /blog/process-calculi-milners-ccs-the-%CF%80-calculus-bisimulation-and-session-types-for-protocol-correctness/ (section=blog)
  118. 117 - /blog/separation-logic-the-frame-rule-separating-conjunction-and-concurrent-verification/ (section=blog)
  119. 118 - /blog/abstract-interpretation-cousots-galois-connection-framework-widening/narrowing-and-sound-static-analysis-by-construction/ (section=blog)
  120. 119 - /blog/domain-theory-scotts-d-construction-solving-recursive-domain-equations-and-the-foundations-of-denotational-semantics/ (section=blog)
  121. 120 - /blog/game-semantics-fully-abstract-models-of-pcf-ajm-games-and-strategies-as-sheaves/ (section=blog)
  122. 121 - /blog/linear-logic-girards-resource-sensitive-logic-exponential-modalities-and-linear-types-in-rust/ (section=blog)
  123. 122 - /blog/branch-prediction-and-speculative-execution-how-modern-cpus-gamble-on-the-future/ (section=blog)
  124. 123 - /blog/virtual-memory-and-page-tables-how-operating-systems-manage-memory/ (section=blog)
  125. 124 - /blog/homotopy-type-theory-the-univalence-axiom-higher-inductive-types-and-groupoids/ (section=blog)
  126. 125 - /blog/category-theory-for-programmers-functors-monads-and-natural-transformations/ (section=blog)
  127. 126 - /blog/state-machine-replication-viewstamped-replication-protocol-zab-zookeeper-atomic-broadcast-and-the-consensus-scalability-continuum/ (section=blog)
  128. 127 - /blog/streaming-systems-apache-flink-checkpointing-kafka-log-compaction-watermarks-and-event-time-processing-and-exactly-once-semantics/ (section=blog)
  129. 128 - /blog/b-trees-and-lsm-trees-the-foundations-of-modern-storage-engines/ (section=blog)
  130. 129 - /blog/columnar-storage-parquet-encoding-orc-stripe-format-apache-arrow-in-memory-columnar-format-predicate-pushdown-and-simd-scans/ (section=blog)
  131. 130 - /blog/cpu-caches-and-memory-hierarchy-the-hidden-architecture-behind-performance/ (section=blog)
  132. 131 - /blog/object-storage-rados/ceph-architecture-the-crush-placement-algorithm-s3-api-semantics-and-erasure-coding-at-scale/ (section=blog)
  133. 132 - /blog/distributed-file-systems-gfs-design-hdfs-architecture-the-colossus-evolution-and-single-master-metadata-bottlenecks/ (section=blog)
  134. 133 - /blog/persistent-memory-programming-dax-mappings-pmdk-libraries-crash-consistency-without-write-ahead-logging-and-the-optane-legacy/ (section=blog)
  135. 134 - /blog/nvme-and-the-storage-stack-the-nvme-command-set-submission/completion-queues-spdk-and-the-death-of-the-scsi/sata-bottleneck/ (section=blog)
  136. 135 - /blog/instrumenting-without-spying-privacy-preserving-telemetry-at-scale/ (section=blog)
  137. 136 - /blog/user-space-networking-snabb-switch-fd.io-vpp-vector-packet-processing-af_xdp-and-the-philosophy-of-kernel-bypass/ (section=blog)
  138. 137 - /blog/ebpf-internals-the-in-kernel-verifier-safety-proofs-jit-compilation-to-native-code-map-types-and-xdp/tc-hooks/ (section=blog)
  139. 138 - /blog/deterministic-monorepo-ci-platforms-engineering-consistency-at-scale/ (section=blog)
  140. 139 - /blog/system-calls-the-gateway-between-user-space-and-kernel/ (section=blog)
  141. 140 - /blog/trusted-execution-intel-sgx-enclaves-amd-sev-snp-attestation-protocols-and-the-confidential-computing-promise/ (section=blog)
  142. 141 - /blog/cachefriendly-data-layouts-aos-vs.-soa-and-the-hybrid-inbetween/ (section=blog)
  143. 142 - /blog/capability-based-security-cheri-architecture-hardware-capabilities-spatial-and-referential-safety-and-compartmentalization/ (section=blog)
  144. 143 - /blog/region-based-memory-management-tofte-talpins-region-inference-the-ml-kit-safety-proofs-and-the-relationship-to-rusts-lifetimes/ (section=blog)
  145. 144 - /blog/raft-fastcommit-and-prevote-in-practice/ (section=blog)
  146. 145 - /blog/network-sockets-and-the-tcp/ip-stack-how-data-travels-across-networks/ (section=blog)
  147. 146 - /blog/safe-rollback-strategies-for-distributed-databases/ (section=blog)
  148. 147 - /blog/garbage-collection-advanced-incremental-concurrent-snapshot-at-the-beginning-and-pauseless-collectors-from-azul-c4-to-zgc-colored-pointers/ (section=blog)
  149. 148 - /blog/jit-compilation-tracing-vs-method-jits-v8s-ignition-turbofan-pipeline-hotspots-c1/c2-tiered-compilation-and-deoptimization/ (section=blog)
  150. 149 - /blog/wasm-runtime-internals-v8s-liftoff-and-turbofan-wasmtimes-cranelift-linear-memory-sandboxing-and-the-stack-machine-model/ (section=blog)
  151. 150 - /blog/container-internals-linux-namespaces-cgroups-v2-overlayfs-and-the-oci-runtime-spec-under-the-hood/ (section=blog)
  152. 151 - /blog/compiler-optimizations-from-source-code-to-fast-machine-code/ (section=blog)
  153. 152 - /blog/merkle-trees-and-contentaddressable-storage/ (section=blog)
  154. 153 - /blog/hypervisor-internals-vt-x-amd-v/svm-nested-paging-and-the-mechanics-of-trap-and-emulate/ (section=blog)
  155. 154 - /blog/unikernels-specializing-the-os-for-a-single-application-from-mirageos-to-includeos-and-the-performance-security-trade-offs/ (section=blog)
  156. 155 - /blog/exokernels-library-os-mits-radical-vision-secure-multiplexing-and-the-unikernel-lineage/ (section=blog)
  157. 156 - /blog/consistent-hashing-distributing-data-across-dynamic-clusters/ (section=blog)
  158. 157 - /blog/tuning-the-dial-adaptive-consistency-at-planet-scale/ (section=blog)
  159. 158 - /blog/microkernel-vs-monolithic-the-l4-experience-ipc-optimization-sel4-verification-and-zircons-ascent/ (section=blog)
  160. 159 - /blog/integer-programming-branch-and-bound-gomory-cuts-lift-and-project-and-solver-internals/ (section=blog)
  161. 160 - /blog/convex-optimization-gradient-descent-nesterov-acceleration-kkt-conditions-and-the-ml-stack/ (section=blog)
  162. 161 - /blog/submodular-optimization-diminishing-returns-the-1-1/e-greedy-guarantee-and-machine-learning-applications/ (section=blog)
  163. 162 - /blog/matroid-theory-the-greedy-exchange-property-matroid-intersection-and-applications-in-spanning-trees-and-matching/ (section=blog)
  164. 163 - /blog/fair-division-cut-and-choose-selfridge-conway-brams-taylor-and-the-mathematics-of-envy-freeness/ (section=blog)
  165. 164 - /blog/mechanism-design-vcg-auctions-the-revelation-principle-and-the-architecture-of-truthfulness/ (section=blog)
  166. 165 - /blog/algorithmic-game-theory-nash-equilibrium-computation-ppad-completeness-and-the-computational-lens-on-strategy/ (section=blog)
  167. 166 - /blog/smoothed-analysis-why-simplex-works-in-practice-and-the-spielman-teng-framework/ (section=blog)
  168. 167 - /blog/average-case-complexity-levins-distributional-problems-avgp-and-cryptographic-implications/ (section=blog)
  169. 168 - /blog/descriptive-complexity-fagins-theorem-logic-and-an-alternative-to-turing-machines/ (section=blog)
  170. 169 - /blog/circuit-complexity-ac0-nc-p/poly-and-the-parity-ac0-proof/ (section=blog)
  171. 170 - /blog/communication-complexity-yaos-two-party-model-the-rectangle-method-and-lower-bounds-galore/ (section=blog)
  172. 171 - /blog/when-data-centers-learned-to-sleep-energy-aware-scheduling-in-practice/ (section=blog)
  173. 172 - /blog/sublinear-algorithms-property-testing-query-complexity-and-the-power-of-random-sampling/ (section=blog)
  174. 173 - /blog/streaming-algorithms-misra-gries-count-min-sketch-ams-and-the-power-of-small-space/ (section=blog)
  175. 174 - /blog/online-algorithms-competitive-analysis-ski-rental-paging-and-the-primal-dual-method/ (section=blog)
  176. 175 - /blog/parameterized-complexity-fpt-the-w-hierarchy-kernelization-and-bounded-search-trees/ (section=blog)
  177. 176 - /blog/np-completeness-the-cook-levin-theorem-polynomial-reductions-and-the-hardest-problems-in-np/ (section=blog)
  178. 177 - /blog/linear-programming-simplex-geometry-duality-and-the-interior-point-revolution/ (section=blog)
  179. 178 - /blog/network-flow-from-ford-fulkerson-to-push-relabel-and-the-max-flow-min-cut-theorem/ (section=blog)
  180. 179 - /blog/speculative-prefetchers-designing-memory-systems-that-read-the-future/ (section=blog)
  181. 180 - /blog/dynamic-programming-bellmans-principle-of-optimality-and-the-art-of-reusing-computation/ (section=blog)