Blog
Articles, guides, and notes on software engineering.
Deployment Strategies Explained: Blue-Green, Canary, Rolling, and More
Compare blue-green, canary, rolling, and recreate deployment strategies. Learn when to use each one and how they minimize downtime and reduce deployment risk.
Recent Posts
Forward Proxy vs Reverse Proxy vs API Gateway: A Clear Comparison
Understand the differences between forward proxies, reverse proxies, and API gateways. Learn what each one does and which is right for your network architecture.
Sharding vs Partitioning: Key Differences and When to Use Each
Understand the difference between database sharding and partitioning. Learn horizontal and vertical strategies, sharding trade-offs, and when each approach makes sense.
Notes on GCP
Miscellaneous notes taken while studying for the Google Cloud Certified Associate Cloud Engineer exam.
Is the Light On? The Human Science of Problem Discovery
Is the Light On? The Human Science of Problem Discovery
The Secrets of Unicorn Companies: Software Development and Work Culture Learned from Spotify
The Secrets of Unicorn Companies: Software Development and Work Culture Learned from Spotify
Continuous Profiling with Pyroscope
Explore continuous profiling with Pyroscope. Learn server setup, pull-based profiling, retention configuration, and Grafana integration methods.
Service Downtime Due to File System Capacity Shortage
Investigate and resolve service outages caused by filesystem capacity exhaustion, Docker log accumulation, and disk space management.
Full-Text Search with MySQL
Implement MySQL full-text search with FULLTEXT INDEX, ngram parsing, and MATCH...AGAINST query patterns.
How to Use pprof Without DefaultServeMux
A note on using net/http/pprof with routers other than Go's default router.
Prevent URL Encoding in Go's html/template
Learn why Go html/template auto-encodes URLs and how to use template.URL to pass raw URLs in templates without triggering automatic HTML encoding. Includes a minimal working example.
Cross-Compiling Go Application Images with buildx
Learn Docker buildx multi-architecture compilation for Go apps. Build cross-platform images for Linux AMD64 and ARM64 targets.
Exploring NewSQL Resources
A summary of various resources related to NewSQL.
Encountering 'the input device is not a TTY' When Running Docker Command with Cron
Fix the input device is not a TTY error when running docker exec via cron. The cause is the -it flags: cron has no TTY, so remove -t and -i and use plain docker exec.
Current Status of FuelPHP as of March 2023
A summary of the current status of FuelPHP as of March 2023.
Data-Oriented Application Design
Data-Oriented Application Design
Fundamentals of Software Architecture
Fundamentals of Software Architecture
Software Architecture Hardparts
Software Architecture Hardparts
System Design Interview
System Design Interview
Devoured System Design Resources
A compilation of resources related to system design.