Choose 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 readblog.yasaichi.com
When 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 readblog.yasaichi.com
Presentation (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 readblog.yasaichi.com
Handling 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 readblog.yasaichi.com
Improving 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 readblog.yasaichi.com