kan01234 - Software Engineer Notes
A backend engineer's journey of learning and growth.
View the Project on GitHub
kan01234/post
Recent Posts
Ensuring No Event Loss in Message Queues
2025-09-27
Why Elasticsearch Is Fast and How It Stores Data
2025-08-31
Solving High CPU Usage in Java Applications
2025-08-29
Migrating from IaaS to CaaS: A Practical Guide
2025-08-24
How MySQL (InnoDB) Fetches Records Using Indexes
2025-08-23
Personal Journey
Does Specific Programming Language Experience Really Matter for Senior Software Engineers?
Navigating Large Numbers in Online Assessments: A Deep Dive
Behind the Code: A New Adventure
Monitoring & Observability
Enhancing Monitoring with Datadog: Logs, APM, and Metrics
Monitoring Fundamentals: Building a Strong Foundation
From Self-Managed ELK to Datadog: Our Migration Journey
Web & Network Protocols
HTTPS: A Journey Back to the Basics
Datastore
Ensuring No Event Loss in Message Queues
Why Elasticsearch Is Fast and How It Stores Data
How MySQL (InnoDB) Fetches Records Using Indexes
How Redis Achieves O(1) Operations — And When It Doesn't
InnoDB vs MyISAM: Choosing the Right MySQL Storage Engine
Debunking the Myth: Yes, MySQL Can Handle 20 Million+ Records in a Single Table
Bitmap Indexing: A Deep Dive for Data
System Design
System Design: Building a Fair and Scalable Gacha System for Mobile Games
System Design: How to Build a URL Shortening Service at Scale
System Design: Scale the QR Code Payment System using the Saga Pattern
System Design: QR Code Payment System (Synchronous Version)
Clarifying Upstream and Downstream in Software Development
Understanding Consistent Hashing: From Basics to Real-World Use Cases
Remote Log Retrieval for Linux-Based Edge Devices: A System Design Approach
MQTT: The Lightweight Backbone of the Internet of Things
Infrastructure & Platform Engineering
Migrating from IaaS to CaaS: A Practical Guide
Comparing CaaS Platforms: AWS Fargate, Azure AKS, Google GKE, and Private Cloud Kubernetes
Java
Solving High CPU Usage in Java Applications
Inside the JVM: How Java Garbage Collectors Track, Mark, and Sweep Objects
How We Solved a High Memory Usage Issue in Our Apache Camel Batch Pipeline