Go

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: 32 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 Price of Everything Being an Object in Python
reading time: 14 minutes
All Python developers know that everything in Python is an object. But at what cost? A deep dive into Python’s heap-only memory model and the 28-byte overhead of storing a simple integer.
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.
Building a GCP Secret Manager Emulator for Offline Integration Testing
reading time: 6 minutes
Needed offline GCP Secret Manager testing for CI/CD pipelines. Existing solutions were either too heavy or incomplete. Built a standalone gRPC emulator that works with the official Go SDK–zero credentials, zero network calls, 100% local.
Understanding Protocol Buffers: Part 1 - Introduction and Core Concepts
reading time: 12 minutes
Protocol Buffers (protobuf) is Google’s binary serialization format - smaller, faster, and type-safe compared to JSON. Learn what protobuf is, how it works, and when to use it for APIs and microservices.
From Shell Scripts to Go: Building a Multi-Vault Secret Management Library
reading time: 8 minutes
Started with Bitwarden-only shell scripts. Needed to support 1Password and pass without breaking anything. Built a shell abstraction layer, then ported it to Go. Same interface, three backends, zero breaking changes.
Blackdot: A Development Framework Built for Claude Code and Modern Development
reading time: 9 minutes
Start on Mac, continue on Linux–same Claude conversation. Plus integrated AWS/Rust/Go/Python tools, extensible hooks, multi-vault secrets, and modular architecture. A framework, not just dotfiles.
HTTP Error Handling in Go: Chi, Gin, and Echo
reading time: 5 minutes
Stop returning errors as plain text. Learn how to implement consistent, structured HTTP error responses in Go with support for Chi router, Gin framework, and Echo framework. Includes field-level validation and trace IDs.