Blog

API Design Is UX

API Design Is UX

The endpoints you expose are a product. The developer calling them is your user. Bad DX compounds in ways that bad UI never does.

24 March 2026engineeringarchitecturebackendapi
Working Without a Designer

Working Without a Designer

Most solo developers try to design everything themselves. The better move is to make as few design decisions as possible — and let a system make the rest.

23 March 2026engineeringindie devuifrontend
Naming Things for AI

Naming Things for AI

Good names have always mattered. With AI coding tools, they matter more. An LLM reads your code the way a new engineer would — inferring intent from names, not from runtime behavior.

22 March 2026engineeringaitoolingprocess
The Interface Is the Contract

The Interface Is the Contract

Implementations are cheap to change. Interfaces are not. The most expensive line of code you'll write isn't in the logic — it's in the type signature.

21 March 2026engineeringarchitecturetypescriptbackend
Errors Are Data

Errors Are Data

The instinct when something goes wrong is to catch it and move on. That instinct is wrong. Errors are information about what your system is actually doing — and ignoring them is how silent failures happen.

20 March 2026engineeringbackendarchitectureindie dev
Testing Is a Design Problem

Testing Is a Design Problem

Most developers think they have a testing problem. They have a design problem. Untestable code is a symptom — and the fix is rarely about the tests.

19 March 2026engineeringarchitecturetestingindie dev
The Async Mindset

The Async Mindset

Most performance problems aren't about making things faster — they're about doing work at the wrong time. The synchronous default is a cognitive trap, and escaping it is mostly a shift in how you think.

18 March 2026engineeringarchitecturebackendperformance
Scope Is the Real Product

Scope Is the Real Product

The feature backlog is a graveyard of good ideas that would have killed the product. The hardest skill in indie dev isn't building — it's deciding what not to build.

17 March 2026indie devproductengineeringprocess
Version Your Decisions

Version Your Decisions

Git tells you what changed. It doesn't tell you why you made the call. That missing context is what turns a reasonable decision into a mystery six months later.

16 March 2026engineeringarchitectureprocessindie dev
Prompting Is Programming

Prompting Is Programming

Most people treat prompting as guessing. It's actually an engineering discipline — with the same feedback loops, debugging techniques, and abstraction principles as any other code.

15 March 2026aiengineeringproductivitytooling
The Cost of Dependencies

The Cost of Dependencies

Every package you add is a bet that someone else will maintain it longer than you need it. That bet is worth thinking about before you run npm install.

14 March 2026engineeringarchitectureindie devjavascript
Real-Time Is Harder Than It Looks

Real-Time Is Harder Than It Looks

WebSockets look simple until production. WebRTC looks simple until you need it to work everywhere. Here's what building Clover and Argan actually taught me.

13 March 2026engineeringreal-timewebrtcwebsocketsarchitecture
How I Think About Database Design

How I Think About Database Design

Schema design is the hardest part of building software to change later. The way to get it right is to start with your queries, not your entities.

12 March 2026engineeringdatabasesmongodbarchitecture
When to Rewrite, When to Refactor

When to Rewrite, When to Refactor

The rewrite conversation is one of the most emotionally loaded in engineering. Here's how to tell which one you actually need.

11 March 2026engineeringarchitectureindie dev
The Second Version

The Second Version

The first version gets you in the room. The second version is where the real work starts.

10 March 2026engineeringindie devproductivitypersonal
Shipping Is a Skill

Shipping Is a Skill

The difference between engineers who finish things and those who don't isn't talent or motivation. It's a set of habits you can actually learn.

9 March 2026engineeringproductivityindie devpersonal
Claude Code: What It's Actually Like to Use It

Claude Code: What It's Actually Like to Use It

I was skeptical about AI coding tools. After months of regular use, I have a more honest take than the hype suggests.

8 March 2026aitoolingproductivityengineering
Most Developer Portfolios Are Broken

Most Developer Portfolios Are Broken

What hiring managers actually look for, and why most portfolios miss it completely.

7 March 2026careerengineeringhiring
IoT Meets Web: What I Learned Moving Between Hardware and Frontend

IoT Meets Web: What I Learned Moving Between Hardware and Frontend

Working across IoT and web development teaches you things neither world tells you on its own.

6 March 2026iotwebengineeringarchitecture
MongoDB Without Mongoose

MongoDB Without Mongoose

Mongoose is the default choice for MongoDB in Node.js. I stopped using it — here's why the native driver is often the better option.

5 March 2026mongodbnode.jstypescriptengineering
Building in the Margins

Building in the Margins

A full-time job, a master's degree, client projects, and two products in production. Here's how that actually works.

4 March 2026indie devproductivitypersonalhoneyside
Building with InvoiceTronic: Italian E-Invoicing Without the Pain

Building with InvoiceTronic: Italian E-Invoicing Without the Pain

I built a full accounting system for my sole proprietorship. The hardest part wasn't the accounting logic — it was the SDI. Here's how InvoiceTronic made it manageable.

3 March 2026invoicetronicfattura elettronicaapiengineering
Why Expo Changed the Way I Build Mobile Apps

Why Expo Changed the Way I Build Mobile Apps

I used to dread mobile development. Expo fixed that — here's exactly how.

2 March 2026exporeact nativemobileengineering
Barba Studio is Live

Barba Studio is Live

After months of building in the margins of everything else, Barba Studio — a booking management app purpose-built for Italian barbershops — is officially launched.

1 March 2026barba studioreact nativeproductlaunch
My Go-To Stack: Node.js, React, and React Native

My Go-To Stack: Node.js, React, and React Native

Why I've built every product I've ever shipped on the same four technologies — and why I wouldn't change a thing.

28 February 2026node.jsreactreact nativeelectronengineering
Next.js App Router: What I Actually Use After One Year

Next.js App Router: What I Actually Use After One Year

A practical take on which App Router features earn their place — and which ones I've learned to skip.

27 February 2026next.jsreactwebengineering