Logging - A Primer

Logging is the primary user interface for supporting and troubleshooting your system. It is critical that you get it right. I know this because I have gotten it wrong often enough. If you move to microservice architectures and containers, the criticality only increases because errors and anomalies are as distributed as your runtime. Here are some opinionated recommendations about how to not get it wrong. Do not create your own logging framework. Read more...

Local First Development

If pressed to define how I approach programming, the words “pragmatic essentialism” will be used at some point. Do what works and make it as simple as possible to get the job done across time. This manifests itself in various ways in my day-to-day work. One of the rules I try to hold to is that the set up of a project for development should be as localized as possible. Read more...

Some Days

Some days are better than others. I’m not sure if this is a function of energy, intention, luck or some combination of these and other factors. Days in the mountains are good days. So are days spent learning, reading and relaxing. Productive days where I crush that task list, execute on projects and accomplish all my dailies are often good days; in retrospect if not during. Then there are the not so good days. Read more...

Supporting Traits

I’ve set up my resume in a way that is different from most that I have seen. Sure, there’s a job history, mention of those degrees I achieved, and a list of specific technologies, languages and tools that accompanies the CV of every programmer. I tried to keep it all intentionally simple. Before all that, there is a section for Core Skills and Supporting Traits. I’m not 100% sure it’s a good idea, but I think these two categories are crucial. Read more...

Authenticity and the Interview

I’ve been with the same company for almost fifteen years. In those years, I’ve been interviewed one time by another company, a well-known tech giant with a reputation for a difficult interview process. Not because I thought I could get the job, but because why not. It’s worth a try to see how you stack up. I say that now. At the time, I was not exactly thrilled that I didn’t get another interview. Read more...

Books Every Programmer Should Read

I’m not big on dogmatic worldviews or broad pronouncements. This is the only reason why the title for this article uses ‘should’ instead of ‘must’. In the grand scheme of things, computer programming is a young field in two different ways. First, it has only existed as a profession for a handful of decades (rapidly changing ones at that). Second, most programmers are young; the average age being around 28 years old. Read more...

Meetings - Some Opinionated Guidelines

Arrange all the necessary evils of the world by time spent and I suspect meetings in a corporate environment will come out in the top three. I’d go so far as to say that these communal time sinks and waiting in line are probably the top two. It’s rare that I’ve been in a line that I find intolerable. I can’t say the same thing for meetings. As an introvert and a programmer, my dislike of meetings surprises precisely no-one. Read more...