blog.yasaichi.comChoose Languages for Leverage, Not LoyaltyFor most of modern software history, choosing a programming language meant navigating limitations.Ecosystems, tooling quality, runtime guarantees, and team experience forced trade-offs. Language decisions were as much about constraints as they were a...Dec 1, 2025·4 min read
blog.yasaichi.comWhen You See Abstract Structures, Design Becomes EasierWhile developing an e-commerce system, I once designed a model called DeliveryDateConstraint to represent delivery restrictions decided by sellers. At first, it looked simple enough: each product had its own shipping rule.But later I realised that cu...Nov 8, 2025·3 min read
blog.yasaichi.comPresentation (JA): TSKaigi 2025Deck https://decks.yasaichi.com/20250524/pragmatic-functional-programming-in-typescript Abstract Functional programming concepts such as pure functions, immutability, and monads are increasingly familiar to TypeScript developers, yet many struggle ...May 25, 2025·1 min read
blog.yasaichi.comHandling Known and Unknown Unknowns with Testing and ObservabilityIn modern software development, we often face three types of risks: Known knowns: issues we are aware of and understand. Known unknowns: issues we know exist but lack full understanding. Unknown unknowns: issues we neither know exist nor understan...Apr 28, 2025·3 min read
blog.yasaichi.comImproving Primary Key Performance: Alternatives to UUID v4In many applications, a primary key must be unique and hard to guess. Developers often choose UUID v4 for these benefits. However, there are trade-offs in performance. Pros and Cons of Using UUID v4 as a Primary Key UUID v4 gives global uniqueness an...Mar 16, 2025·2 min read