Archives
- 28 Aug Zero-Copy, DMA, and High-Performance Buffers
- 28 Aug Virtual Memory and Process Address Spaces
- 28 Aug The Page Cache and Durability
- 28 Aug Stack and Heap Layout
- 28 Aug Page Tables and Address Translation
- 28 Aug Page Faults, Swapping, and Working Sets
- 28 Aug mmap and File Mapping
- 28 Aug Memory Safety and Leaks
- 28 Aug Memory Allocators
- 28 Aug Filesystem Paths, Inodes, and the VFS
- 28 Aug Filesystem Locks and Crash Consistency
- 28 Aug File Permissions, ACLs, and Capabilities
- 28 Aug File Descriptors and Open File Objects
- 28 Aug Disks, SSDs, NVMe, and RAID
- 28 Aug Buffered, Direct, Blocking, and Non-Blocking File I/O
- 26 Aug Threads, Processes, Async I/O, and Event Loops
- 26 Aug Threads and Shared Execution State
- 26 Aug The Compilation Pipeline
- 26 Aug Systems Engineering — From Hardware to Production
- 26 Aug Scheduling, Affinity, and NUMA Effects
- 26 Aug Queues, Pipelines, Backpressure, and Cancellation
- 26 Aug Process Isolation and Lifecycle
- 26 Aug Object Files, Sections, and Symbols
- 26 Aug Memory Ordering and Atomic Hardware
- 26 Aug Linking: Static Libraries and Shared Libraries
- 26 Aug Executable Formats and Program Startup
- 26 Aug Assembly, Calling Conventions, and Stack Frames
- 25 Aug Interrupts, Traps, Exceptions, and Device I/O
- 25 Aug CPU Privilege Levels and Protection
- 24 Aug Linux Resource Limits and the OOM Killer
- 24 Aug How a CPU Executes Instructions
- 24 Aug CPU Performance and Hardware Counters
- 24 Aug CPU Caches and Memory Locality
- 23 Aug Linux Signals and Service Supervision
- 23 Aug Linux Processes and Lifecycle
- 23 Aug Linux Filesystem and System Interfaces
- 23 Aug Linux Clocks, Hostnames, and Environment
- 23 Aug CPU Scheduling and Context Switching
- 22 Aug What the Operating System Provides
- 22 Aug System Calls: How Programs Request Kernel Services
- 21 Aug Rust, Zig, Go, and C Tradeoffs
- 21 Aug Portability, Compatibility, and Abstraction Leaks
- 21 Aug Performance Constraints in Systems
- 21 Aug Failure, Determinism, and Control
- 21 Aug C as a Systems Programming Language
- 13 Aug Resource Ownership and Limits
- 12 Aug CPU, Memory, Storage, and Network Resources
- 11 Aug What Systems Programming Means
- 03 Aug How to Model Software Systems: From Vague Ideas to Working Programs
- 21 Jul TCP for Backend Engineers: From Zero to Practical Mastery
- 05 Jul Database Migrations at Scale: Zero-Downtime Schema Changes and What Companies Actually Do
- 04 Jul Caching in Production: Strategies, Pitfalls, and What Companies Actually Do
- 06 May Building an LSM-Tree Storage Engine in Go, Part 3: The SSTable
- 06 May Building an LSM-Tree Storage Engine in Go, Part 2: The Memtable
- 04 May Implementing a Write-Ahead Log in Go
- 02 May Building a Production Job Queue in Go: Concurrency, Tradeoffs, and Getting It Right
- 25 Mar Write-Ahead Logging: How PostgreSQL Survives Crashes, Powers Replication, and Never Loses Your Data
- 14 Mar Concurrency Control in Databases: How to Handle Many Things Happening at Once
- 12 Mar Data Partitioning in Distributed Databases: How to Split Your Data Without Breaking Everything
- 10 Mar Implementing a B+ Tree in Go: What Databases Actually Use
- 28 Nov Distributed Transactions: The Hard Truth About Keeping Multiple Systems in Sync
- 26 Nov Replication Strategies in Distributed Databases: What Actually Happens When You Copy Your Data
- 20 Oct How Databases Actually Store Data: Pages, Tuples, and the Architecture That Matters
- 17 Oct Consistency and Data Models in Real Life: The Art of Building Systems That Never Lie to You
- 16 Oct Idempotency in Production: Making Your System Safe to Retry
- 16 Oct ACID Properties and Isolation Levels: Deep Dive into Production Database Behavior
- 14 Oct Database Indexing Strategies for High-Performance Systems