Blog
Articles, guides, and notes on software engineering.
About Go's rune Type
Learn what Go rune type is and how it represents Unicode code points (int32 alias). Covers string vs. rune differences, range loop behavior, and multi-byte character handling.
Recent Posts
One-Liner for Self-Signed Certificates in Go
Generate a self-signed TLS certificate in Go with one command using the built-in generate_cert.go tool. Produces cert.pem and key.pem for local HTTPS without openssl or mkcert.
Implementing Exponential Backoff and Jitter in Go
Implement exponential backoff with jitter in Go for robust retry logic. Covers multiplying retry delays, adding randomness to prevent thundering herd, retry limits, and timeouts.
Introduction to Thinking and Writing Techniques: Practical Logical Thinking Methods for Japanese
Introduction to Thinking and Writing Techniques: Practical Logical Thinking Methods for Japanese
FuelPHP and PHP Update Project Report
Learn how to update FuelPHP applications from PHP 7.3 to 8.1 with monolithic architecture strategies and compatibility tools.
Changes to ServeMux Specification in Go 1.22rc
Explore Go 1.22 enhanced ServeMux routing: HTTP method patterns (GET /items), wildcard path params (/items/{id}), the /{$} exact-match wildcard, and Request.PathValue.
A Collection of Links for Reviewing gRPC and Protocol Buffers
Review essential gRPC and Protocol Buffers resources covering load balancing, Kubernetes deployment, and best practices.
About Mob Programming
Recently, I experienced mob programming for the first time in my life, so I'm jotting down notes to remember the benefits of the experience.
Using Workspace Mode with Go's Multi-Module Structure
Learn how Go Workspace mode (Go 1.18+) simplifies multi-module development. Covers go work init, go.work file structure, and referencing local modules without editing go.mod.
Schema-Driven Development with OpenAPI
Learn OpenAPI schema-driven development, REST API specification, code generation, and mock server benefits.
The Thinking Methods of World-Class Engineers
The Thinking Methods of World-Class Engineers
Reflection on 2023 and Goals for Next Year
Personal year-end reflection on 2023: career highlights, side projects, books read, and goals set for 2024.
Exploring Articles on Development Productivity
Explore development productivity using DORA four keys and SPACE framework. Measure deployment frequency, lead time, and metrics.
Exploring Articles on Architecture Design and Organizational Design
Explore relationships between software architecture and organizational design through curated articles and resources on Conway's Law impacts.
Exploring Aurora Serverless
Explore Aurora Serverless v2 capabilities including multi-AZ support, auto-scaling, cost optimization, and deployment considerations for databases.
Provisioning Contact Points and Policies in Grafana
Provision Grafana contact points and alerting policies via YAML configuration files for automated Slack notifications.
How to Deal with Uncertainty in Software Development Projects
Address software project uncertainty through agile planning. Distinguish known unknowns from unknown unknowns to minimize risks.
Differences Between Pull and Push Approaches in Monitoring Systems
An overview of the differences between pull and push approaches in monitoring systems.