Software Engineering
144 articles · all categories
Software Engineering articles
29 articles from 2024 · show all
December 2024
Atoms, molecules, organisms
Here it is: 20+ years of programming experience distilled into 378 words. From the book I'm writing.
Smart core, thin interfaces
Here's an approach to writing code that I've been using for years and couldn't quite put into words until now. One of those _"This feels wrong but I can't explain why"_. Now I can!
Empirical evidence for code modularity
Few of your engineering decisions matter long-term. Software is soft. You can change your mind. But how you structure your components is here to stay.
November 2024
Why even care about code structure
As long as it works, right?
The anatomy of a React Island
A coworker asked how React Islands work and I realized it's a technique I've been using to modernize monolithic web codebases for years, but never wrote down how it works.
Finding modules in a big ball of mud
Pulling modules out of a big ball of mud is like grabbing a slice of cheesy pizza. It's kinda separate but also not really.
Why you need observability more than tests
Here's a short and sweet story about a Friday deploy. I love Friday deploys.
Big Ball of Mud – the world's most popular software architecture
Forget Gang of Four, here are the 7 architectural patterns real programmers use:
Why software only moves forward
At scale there are no rollbacks and no cut-overs. Your software only moves forward.
October 2024
Make mistakes easy to fix
You can't prevent bugs. You'll burn out. Instead focus on making them quick to fix.
September 2024
The Laws of Software Evolution
Manny Lehman was one of the first to notice that software is never done. It just continues to evolve forever.
Better is good
A small improvement that lands is better than a large improvement stuck in review
How big up-front design fails
A long design phase without shipping kills many software projects. Here's a story from production I haven't shared before.
Why software projects fail
5 common themes
August 2024
What helps you ship confidently?
Been thinking about what needs to be in place for engineers to ship with confidence
Let small fires burn
You can't fix everything. Focus on the next big thing and let the small fires burn.
Small change in big scary codebase?
Making small changes in large unfamiliar codebases is the job. That's what engineers do all day.
Why SQL is Forever followup
Yes SQL is super flexible. That is its strenght and its weakness
July 2024
Why SQL is Forever
Never underestimate the power of good marketing for bad products. NoSQL was fun but SQL is here to stay.
90% of performance is data access patterns
Removing a single line of code slashed database CPU usage by 66% 🤘
DRY – the common source of bad abstractions
Swizec reveals the hidden pitfalls of overusing the DRY principle in coding, leading to bad abstractions. Discover how to write adaptable, efficient code that avoids these common traps.
Scaling Fast, my talk on lessons from tech startups
This talk from C3Fest summarizes the key lessons I've learned in the past ~15 years of working in tech startups. It's a high level overview of a new book I'm writing (60% done).
You can't side-quest a product
Here's a trap that talented engineers fall into all the time. It creates frustration, burnout, and the genre of tweets that read like "Why don't people care about the amazing work I'm doing".
June 2024
6 books engineers should read
Here are 6 books I'd buy every engineer who joins my team, if I ran a team. You might like 'em too.
It’s okay to just do the work
Not everything needs to work forever. Start by solving the problem
May 2024
Why you shouldn't use AI to write your tests
If you derive tests from your implementation, you can't apply the Beyonce rule. What if the code is wrong and that wasn't the programmer's intent? We'll never know. The bug now exists in both places.
April 2024
43 years of the actor model
The actor model is now part of everyday tooling and ensures concurrency safety. Understanding the principles behind it helps you write less buggy code.
From trivial to complex – 4 software quadrants
You can classify software projects into 4 quadrants from trivial to complex
March 2024
Architecture is like a path in the woods
You're doing too much. Sit back, relax, see how people *want* to use the code. THEN build the abstraction.