Software Engineering
144 articles · all categories
Software Engineering articles
18 articles from 2022 · show all
November 2022
Scaling teams is a technical challenge
A founder friend asked me about growing pains on his team. How do you avoid stepping on each other's toes?
September 2022
useCallback is a code smell
One of my favorite ways to simplify and de-gotcha React code is to rip out all the useCallback and useMemo drama. 90% of the time you don't need it.
The art of the cowboy merge 🤠
how do you catch a critical deadline that cannot be missed? We're talking external stakeholders, millions on the line, and it all hinges on *your* team getting it done on time. No overtime
If it works together, it lives together
Wherein I use LEGO to talk about organizing your code for ease of use
Why others' code is hard to navigate
Some people like to organize code in files and folders and neat categories. Others love search. When they work together, that's the challenge.
August 2022
Reader Question: What do collaborative teams look like?
New members on our team invariably say 2 things: 1. Wow I've never seen a team move this fast 2. This approach feels weird. I'm uncomfortable Teams like this are not common.
Your code doesn't matter
"Your code doesn't matter" is something experienced programmers say, between the lines, when they sound like complete lunatics. But what do they mean? Why does everyone say it?
Reader question: So about that perfect burndown chart ...
If your approach works so well, why isn't every team doing this?
Move your business logic into data
The quickest way to simplify a complex function with lots of logic is to turn it into data. A lesson from production
July 2022
You don't *have to* build it sloppy to go fast
My favorite mistake to make when I'm in a hurry is to think that I _have to_ build new features the sloppiest way possible. Find the quick fix and move on. But that's not true.
What makes a great software engineer?
In 2015 a group of researchers asked 59 experienced engineers at Microsoft "What makes a great software engineer?". Here's what they found.
Write abstractions, not just code
Wherein I use a silly example to show why you need more than small reusable single purpose functions to write good software.
June 2022
Coding forces you to understand the problem
Programming translates fuzzy understanding into exacting specifications. That’s why it’s hard. The Illusion of Explanatory Depth reigns supreme
May 2022
Writing software is like kicking a can
Writing software is a playful process of exploration and discovery. Like a game of kick the can on a Sunday walk.
The Italian foods theory of bad software design 🍝
Spaghetti code – unstructured Ravioli code – too structured Lasagna code – layered wrong Minestrone software – unclear domains
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
Code Review Practices for Refactoring Changes
Do you review refactoring pull requests differently than you do others? An empirical study of OpenStack, an open source cloud platform, says that you do and finds 6 common criteria.
How we made the best burndown chart you've ever seen
My entire career I've never seen a sprint finished on time. The new manager said "Oh I think we can fix that" ... 18 months later he proved me wrong