Abstraction Is Hard: Why Wrong Abstractions Are Worse Than No Abstractions

Creating good abstractions is one of the hardest parts of software development. Here’s why getting them wrong is so expensive and how to think about them better.

September 28, 2023 · Tolic Kukul

Kokeshi vs Lego: Two Philosophies of Software Architecture

Software architectures fall into two categories: nested abstractions like Russian dolls, or composable pieces like Lego blocks. Understanding the difference changes how you build systems.

September 15, 2018 · Tolic Kukul

Why Every Developer Should Know About Double-Entry Bookkeeping: And It's Not About Accounting

Last week, I was debugging a payment issue in our fintech app when my colleague mentioned “double-entry ledgers.” I nodded along, pretending I knew what she meant, but honestly? I thought it was just boring accounting stuff. Turns out, I was completely wrong. Double-entry bookkeeping isn’t just an ancient accounting practice — it’s one of the most elegant software architecture patterns for handling money. And every developer building financial systems should understand it. ...

August 22, 2017 · Tolic Kukul