Blog
Articles, guides, and notes on software engineering.
Stuck with ReadOnlyTransaction in Go's Spanner Client
Fix session pool exhaustion caused by missing tx.Close() on Cloud Spanner ReadOnlyTransaction in Go. Learn proper transaction lifecycle management and issue detection with zagane.
Recent Posts
Reflection on 2020 and Resolutions for Next Year
Personal reflection on 2020: highlights and learnings from a year shaped by the pandemic, plus goals and resolutions for 2021.
Building a VPS with Terraform and Ansible
Implement VPS infrastructure with Terraform and Ansible on ConoHa, combining IaC resource management and server configuration automation.
Environment Variables Specified in docker-compose.yml Not Accessible During Container Build
Fix environment variables in docker-compose.yml being unavailable during Docker image build. Use ARG in Dockerfile and build.args in docker-compose.yml to pass values at build time.
Basics of Authentication and Authorization
Learn authentication and authorization fundamentals: identification, RBAC, ABAC, credential types, SSO, SAML 2.0, OAuth 2.0, and OpenID Connect with practical context.
Summary of Network Terms
A compilation of network-related terms with unclear knowledge.
Reading Kubernetes Documentation - Summary of Concepts
Learn Kubernetes core concepts including cluster architecture, container orchestration, service discovery, and load balancing essentials.
Implementing In-Memory Cache in Golang
Build a lightweight in-memory cache in Go with TTL expiration and thread-safe access using sync.Map. Covers design requirements, expiration logic, and trade-offs vs. library solutions.
Summary of Go CodeReviewComments
Improve Go code quality with essential code review guidelines: receivers, error handling, goroutines, and naming conventions.
The Agile Samurai
The Agile Samurai
What is JWT? JSON Web Tokens Explained for Secure API Authentication
Learn how JSON Web Tokens (JWT) work—header, payload, signature structure—how to use JWTs for stateless API authentication, and common security pitfalls to avoid.
What is gRPC? A Practical Introduction to gRPC with Go
Learn what gRPC is, how Protocol Buffers work, and how to build a gRPC server and client in Go. Includes comparison with REST and when to choose gRPC.
SCRUM BOOT CAMP THE BOOK: Revised Edition - Agile Development with Scrum Teams
SCRUM BOOT CAMP THE BOOK: Revised Edition - Agile Development with Scrum Teams
Differences Between Little Endian, Big Endian, Middle Endian, and Bi-endian
Understand byte ordering: Little Endian, Big Endian, Middle Endian, Bi-endian, and memory arrangement across systems.
Difference Between Orphan Processes and Zombie Processes
Understand orphan and zombie processes in UNIX, process lifecycle, and system resource management implications.
Creating a Slack Emoji Auto-Generation Bot with Golang, chromedp, and Slack
Build a Slack bot with Go and chromedp for automated emoji generation using canvas screenshots and Slack API integration.
Code Definition Jump Disabled After Enabling Go Language Server in VSCode
Fix VSCode Go language server issues with gopls by placing go.mod file correctly for code definition jumping.
Tools for Automatically Generating DB Documents (ER Diagrams, etc.) - schemaspy, tbls
Exploring and reviewing open-source tools for automatically generating DB documents.
Tool for Automatically Generating UML with PHP - phUML
Generate PHP class diagrams automatically using phUML to visualize design architecture and understand complex structures.
Introduction to Building Data Analysis Infrastructure
Introduction to Building Data Analysis Infrastructure