Articles
Software engineering lessons from production, raw and honest from the heart β almost 20 years of them. Jump to a year in the sidebar, or browse categories and curated collections.
January 2022
Why other people's code looks weird
Are you an organizer or a searcher? What about your team?
What is the goal of engineering?
How can you know you're succeeding if you don't know where you're going?
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%
Try to work for a brand
Brand helps your career in subtle ways.
The quickest way to fail a tech interview
No it's not a wrong answer or floundering with algorithms. Not even being nervous or shy or having a language barrier. Culture fit is the least of your worries if you make this mistake.
What to do when bugs are whack-a-mole
What do you do when every bug you fix creates 5 new bugs? You could laugh and move on, or realize it's a sign of bigger issues
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 π₯³
December 2021
How I stopped chasing mice in 2021
How a focus on long-term games changed my approach to everything and calmed down my life
The Passion Paradox
burnout doesn't work the way you think
pg-mem and jest for smooth integration testing
The cult of TDD leads you down a dark and stormy path towards brittle code with a false sense of security. But there is a better way. A sweet spot between unit and heavy integration.
A mental framework that helps you code faster
What slows you down the most when you're coding or doing software engineering? I think it's how fast you make decisions
Datalist, the pure HTML typeahead you didn't know about
If you ever want to build a searchable typeahead field, `<datalist>` can do that for you. On all browsers. Across devices. Standards compliant. With no JavaScript. π€―
When itβs okay to work overtime
Not all overtime is bad overtime
Why null checks are bad
Every null or undefined check doubles the number of tests you need π±
Small choices can wreck your codebase
wanna see the strangest looping construct I've found in production code?
November 2021
Better tooling won't fix your API
RESTful APIs are like Agile β everyone does it differently and if it isn't working, it's your fault for doing it wrong. π€¨
What to expect in senior level interviews
Interviews are terrible. Stressful, time-intensive, loosely correlated with on the job performance. They're the least terrible way we have to hire.
Getting from junior to senior
The difference in salary between a junior and senior engineer can be orders of magnitude. Many multiples at least. But what's the difference in mindset that gets you there?
How defensive coding leads to bloat
Defensive coding is an important lesson and over time and engineers it leads to massive bloat, if you're not careful.
You can use React Query for slow computation, not just API
You can use the ergonomics of React Query for any slow operation and it's wonderful.
Balancing serious sidehustles and full-time work
Erik, the author of Developer Hegemony and founder of Hit Subscribe, invited me to chat about balancing sidehustles and full-time work
Finding unresolved promises in JavaScript
JavaScript is a fantastic server-side language because it's async. That also makes it tricky. π© What happens when you swallow errors? Forget to resolve promises? Or run into a number of other anti-patterns
Why I'm excited about React 18 β talk
React 18 is coming soon. I hope π€ Here's a talk I gave exploring its implications and showing off demos with working code.
October 2021
25 lessons from 25 years of coding
Today is my birthday which means I've been coding for 25 years. A quarter century π± Here's 25 lessons I've learned about code. In no particular order.
How to configure Jest with TypeScript
Using plain Jest on a TypeScript codebase is kinda rough. No types in tests no thanks. Making Jest and TypeScript work together smoothly is something you do just rarely enough to forget the details. Hope this helps you and future me too βοΈ
What's more productive, a team or a talented soloist?
Engineers *hate it* when you say it doesn't matter how good they are because a team will outcode them any day. But it's true, you can't build something big on your own.
Learn TypeScript in 5 minutes
TypeScript solves many of JavaScript's sharpest edges. You don't need much to get started βοΈ
Meetings β a senior engineer's secret weapon
Boo meetings, yay code, right? There comes a time in your career when coding is no longer your highest impact contribution. Might even be holding you back. π