LESSONS

THINGS I'VE LEARNED THE HARD WAY

A collection of things I probably could've learned without making the mistake first.

01

AUTOMATION ISN'T THE HARD PART.

Keeping it working when someone changes one button's HTML is.

02

YOUR DATABASE DOESN'T CARE ABOUT YOUR BEAUTIFUL SCHEMA.

It cares about your queries.

03

A WORKING MVP BEATS A PERFECT ARCHITECTURE NOBODY USES.

Ship it. Then improve it. Nobody cares about your elegant abstractions if the thing doesn't work.

04

IF YOU HAVE TO MANUALLY DO SOMETHING 100 TIMES...

You're probably building the wrong system.

05

THE API DOCUMENTATION IS PART OF THE PRODUCT.

Because eventually you'll be the person trying to figure out what past-you was thinking.

06

THE FIRST VERSION WILL PROBABLY BE WRONG.

That's fine. The expensive mistake is spending three weeks polishing something you haven't validated.

07

EVERY "SIMPLE" FEATURE HAS A SECOND PROBLEM HIDING BEHIND IT.

Authentication. Rate limits. Retries. Error states. Edge cases. The happy path is usually the easy part.

08

DEPLOYMENT IS PART OF DEVELOPMENT.

If it only works on localhost, you haven't finished building it.

09

ADDING ANOTHER LIBRARY IS NOT THE SAME AS SOLVING THE PROBLEM.

Sometimes the problem is your code. Sometimes it's your architecture. Sometimes you just need to read the error message again.

10

BUILDING SOMETHING TEACHES YOU DIFFERENTLY.

You can read about a technology for days. Then you actually build something with it and suddenly discover 14 things the documentation didn't prepare you for.

11

ERROR HANDLING ISN'T GLAMOROUS BUT IT'S EVERYTHING.

The difference between a toy and a product is what happens when things go wrong. And things always go wrong.

12

SIMPLICITY IS HARDER THAN COMPLEXITY.

Any developer can add complexity. It takes a certain kind of developer to keep things simple when the problem is complicated.

13

CODE REVIEWS AREN'T ABOUT FINDING BUGS.

They're about making sure someone else can understand what you built. Because six months from now, that someone else is you.