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