Blog
Articles, guides, and notes on software engineering.
Algorithms and Data Structures - HashMap
Understand how HashMaps work: O(1) average access, open addressing vs. chaining for hash collision handling, and a basic Go HashMap implementation.
Recent Posts
Adjacency List and Adjacency Matrix
Compare adjacency lists (O(V+E) space, efficient for sparse graphs) and adjacency matrices (O(V²) space, O(1) edge lookup). Includes Go implementations for directed and undirected graphs.
Implementation of Stack and Queue
Implement stack and queue data structures in Go with linked lists and slices for O(1) operations and optimal performance.
Runner Technique for Linked Lists
A summary of the runner technique, useful for traversing linked lists. I first learned about this approach of advancing two pointers through the list at different speeds in the book Cracking the Coding Interview, and this article explains the idea and where it comes in handy.
Challenges with Recursion
Understand recursion challenges involving return statements and call stack evaluation with practice strategies.
Reviewing the Basics of Algorithms and Data Structures
A comprehensive review of algorithms and data structures basics: arrays, strings, hash tables, linked lists, trees, stacks, queues, sorting, and time complexity for coding problems.
Programmer Brain
A review of The Programmer's Brain. A book that uses a cognitive-science approach to study coding as a creative process. It reveals what happens in the mind of someone who reads and writes code quickly and accurately, offering hints from how memory and learning work for training the roots of programming ability.
Implementation of Counting Sort
Implement counting sort using prefix sums in Go. Discover non-comparison sorting with efficient O(n) time complexity execution.
A Book to Train Your Programming Mind
A review of A Book to Train Your Programming Mind. Using arithmetic as material, it trains the kind of thinking that leads into programming. Its content is gentle and suits those first encountering computational thinking; it may feel light for adults, but it lets you check the basics of thought.
Implementing Backtracking
Implement backtracking algorithm to explore constraint-satisfying combinations using recursive tree structures and subsequence generation.
Improving Code Performance with Go
Learn practical Go performance optimization: pprof profiling, benchmark tests, escape analysis, memory allocation reduction, and real examples from optimizing a custom HTTP router.
MySQL Transaction Isolation Levels: Preventing Dirty Reads, Phantom Reads, and More
Learn MySQL's four transaction isolation levels, the anomalies each prevents (dirty read, non-repeatable read, phantom read), and how to choose the right level.
Managing My Resume with GitHub
An account of why and how I switched from managing my resume on Google Drive to managing it on GitHub. Here, a resume means a text-based summary of my career, and this turned out to be a worthwhile approach worth sharing.
Took the Google Cloud Certified Associate Cloud Engineer Exam
After passing the Google Cloud Certified Associate Cloud Engineer exam, I looked back on how I studied for it, both for a possible retake and for future exams. Based on my background as a software engineer with some GCP experience, it summarizes the study methods I used and my impressions of the exam.
Road to ISUcon
An account of the preparations I made ahead of competing in ISUCON for the first time. Starting from setting a realistic goal of spending the entire qualifier session on tuning, it describes the preparation and mindset I built up for my first attempt at the competition.
Transaction Overview
Understand database transaction fundamentals including ACID properties, concurrency control, and isolation for data integrity.
Container Technology Explained: How Docker and OCI Containers Work
Learn how container technology works—namespaces, cgroups, OCI standards—and why containers have become essential for modern application deployment.
Cache Write Methods
Learn the three cache write methods: Write-Through (sync writes to cache and memory), Write-Back (write to cache first, flush later), and Write-Around (bypass cache, write direct to memory).
Deployment Strategies Explained: Blue-Green, Canary, Rolling, and More
Compare blue-green, canary, rolling, and recreate deployment strategies. Learn when to use each one and how they minimize downtime and reduce deployment risk.
Forward Proxy vs Reverse Proxy vs API Gateway: A Clear Comparison
Understand the differences between forward proxies, reverse proxies, and API gateways. Learn what each one does and which is right for your network architecture.