Archive 2023
75 articles
What is BFF (Backend For Frontend)? Benefits and Implementation Guide
A summary of what I researched about BFF (Backends For Frontends). It covers what a BFF is and why it is needed, and how placing a BFF layer between the frontend and backend can simplify the API contract for each client.
Notes on Building a Notification Platform
Understand notification platform design for multi-channel delivery including email, push, SMS integration.
100 Tips for Go: How to Address Common Developer Mistakes
A review of 100 Go Mistakes and How to Avoid Them. A book that comprehensively covers common Go pitfalls as 100 tips. A handy reference for those already comfortable writing Go who want to raise their code quality another notch.
About Go's http.RoundTripper
Learn what Go http.RoundTripper interface is and how to use it as HTTP client middleware. Includes a custom RoundTripper for request logging and response latency measurement.
Implementing Fan-In and Fan-Out in Go
Implement fan-in and fan-out concurrent patterns in Go using channels and goroutines. Fan-in aggregates multiple producer outputs; fan-out distributes one input across multiple workers.
About Template Method and Strategy Patterns
Master Template Method and Strategy patterns—two behavioral design patterns for controlling process flow and runtime method selection.
Distributed Services with Go
A review of Distributed Services with Go. A hands-on book for building distributed services in Go. It deepens practical understanding of modern techniques in a microservices context, the reasoning behind architectures, and how to implement them.
Running k3s with multipass
A note on using multipass, a lightweight VM manager, while attempting to migrate a personal docker-compose application to Kubernetes (k3s). Although I ultimately didn't complete the migration, it covers how to run k3s on multipass and use it for personal development.
Implementing Sliding Window
Implement sliding window algorithms for efficient subarray searching with optimized time complexity and rate limiter applications.
Monorepos Explained: Benefits, Drawbacks, and When to Use Them
Understand what monorepos are, the tooling involved (Nx, Turborepo, Bazel), and the practical trade-offs between monorepos and polyrepos for growing engineering teams.
Practical Go Language
A review of Practical Go Language. Even for those who have written Go for a while, a book that surfaces practical knowledge you did not know or had forgotten. From fine conventions like naming error types to the standard practices worth knowing when writing Go professionally, it covers a broad range.
Search Patterns in Binary Search Trees
Learn DFS and BFS search patterns for binary search trees, including preorder, inorder, and postorder traversal methods.
Became a Registered Scrum Master (LSM)
Reflections and notes on becoming a Registered Scrum Master after attending the training and exam by scruminc.japan.
About the Two Pointer Technique
Master two-pointer technique for efficient array pair searching with O(N log N) complexity using sorting and index manipulation.
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.
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.