My only skill is debugging. I have worked as a programmer — software engineer, software developer, or whatever you want to call it — for many years.

I possess only this one skill. It is the only skill I have required.

I: Building Blocks of Debugging

In 2007 I was unemployed and living with a…

1. Write As Little Code As Possible

The best code is no code at all. If we can complete our project requirements by pressing a button, we should do it. If this button does not exist, we must write code.

The temptation of all developers is to redesign systems with no concrete payoff. …

Since the early days of the internet, we have had two broad categories of software people: application developers, those entrusted to develop new products and features to existing products; and operations, those tasked with keeping the live system running and healthy.

The reason for this division is simple. Organizations that…

If you’re the kind of person who works with a computer at a desk then you’ve no doubt spent some time endlessly tweaking and tuning your setup to achieve the right feeling.

Having a nice desk setup can create a soothing sense of feng shui. …

Photo: Michele Tantussi/Stringer/Getty Images

If you have used the internet at any point in the last 10 years, you’re probably aware that companies are collecting data for advertising purposes. …

I’ve seen a lot of posts online from college students or career changers asking questions about what it takes to become a software engineer. Typically, these questions focus around what languages to learn, how to get into a particular company, and how to navigate the various paths to get there.

At this point I think most people know that there are companies that buy and sell data online for the purposes of advertising. But you may not realize how the system works or what it looks like under the covers.

In this article, I will take a look at the…

Photo by Lewis Ngugi on Unsplash

All organizational problems in software development can be traced back to the erroneous assumption that developing software systems is like developing other large, complex things, like buildings or cars.

In a company producing cars, for example, the process is divided into two roles, broadly speaking. There are people who design…

Software design is hard to talk about. We often rely on metaphors from structural engineering and other disciplines to describe this process. We might use terms like “architecture” to describe the components of our system, how they fit together, and why we put them together that way.

In general, we…

Photo by Charles on Unsplash

Long ago, Perl creator Larry Wall named three tongue-in-cheek virtues of programmers: laziness, impatience, and hubris.

Before you go trying to learn the latest programming languages and trendy frameworks to improve your craft, take a look at these three “virtues” and try to incorporate them in your daily work.


Robert Quinlivan

Robert is a writer and software engineer. -

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store