Two Game Changers for Better Software Development: API to Code Generation and Automated TestingRecently I tried to upgrade SQLAlchemy from 1.4 to 2.0 and sqlacodegen from v1 to v2, and I was forced to change my code to resolve some…Apr 20Apr 20
API Spec to Code or Code to API Spec?Few software engineers don’t like writing documentation. Some never did. Many tools have been created to create documentation from code…Jan 11Jan 11
Setting up Applications on GKEIngress, service mesh, workload identity, Cloud SQL Auth proxy and more.Jan 15, 2023Jan 15, 2023
This Is a Sign That You Should Start Documenting Your SystemThis post is probably a better fit for a tweet, but I don’t play twitter that much :)Feb 28, 2021Feb 28, 2021
How Does Golang’s Garbage Collection Affect Latency? An Informal AnalysisIn this post, I will share an informal analysis on how the Golang’s garbage collection (GC) affects the latency. The analysis is informal…Jun 21, 20201Jun 21, 20201
Some Thoughts on Aligning Event Handlers with Domain Boundary in EDA DesignRecently while refactoring the order system (of a B2B e-commerce platform) to an event-driven architecture (EDA), I ran into a situation…Jun 7, 2020Jun 7, 2020
Idempotency: A Three-Step ApproachIdempotency is a much desired property when designing applications, especially distributed applications because they are more prone to…May 28, 20201May 28, 20201
Optimistic Locking != IdempotencyThe purpose of this essay is to highlight that optimistic locking and idempotency are two distinct concepts. I know this is not new, but…Jan 15, 20202Jan 15, 20202
Eventual Consistency in Cache Update with Read/Write SplitWe all know that cache update/invalidation is hard to do correctly. Things can become particularly interesting when you split the…Nov 13, 20191Nov 13, 20191
Task Queue and Worker Pool: How to Configure Them?This essay discusses some practical tips for configuring the task queue and worker pool.Oct 2, 2019Oct 2, 2019