Backend

104 articles · all categories

I've been building web backends since ~2004 when they were just called websites. With these essays I want to share the hard lessons learned about serverless, databases, APIs, and the ops that keep them alive.

Backend articles

10 articles from 2022 · show all

October 2022

Why PATCH endpoints matter

A painful lesson from production that brought several engineers almost to tears: *Please* add PATCH endpoints to your public APIs.

Over-engineering tweet embeds with web components for fun and privacy

A way to embed tweets in static sites with full pre-renders and live updates using just 9kB of client-side JavaScript, 2 HTTP requests, and full reader privacy ✌️

September 2022

How better data modeling fixes your code

When your code feels hard, 9 times out of 10, the problem is with your data model. The signs are subtle.

Notes on A Relational Model of Data for Large Shared Data Banks

In 1970 a paper came out that changed the world of business computing. It laid the ground work for modern databases.

June 2022

You are allowed to invent HTTP status codes

A fun problem for RESTful APIs: Did you get 404 because your URL is wrong or because the resource wasn't found?

May 2022

What microservices are for

Microservices are a pain in the ass. They turn every system into a byzantine mess of complexity. But this week ... they saved my butt.

April 2022

Promise.allSettled, a wonderful tool for resilient code

The pros and cons of different approaches to writing resilient code that handles partial failures

January 2022

How to add Typeform as a Gatsby source

Every year I ask readers if they're enjoying my newsletter. Then fail to use those responses 😅 This year I said heck it and built a /testimonials page that shows everyone's feedback raw from Typeform. Here's how.

Wow API Gateway v2 is fast

A story of how my performance hunch was totally wrong and the answer that sped up an AWS Lambda 33%

Using DynamoDB Streams with the Serverless Framework

DynamoDB Streams are a convenient way to react to changes in your database. And surprisingly easy to use 🥳