Blog

Articles, guides, and notes on software engineering.

Building a VPS with Terraform and Ansible
Infrastructure 2020-12-20

Building a VPS with Terraform and Ansible

Implement VPS infrastructure with Terraform and Ansible on ConoHa, combining IaC resource management and server configuration automation.

#Ansible#VPS#OpenStack#Terraform

Recent Posts

Environment Variables Specified in docker-compose.yml Not Accessible During Container Build
Infrastructure 2020-11-14

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.

#Docker#Docker Compose#Tips
Basics of Authentication and Authorization
Application 2020-11-05

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.

#FIDO#IAM#LDAP#OAuth#OpenID Connect#SAML#SSO#Authorization#Authentication
Summary of Network Terms
Network 2020-11-02

Summary of Network Terms

A compilation of network-related terms I wanted to pin down. It covers the basics of IPv4/IPv6, NAT/NAPT, CIDR notation, subnet masks, load balancing, and routing, organized as a reference for terms that were previously fuzzy to me.

#IP#Load Balancer
Reading Kubernetes Documentation - Summary of Concepts
Infrastructure 2020-10-20

Reading Kubernetes Documentation - Summary of Concepts

Learn Kubernetes core concepts including cluster architecture, container orchestration, service discovery, and load balancing essentials.

#Docker#Container#Kubernetes
Implementing In-Memory Cache in Golang
Application 2020-09-29

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.

#Golang#Cache
Summary of Go CodeReviewComments
Application 2020-09-15

Summary of Go CodeReviewComments

Improve Go code quality with essential code review guidelines: receivers, error handling, goroutines, and naming conventions.

#Golang#Code Review
The Agile Samurai
Development Process 2020-09-12

The Agile Samurai

A review of The Agile Samurai. A good introductory book for building a foundation in the mindset and practice of agile development. Without cramming in jargon, it is an easy first read for teams and engineers about to adopt agile.

#Agile#Scrum#Book Review
What is JWT? JSON Web Tokens Explained for Secure API Authentication
Application 2020-09-11

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.

#JWT
What is gRPC? A Practical Introduction to gRPC with Go
Application 2020-09-08

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.

#Golang#gRPC#Microservices#HTTP/2#RPC
SCRUM BOOT CAMP THE BOOK: Revised Edition - Agile Development with Scrum Teams
Development Process 2020-09-07

SCRUM BOOT CAMP THE BOOK: Revised Edition - Agile Development with Scrum Teams

A review of SCRUM BOOT CAMP THE BOOK (Revised Edition). A book for learning the basics of Scrum through situations that commonly arise in real teams. An approachable first read when you are about to start Scrum development.

#Agile#Scrum#Book Review
Differences Between Little Endian, Big Endian, Middle Endian, and Bi-endian
Computer Architecture 2020-08-25

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.

#Memory
Difference Between Orphan Processes and Zombie Processes
Computer Architecture 2020-08-24

Difference Between Orphan Processes and Zombie Processes

Understand orphan and zombie processes in UNIX, process lifecycle, and system resource management implications.

#UNIX#Process
Creating a Slack Emoji Auto-Generation Bot with Golang, chromedp, and Slack
Application 2020-08-11

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.

#Golang#Slack#Chrome#chromedp#Emoji#Slack Bot
Code Definition Jump Disabled After Enabling Go Language Server in VSCode
Application 2020-07-19

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.

#Golang#gocode#gopls#Language Server#vscode#Tips
Tools for Automatically Generating DB Documents (ER Diagrams, etc.) - schemaspy, tbls
Database 2020-07-09

Tools for Automatically Generating DB Documents (ER Diagrams, etc.) - schemaspy, tbls

A hands-on look at open-source tools for automatically generating database documentation such as ER diagrams. It tries out SchemaSpy and tbls, comparing their setup, generated output, and usability to help you choose between them.

#Docker#ER
Tool for Automatically Generating UML with PHP - phUML
Application 2020-06-26

Tool for Automatically Generating UML with PHP - phUML

Generate PHP class diagrams automatically using phUML to visualize design architecture and understand complex structures.

#PHP
Introduction to Building Data Analysis Infrastructure
Architecture 2020-06-19

Introduction to Building Data Analysis Infrastructure

A review of an introduction to building data analysis infrastructure. It explains how to build a data platform that supports everything from collecting and storing logs to analyzing them, a practical primer to reference when actually building a log collection and analysis foundation.

#ETL#Book Review#Elasticsearch#Kibana#fluentd
Production Deployment with VPS, Docker Compose, Docker Machine, Golang, Nginx, and Let's Encrypt
Poem 2020-06-07

Production Deployment with VPS, Docker Compose, Docker Machine, Golang, Nginx, and Let's Encrypt

Deploy Golang applications with Docker Compose, Nginx reverse proxy, and Let's Encrypt SSL/TLS certificates on VPS.

#Docker#Docker Compose#Golang#Let's Encrypt#Nginx#Docker Machine#VPS
Participated in ISUCON10
Architecture 2020-05-21

Participated in ISUCON10

Learn performance optimization strategies for ISUCON competition including query tuning, MySQL upgrades, and database indexing techniques.

#ISUCON#ISUCON10