Programming

How Multicore CPUs Killed Object-Oriented Programming
reading time: 35 minutes
OOP’s reference semantics were manageable in single-threaded code. But when CPUs went multicore in 2005, hidden shared state went from ‘confusing’ to ‘catastrophic.’ This is why Go, Rust, and modern languages abandoned default references for value semantics.
Go's Value Philosophy: Part 3 - Zero Values: Go's Valid-by-Default Philosophy
reading time: 15 minutes
In Python, undeclared variables don’t exist. In Java, local variables can’t be used before assignment. In Go, declaration creates a valid value. There is no uninitialized state - every value works from the moment it’s declared.
Go Interfaces: The Type System Feature You Implement By Accident
reading time: 9 minutes
You write a struct with a Write method. Three months later, you discover it implements io.Writer. You never declared this. How did it happen? Exploring Go’s implicit interfaces and the power of accidental implementation.
Go's Value Philosophy: Part 1 - Why Everything Is a Value, Not an Object
reading time: 31 minutes
In Python, everything is an object. In Java, everything is a class. In Go, everything is a value. These are fundamental design philosophies that shape how you write concurrent code, manage memory, and reason about performance.
Go's Value Philosophy: Part 2 - Escape Analysis and Performance
reading time: 13 minutes
The Go compiler decides whether your values live on the stack or heap through escape analysis. Understanding this mechanism explains Go’s performance characteristics and helps you write faster code without sacrificing clarity.
The Python Paradox: How Python Dominates Big Data Despite the GIL
reading time: 13 minutes
Discover why Python dominates big data despite the GIL: Python coordinates, C/Rust/JVM executes. Learn how NumPy, pandas, Polars, and PySpark bypass the GIL for true parallelism.
You Don't Know JSON: Part 1 - Origins, Evolution, and the Cracks in the Foundation
reading time: 18 minutes
Everyone thinks they know JSON. But do you know why it was created, what problems it solved, and more importantly - what problems it created? Part 1 explores JSON’s origins, its triumph over XML, and the fundamental weaknesses that spawned an entire ecosystem of extensions.
You Don't Know JSON: Part 2 - JSON Schema and the Art of Validation
reading time: 21 minutes
JSON lacks types and validation - any structure parses successfully. JSON Schema solves this by adding a validation layer without changing JSON itself. Learn how to define schemas, validate at runtime, generate code, and build type-safe APIs.
You Don't Know JSON: Part 3 - Binary JSON in Databases
reading time: 15 minutes
Database-managed binary JSON formats solve storage and query performance problems. JSONB enables fast PostgreSQL queries with indexing, while BSON adds extended types for MongoDB. Learn when databases beat text JSON.
You Don't Know JSON: Part 4 - Binary JSON for APIs and Data Transfer
reading time: 23 minutes
Beyond database storage, binary JSON formats optimize API data transfer. MessagePack provides universal serialization with 30-40% size reduction. CBOR adds IETF standardization for IoT and security. Learn when binary beats JSON for network efficiency.
You Don't Know JSON: Part 5 - JSON-RPC: When REST Isn't Enough
reading time: 35 minutes
REST is great for resources, but what about actions? JSON-RPC provides a simple, transport-agnostic protocol for calling remote functions. Learn the spec, implementation patterns, and why major projects like Ethereum and VS Code chose JSON-RPC over REST.
You Don't Know JSON: Part 6 - JSON Lines: Processing Gigabytes Without Running Out of Memory
reading time: 30 minutes
Standard JSON can’t stream - you must parse the entire document. JSON Lines solves this with one JSON object per line, enabling streaming processing, log aggregation, Unix pipelines, and handling gigabyte-scale datasets with constant memory usage.