Blog

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.

4 Meta Principles For Software Engineering

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.

Writing Tests Improves Your Code

Flavors Of No

Saying no at work is hard, especially when it relates to more work assigned to you.

Flavors Of No

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.

Text Is The Universal Api

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?

Crossing The Knowing To Doing Gap

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.

Graphql Why Would You Want It

Look ma! No thought!

Large Language Models (LLMs), as with all things hyped up, have a reason for the hype.

Look ma! No thought!

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.

One Tool

The Second System Effect

After an app or system does well, there’s often talk about version 2 or phase 2 or release 2.

The Second System Effect

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?

Sustainable Scaling

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.

To Kubernetes Or Not To Kubernetes

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.

How To Sanely Test Complex Systems

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.

A Love Letter To Git

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.

Principles Of Product Requirements

Data Untangling

A few years back, I needed to migrate calendar data from one system to another.

Data Untangling

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."

Engineering Is Trade Offs

Ghost Ship Project

Once upon a time, I had a system that needed to be tested heavily for any change we made to it.

Ghost Ship Project

Revisit Decisions

Several years back I was working for a company with a system that was having a lot of performance issues.

Revisit Decisions

Start Somewhere

Early in my career, I got asked to write a custom calendar system.

Start Somewhere

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.

Are You Satisfied With Your Job

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.

Agile Is Not Scrum

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.

Counting The Costs Of Dependencies

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.

Checklist Before Merge To Master

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.

How To Use Checklists

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.

Interviewing Developers

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.

Keeping Up With The Valley

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 Analyzed

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.

Project Management Systems Suck

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.

The Soothsaying Developer