Reading Paths
Series
Curated routes through posts that belong together. Start with a series when you want context instead of a reverse chronological archive.
Backend Systems and Architecture
Queues, caching, locks, APIs, and the tradeoffs that show up when systems carry real traffic.
Choosing the Right Queue System
A practical guide for choosing between BullMQ, PgBoss, RabbitMQ, Kafka, SQS, SNS, and other queue systems.
Understanding Caching Strategies: From Cache-Aside to Write-Behind
I've been digging into caching strategies lately, specifically how different patterns handle reads and writes. Here's what I learned and when to use each one.
PostgreSQL Advisory Locks: What They Are and When You Actually Need Them
I've been studying PostgreSQL locking beyond the basics. Advisory locks are one of those things you don't know you need until you're debugging a race condition at 2 AM.
PgBoss vs BullMQ: How Two Job Queue Architectures Work Under the Hood
I've been working with PgBoss at Xendit and got curious about how it compares to BullMQ. Turns out they solve the same problem with completely different architectures.
API Design: Design-First vs Code-First
Dalam pengembangan perangkat lunak kontemporer, desain API memainkan peran kritis dalam kesuksesan sebuah proyek
Welcome to My New Blog: Migrating from WordPress to Next.js
Hello, world. 🎉 Welcome to my shiny new blog, now powered by the magic of Next
Leetcode - Logger Rate Limiter Solution
Building a logger rate limiter is a common system design challenge
SOLID: Good OOP Principles
SOLID principles kept coming up in interview prep and code reviews
Algorithm Patterns
Problem solving patterns from LeetCode, grouped around arrays, linked lists, heaps, stacks, and pointers.
Leetcode - Merge k Sorted Lists Solution
Efficiently merging k sorted linked lists into one sorted list
Leetcode - N-Queens II Solution
Counting the distinct ways to place n queens on a chessboard without any conflicts
Leetcode - Valid Number Solution
Determining if a string represents a valid number sounds straightforward, but the edge cases make this problem deceptively tricky
Leetcode - Rotate Array Solution
Rotating an array sounds simple enough. Take [1,2,3,4,5,6,7] and rotate it right by 3 positions to get [5,6,7,1,2,3,4]
Leetcode - N-Queens Solution
Finding all distinct board configurations for placing n queens without conflicts
Understanding Priority Queue (Min-Heap)
Priority queues are usually implemented using heaps, but I wanted to understand how heaps actually work under the hood
Leetcode - Candy Solution
Distributing candy to children based on their ratings sounds simple at first - just give more candy to kids with higher ratings
Leetcode - Best Time to Buy and Sell Stock II Solution
After solving the single transaction stock problem, I was curious about what would happen if I could make multiple transactions
Leetcode - Best Time to Buy and Sell Stock Solution
Finding the best time to buy and sell stock sounds like a finance problem, but it's actually a great algorithm challenge
Leetcode - Reverse Linked List Solution
Reversing a linked list is a fundamental skill that comes up in many coding interviews
Introduction to In-Place Manipulation of a Linked List
Reversing a linked list seems like it would require creating a new list
Introduction to Priority Queue
Sometimes you need to process items by priority, not just in the order they arrived
Leetcode - Container With Most Water Solution
Finding the container that holds the most water looked like it would need nested loops at first
Leetcode - Trapping Rain Water Solution
Calculating how much rainwater can be trapped between bars looks like a complex geometry problem at first
Leetcode - Palindrome Permutation Solution
Checking if a string can be rearranged into a palindrome seems like it would require generating all permutations, which would be O(n
Introduction to Knowing What to Track
Many algorithm problems boil down to one question: what should I track
Leetcode - Logger Rate Limiter Solution
Building a logger rate limiter is a common system design challenge
Leetcode - Design HashMap Solution
Designing my own HashMap from scratch sounded intimidating at first
Introduction to Hash Map
Hash maps show up everywhere in algorithm problems
Leetcode - Implement Queue Using Stacks Solution
Implementing a queue using only two stacks sounds impossible at first
Leetcode - Remove All Adjacent Duplicates In String Solution
Removing adjacent duplicates from a string sounds simple at first, but it gets tricky when removals create new adjacent pairs
Introduction to Stacks
Stacks are everywhere in programming: function calls, undo/redo, expression evaluation
Leetcode - Linked List Cycle Solution
Detecting cycles in linked lists is a classic interview problem
Leetcode - Happy Number Solution
Happy Number sounds like a fun math puzzle, but it's actually a clever way to practice cycle detection algorithms
Fast and Slow Pointers
Detecting cycles in a linked list seems like it would require storing all visited nodes
Leetcode - Sum of Three Values Solution
Finding three numbers that sum to a target value sounds like it needs three nested loops
Leetcode - Valid Palindrome Solution
Checking if a string reads the same forward and backward seems like a simple problem
Introduction to Two Pointers
Nested loops were my go-to solution for array problems until I discovered the two pointers technique
Career, Resilience, and Work
Personal posts about hard seasons, growth, team fit, leadership, and rebuilding after setbacks.
With Hardship Comes Ease
A quieter reflection on Quran 94:5, a heavy week, and trying to trust that hardship will not last forever.
Code, Diapers, and Deadlines
Becoming a father while carrying a difficult software project taught me how fragile focus can be, and how much support matters.
Life, Love, and Music
Older personal writing about music, relationships, family, and the emotions that shaped the person behind the work.
With Hardship Comes Ease
A quieter reflection on Quran 94:5, a heavy week, and trying to trust that hardship will not last forever.
Code, Diapers, and Deadlines
Becoming a father while carrying a difficult software project taught me how fragile focus can be, and how much support matters.
Love is Dead
A poetic reflection on the painful reality of loving someone who can never love you back
You Will Never Know How Much You Mean To Me
If I could tell you how much you mean to me in words, I would say I love you
Fake Happy, eh?
Reflecting on Paramore's song Fake Happy and the universal struggle of wearing emotional masks in daily life