Blog
An Engineering Organization Is A System that Produces a System
A software engineering organization is a system that produces a system. People often speak of groups of humans working together as something that is inscrutable.
4 Meta Principles For Software Engineering
There is this tendency—if not an outright need—for those involved in the actual practice of writing code to create a guiding philosophy for the choices they're making.
Writing Tests Improves Your Code
We all know that we should write tests for our code. We understand that writing tests makes our existing code better.
Why Writing Is An Engineering Superpower
The strongest engineers write things down in a place where others can find them.
Flavors Of No
Saying no at work is hard, especially when it relates to more work assigned to you.
100% Test Coverage Is Not Enough
100% test coverage is not enough, but 80% is probably fine.
Text Is The Universal Api
Back when I first started writing code in Notepad, I didn’t think I was really writing software. I reasoned at the time that this wasn’t actually writing software.
Crossing The Knowing To Doing Gap
Ever read a book or listen to a lecture about a topic and get to the end knowing that you definitely learned something, but you have no idea on how to act on it?
Graphql Why Would You Want It
GraphQL is kind of like a pick up truck. If you research one a little and ask yourself, "why would I bother to fit this gas guzzler in my garage?" Then it's probably not for you.
Why You Should Upgrade Laptops Regularly
I have a been making a very large mistake for the past few years.
Look ma! No thought!
Large Language Models (LLMs), as with all things hyped up, have a reason for the hype.
One Tool
Most people know a Swiss Army Knife on sight. It's a tool that exists not to be a single tool, but as a compact collection of multiple sub tools.
The Second System Effect
After an app or system does well, there’s often talk about version 2 or phase 2 or release 2.
Sustainable Scaling
You did it. You're running a startup that has market fit. You got that Series A to go add fuel to the fire and go from a 10 person startup to 100 people. This is the way. Right?
To Kubernetes Or Not To Kubernetes
Kubernetes, k8s, Uberkitties—whatever you call it. You don’t need it. You probably just want a thing to run containers for you. I know Kubernetes sounds really cool.
Quit Your Projects Earlier
There is a rather rote bit of advice that people should “finish what they start.”
How To Sanely Test Complex Systems
"We don't have tests for that, because it's too complicated." If you've found yourself saying that, then these two concepts are for you.
A Love Letter To Git
The most useful tech is the stuff you take for granted but can’t live without. Git is one of those things.
Principles Of Product Requirements
Software engineers make things for other people to solve some kind of problem. At some point, you’ll likely be asked to go hear your users or customers yourself.
Data Untangling
A few years back, I needed to migrate calendar data from one system to another.
Engineering Is Trade Offs
"I'm sorry to those who come after me. I tried my best. Let me explain what this code does, because it's basically unreadable."
Ghost Ship Project
Once upon a time, I had a system that needed to be tested heavily for any change we made to it.
Revisit Decisions
Several years back I was working for a company with a system that was having a lot of performance issues.
Start Somewhere
Early in my career, I got asked to write a custom calendar system.
Are You Satisfied With Your Job
Work is a lot of life. It’s worth spending time discovering if the work you’re currently doing is the work that makes you most satisfied.
Agile Is Not Scrum
I’m sick and tired of people saying, “We do Agile development.” Most companies really don’t. They do something else.
Counting The Costs Of Dependencies
I’m shy about adding dependencies to projects I’m working on. I’m extremely hesitant. When I make a package myself, though, I weigh the addition of every package with extreme care.
Checklist Before Merge To Master
I’ve previously written in support of checklists and using them. This article focuses specifically on a specific kind of useful checklist: PR Templates and MR templates.
How To Use Checklists
Checklists have seen a recent resurgence in popularity. If you want another argument to use them, this isn’t that article.
Interviewing Developers
Recently, there’s been a spat of articles about how the hiring process is broken in our industry. One in particular was rather popular.
Keeping Up With The Valley
There’s this fear in tech that you need make sure that people know what you’ve been busy in, and you need to continually re prove yourself to everyone else.
Modern Software Development Analyzed
Back in 2006, Jeff Atwood of Coding Horror made this legendary post. In which he describes, what it means to do modern development.
Modern Software Development Are We There Yet
Back in 2006, Jeff Atwood of Coding Horror made this legendary post in which he resurfaced two legendary pieces.
Project Management Systems Suck
There are way too many of project management systems. Of course, there are the well known ones: Base Camp, Trello, JIRA are the big three in my mind.
The Soothsaying Developer
I remember the first time I was asked to give an estimate to someone. A recruiter wanted me to do some work related to his database. “I’m not sure how long it’ll take,” I said.