Blog
Articles, guides, and notes on software engineering.
Git Commit Split: Shell Command Quick Reference
Quick reference shell commands for splitting a Git commit using interactive rebase, reset, and staged re-commits for granular commit history.
Recent Posts
A Book to Understand the Differences Between OAuth, OAuth Authentication, and OpenID Connect
A book to understand the differences between OAuth, OAuth Authentication, and OpenID Connect
Encountered 'Permission denied' Error When Starting MySQL Container on Ubuntu 20.04.2 LTS
Fix MySQL container permission denied errors on Ubuntu 20.04 by properly configuring docker-compose user UID/GID mappings.
Cannot Start MySQL 8.0.17 Container on M1 Mac
Fix the MySQL container startup failure on Apple M1 Mac (failed to create new OS thread errno=22). Use MySQL 8.0.26+ with --platform=linux/amd64 in the Dockerfile for ARM architecture support.
Distributed System Design Patterns
Distributed System Design Patterns
Comparison of New Relic and Datadog APM
A comparison of features when considering switching from New Relic to Datadog APM.
GCP Textbook II: Container Development Edition - Detailed Explanation of Kubernetes, GKE, Cloud Run, and Service Mesh
GCP Textbook II: Container Development Edition - Detailed Explanation of Kubernetes, GKE, Cloud Run, and Service Mesh
GCP Textbook
GCP Textbook
Took the AWS Certified Solutions Architect Associate Exam
Documenting my efforts and experiences after passing the AWS Certified Solutions Architect Associate exam.
Reading Code of Golang HTTP Server
Master Go HTTP server internals: request routing, HandlerFunc casting, multiplexer design, and server configuration patterns.
Remembering AWS ARNs
Understand AWS ARN format structure with partition, service, region, account-id, and resource-id components for resource naming.
Types of AWS Services - AZ, Region, Global
Classify AWS services by deployment scope—Availability Zones, Regions, and Global services—with practical infrastructure examples.
Updated My Custom Router
Discover middleware support and optimizations in the goblin Go HTTP router with performance benchmarks and HTTP routing features.
System Failure Terms Starting with 'F'
Understand fail-safe, failover, fault-tolerance, and failback mechanisms for designing robust and reliable infrastructure.
How to Split a Commit in Git
Learn how to split Git commits using interactive rebase to create granular, organized commit history for cleaner code reviews.
Algorithm Encyclopedia Revised Edition: 33 Algorithms Illustrated
Algorithm Encyclopedia Revised Edition: 33 Algorithms Illustrated
Docker CLI Now Supports Docker Compose
Docker CLI gained native Compose support as a tech preview, rewritten in Go vs. the original Python docker-compose. Covers compatibility notes and the difference between docker compose and docker-compose.
Building a Kubernetes Environment with Terraform and Ansible
A journey of setting up a Kubernetes environment using Terraform and Ansible.
Database Migration for Spanner Using golang-migrate
Migrate databases using golang-migrate with Google Spanner. Execute SQL migrations in Docker with GCP authentication management.
Trying Managed Kubernetes on DigitalOcean
Exploring the use of managed Kubernetes on DigitalOcean for personal development and learning.