Blog

Articles, guides, and notes on software engineering.

Architecture Decision Records (ADR) Explained: How to Document Technical Decisions
Architecture 2022-10-10

Architecture Decision Records (ADR) Explained: How to Document Technical Decisions

Learn what Architecture Decision Records (ADRs) are, why documenting technical decisions matters, and how to write effective ADRs for your engineering team.

#Architecture Decision Record

Recent Posts

About Design Docs
Architecture 2022-10-07

About Design Docs

Write effective Design Docs for software architecture. Master documentation lifecycle, review process, and team collaboration strategies.

#Design Docs
Implementing Slack App Slash Command Using Cloud Functions
Application 2022-09-19

Implementing Slack App Slash Command Using Cloud Functions

Implement Slack app slash commands using Google Cloud Functions with Go, Slack API, and serverless architecture.

#Slack Bot#Slack#Golang#Google Cloud Platform#Cloud Functions
SLI, SLO, and SLA Explained: A Practical Guide for Engineers
Application 2022-09-10

SLI, SLO, and SLA Explained: A Practical Guide for Engineers

Learn the differences between SLIs, SLOs, and SLAs in site reliability engineering. Understand how to define service level objectives that balance reliability and velocity.

#SLI#SLA#SLO
Static Analysis of Clean Architecture Layers in Go
Application 2022-09-04

Static Analysis of Clean Architecture Layers in Go

Enforce clean architecture layer dependencies in Go using go-cleanarch for static analysis and architecture validation.

#Golang#Clean Architecture
Scrum Master vs Product Owner: Roles and Responsibilities Compared
Application 2022-09-04

Scrum Master vs Product Owner: Roles and Responsibilities Compared

Clarify the roles of Scrum Master and Product Owner in Scrum. Learn distinct responsibilities, how each role interacts with the development team, and common misconceptions.

#Scrum
Convert Markdown Files to PDF (Supports mermaid, emoji, toc)
Application 2022-09-01

Convert Markdown Files to PDF (Supports mermaid, emoji, toc)

A simple document management tool to convert Markdown files to PDF, supporting mermaid, emoji, and toc.

#markdown#marked#Emoji#mermaid#JavaScript
Technologies Supporting bmf-tech
Architecture 2022-08-08

Technologies Supporting bmf-tech

Explore Docker, Golang, Vue.js, Nginx, Prometheus, and Grafana powering modern blogging infrastructure and monitoring systems.

#Docker#Docker Compose#VPS#Golang#Vue.js#Prometheus#Promtail#Loki#Grafana#Nginx
Migrated the Blog System
Poetry 2022-06-14

Migrated the Blog System

Discover how bmf-tech evolved its blog platform across three major generations: WordPress, Laravel CMS, and Go CMS.

#CMS
Mastering Web Performance Tuning: Practical Speed Optimization Lessons from ISUCON
Performance 2022-06-09

Mastering Web Performance Tuning: Practical Speed Optimization Lessons from ISUCON

Mastering Web Performance Tuning: Practical Speed Optimization Lessons from ISUCON

#System Performance#ISUCON#Book Review
Understanding Finance Thinking from Scratch: Growth Strategies for Employees and Companies
Business 2022-04-27

Understanding Finance Thinking from Scratch: Growth Strategies for Employees and Companies

Understanding Finance Thinking from Scratch: Growth Strategies for Employees and Companies

#Accounting#Book Review
Catching Up on New Features from PHP 7.4 to PHP 8.1
Application 2022-03-21

Catching Up on New Features from PHP 7.4 to PHP 8.1

Learn new PHP 8.1 features including typed properties, arrow functions, union types, match expressions, and attributes.

#PHP
Obtaining SSL Certificates from Let's Encrypt Using DNS-01 with Lego
Infrastructure 2022-01-18

Obtaining SSL Certificates from Let's Encrypt Using DNS-01 with Lego

Obtain Let's Encrypt SSL certificates efficiently using DNS-01 challenge method with Lego client tool and Conoha API provider integration.

#Let's Encrypt#Tips
Implementing a Load Balancer in Golang
Application 2022-01-01

Implementing a Load Balancer in Golang

Implement a round-robin L4 load balancer in Go from scratch. Covers reverse proxy with httputil, round-robin scheduling, and active and passive health checks.

#Golang#Load Balancer#Round Robin
Reflection on 2021 and Goals for Next Year
Poetry 2021-12-30

Reflection on 2021 and Goals for Next Year

Personal year-end reflection on 2021: engineer growth, what worked and what did not, plus goals set for 2022.

#Reflection and Goals
Building a Monitoring Platform with Containers
Infrastructure 2021-12-18

Building a Monitoring Platform with Containers

Build a container-based monitoring platform using EFK stack and Prometheus for logs, metrics, visualization, and alerting.

#Docker#Docker Compose#Elasticsearch#Grafana#Kibana#Prometheus#cadvisor#efk#fluentd#node-exporter
How to Stream Keynote Presenter Display with StreamYard
Tools 2021-11-03

How to Stream Keynote Presenter Display with StreamYard

A guide on streaming Keynote presentations using StreamYard while displaying the presenter view.

#Keynote#StreamYard#Tips
Introduction to Building an HTTP Router with net/http
Application 2021-10-24

Introduction to Building an HTTP Router with net/http

This article explains how to create a custom HTTP router using Golang's standard package net/http.

#Golang#HTTP
Participated in ISUCON11
Poem 2021-10-21

Participated in ISUCON11

Explore ISUCON11 performance tuning strategies including pprof, alp logs, N+1 queries, and MySQL optimization techniques.

#ISUCON#ISUCON10
Implementing Datadog APM in ECS on Fargate Environment
Infrastructure 2021-10-19

Implementing Datadog APM in ECS on Fargate Environment

Implement Datadog APM on ECS Fargate for PHP applications with distributed tracing and performance monitoring configuration.

#Amazon Web Service#Datadog#ECS#Fargate