A Million Patterns Versus One Codebase
Why software architecture keeps failing, and how a few ideas from empirical philosophy offer a way to ground it in what users see.
Articles on web development, machine learning and how I work.
My book in progress: what software really is, and why that matters in practice. In English.

Why software architecture keeps failing, and how a few ideas from empirical philosophy offer a way to ground it in what users see.

Why common software metrics are opinions, and why the user's screen is a firmer ground for judging code.

Why "it works, it's in production" is a weak defense of tangled code, and what taking pride in design looks like.

How to replace taste-based code debates with a clear vocabulary, and how to organize a codebase around what users perceive.

Why large codebases get hard to change, and how fast feedback and a UI-first design address it, with the claims that could prove me wrong.

A speech about how complexity gets used as status in software teams, and why the user's screen is a clearer ground for judging tools.

A way to share state in React with RxJS subjects and a small custom hook, without Redux or MobX.

How to build a React app test-first by moving state and event handling out of React and into one pure reduce function.

Why I think plain JSON and TypeScript could replace GraphQL's query syntax for querying databases.

Why the WebRTC API is harder than it looks, and how splitting my client into three modules made connection setup clear.

A walk through SVM, kernel functions and the kernel trick, and why their names confused me more than the math.

What I took from my Knowledge Representation and Reasoning course, from Answer Set Programming to the Cyc knowledge base.