Posts

27 of 27 posts

Mastering ZSH: Part 4 - Completion System Demystified

Part 4: Learn how ZSH completions work under the hood. Build custom completions for your scripts, understand _arguments and completion contexts, and make tab completion actually useful.

Your README is a Landing Page, Not Your Documentation

More features always lead to more sprawl. The longer it goes on, the harder it is to bring back under control. Here’s how to treat your README like a landing page - with hooks, not walls of text.

The Complete Guide to Rust Testing: Unit, Integration, Property-Based, and Snapshot Testing

A complete overview of Rust testing strategies: unit tests, integration tests, property-based testing, snapshot testing, parameterized tests, and doctests. Learn which testing approach fits your needs.

Rust Error Handling: thiserror, anyhow, and error-envelope

Three Rust error handling crates that seem to overlap but fill distinct roles. Learn when to use thiserror for typed errors, anyhow for application code, and error-envelope for HTTP boundaries.

The ? Operator in Rust: Error Propagation Demystified

The ? operator looks like magic. One character that handles errors, converts types, and returns early. Understand how it actually works under the hood and when to use it.

You Don't Know JSON: Part 8 - Lessons from the JSON Revolution

JSON recreated XML’s entire ecosystem modularly. JSX brought back XML’s syntax. What does this teach us about technology evolution? Explore the architectural zeitgeist, pattern survival, and the modularity paradox: choice vs. discoverability.

You Don't Know JSON: Part 1 - Origins, Evolution, and the Cracks in the Foundation

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

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

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

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

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

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.

You Don't Know JSON: Part 7 - Security: Authentication, Signatures, and Attacks

JSON has no built-in security. The ecosystem response: JWT for authentication, JWS for signing, JWE for encryption. Learn how these work, common attacks (algorithm confusion, injection, timing), and how to secure JSON-based systems.

Building a GCP Secret Manager Emulator for Offline Integration Testing

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.

The Complete Guide to API Communication Patterns: REST, GraphQL, WebSocket, gRPC, and More

Master API communication patterns: REST, GraphQL, WebSocket, gRPC, webhooks, message queues, and more. Complete guide with diagrams, code examples, and decision frameworks for choosing the right pattern.

Mastering ZSH: Part 1 - Hooks and Automation

Complete guide to ZSH hooks: automate prompts, time commands, activate virtualenvs on cd, and filter secrets from history–without slowing down your terminal.

Mastering ZSH: Part 2 - Line Editor and Custom Widgets

ZLE lets you create custom keybindings that manipulate your command line. Learn the fundamentals, build practical widgets (insert git branch, fuzzy file search), and understand how fzf integrates with ZSH.

HTTP Error Handling in Go: Chi, Gin, and Echo

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.