Blog

Articles, guides, and notes on software engineering.

Sharding vs Partitioning: Key Differences and When to Use Each
Database 2023-06-03

Sharding vs Partitioning: Key Differences and When to Use Each

Understand the difference between database sharding and partitioning. Learn horizontal and vertical strategies, sharding trade-offs, and when each approach makes sense.

#Partitioning#Sharding

Recent Posts

Notes on GCP
Infrastructure 2023-05-22

Notes on GCP

Miscellaneous notes taken while studying for the Google Cloud Certified Associate Cloud Engineer exam.

#Google Cloud Platform
Is the Light On? The Human Science of Problem Discovery
Business 2023-05-19

Is the Light On? The Human Science of Problem Discovery

A review of Are Your Lights On? A classic that, through memorable anecdotes, argues the core idea that problems are harder to find than to solve. It reminds you of something obvious yet easily forgotten: the importance of identifying the right problem.

#Logical Thinking#Book Review
The Secrets of Unicorn Companies: Software Development and Work Culture Learned from Spotify
Management 2023-05-19

The Secrets of Unicorn Companies: Software Development and Work Culture Learned from Spotify

A review of The Secrets of Unicorn Companies. A book for learning the organizational theory and culture of unicorn companies, based on experience at Spotify. Its real theme is the culture and qualities that sustain growth regardless of methodology, prompting thought about what lies beyond Scrum.

#Book Review#Unicorn#Scrum
Continuous Profiling with Pyroscope
Application 2023-05-07

Continuous Profiling with Pyroscope

Explore continuous profiling with Pyroscope. Learn server setup, pull-based profiling, retention configuration, and Grafana integration methods.

#Profiling
Service Downtime Due to File System Capacity Shortage
Incident Report 2023-05-07

Service Downtime Due to File System Capacity Shortage

Investigate and resolve service outages caused by filesystem capacity exhaustion, Docker log accumulation, and disk space management.

#Postmortem
Full-Text Search with MySQL
Database 2023-04-30

Full-Text Search with MySQL

Implement MySQL full-text search with FULLTEXT INDEX, ngram parsing, and MATCH...AGAINST query patterns.

#MySQL
How to Use pprof Without DefaultServeMux
Application 2023-04-30

How to Use pprof Without DefaultServeMux

A note on how to use Go's net/http/pprof with a custom router instead of the DefaultServeMux. It covers the common pitfall that a blank import alone won't work, and shows how to register handlers such as pprof.Index on your own router so you can still profile performance.

#Golang#Tips
Prevent URL Encoding in Go's html/template
Application 2023-04-23

Prevent URL Encoding in Go's html/template

Learn why Go html/template auto-encodes URLs and how to use template.URL to pass raw URLs in templates without triggering automatic HTML encoding. Includes a minimal working example.

#Golang#Tips
Cross-Compiling Go Application Images with buildx
Application 2023-04-20

Cross-Compiling Go Application Images with buildx

Learn Docker buildx multi-architecture compilation for Go apps. Build cross-platform images for Linux AMD64 and ARM64 targets.

#Golang#Docker
Exploring NewSQL Resources
Database 2023-03-29

Exploring NewSQL Resources

A roundup of the various resources I read while researching NewSQL. I originally set out to compare several NewSQL databases, but since I needed to understand the technologies used under the hood, the collection also includes many articles on the related underlying technologies.

#NewSQL#Link Collection
Encountering 'the input device is not a TTY' When Running Docker Command with Cron
Infrastructure 2023-03-17

Encountering 'the input device is not a TTY' When Running Docker Command with Cron

Fix the input device is not a TTY error when running docker exec via cron. The cause is the -it flags: cron has no TTY, so remove -t and -i and use plain docker exec.

#Docker
Current Status of FuelPHP as of March 2023
Application 2023-03-01

Current Status of FuelPHP as of March 2023

A rough summary of the current status of FuelPHP as of March 2023, based on my own research. It organizes development and release activity and community trends, as a note for those still using FuelPHP in an era dominated by Laravel.

#FuelPHP
Data-Oriented Application Design
Architecture 2023-02-27

Data-Oriented Application Design

A review of Data-Oriented Application Design. Known as a classic on distributed system design, it systematically covers the foundational technologies behind reliable, scalable applications, such as data storage and retrieval, distribution, and consistency. It is substantial and rewards repeated rereading.

#System Design#Book Review
Fundamentals of Software Architecture
Architecture 2023-02-27

Fundamentals of Software Architecture

A review of Fundamentals of Software Architecture. A book that explains how to evaluate software architecture and covers architecture patterns. Grasping the idea of architectural characteristics and the representative patterns, it helps you build a foundation for design decisions.

#System Design#Book Review
Software Architecture Hardparts
Architecture 2023-02-27

Software Architecture Hardparts

A review of Software Architecture: The Hard Parts. Centered on the hard decisions in distributed systems, it organizes ways of thinking and approaches for restructuring architecture. Reading Fundamentals of Software Architecture and Building Evolutionary Architectures first makes it easier going.

#System Design#Book Review
System Design Interview
Architecture 2023-02-27

System Design Interview

A review of System Design Interview. The Japanese translation of the popular System Design Interview. Through interview scenarios, it concretely teaches how to design scalable systems. Books of this kind in Japanese are rare, making it one worth keeping on hand.

#System Design#Book Review
Devoured System Design Resources
Architecture 2023-02-27

Devoured System Design Resources

A link-collection-style roundup of the various resources I read while studying system design. Along with the motivation behind why I dug into the topic, it organizes articles, books, and other resources I found helpful for learning system design.

#System Design#Link Collection
Stress-Free Mastery
Healthcare 2023-02-06

Stress-Free Mastery

A review of Stress-Free Mastery. A book that teaches how to cope with stress. You can learn good mindsets, ways of thinking, and concrete actions. Since building a healthy relationship with stress raises the quality of your time, it is worth recommending to anyone living in a stressful society.

#Health#Book Review
Notes on Datadog Continuous Testing
Tools 2023-01-31

Notes on Datadog Continuous Testing

Configure Datadog continuous testing with no-code E2E browser tests. Master test recorder, assertions, and self-healing capabilities.

#Datadog