Working Harder Isn't a Strategy

As a technology professional on the development side of the house, I regularly have to provide estimates for when my work will be done. This work includes writing code, packaging up a deliverable, writing documentation, or anything in between. Following the estimate delivery, there is a level of trust that exists between the technology delivery team and the project/account management team in that the estimate 1) will not be inflated by the technology team, and 2) will not be altered by the project/account management team.

[Read More]

Two Years

It’s been around two years since my mother, Kathy, passed away after an extended battle with lung cancer. Last year, I posted what I missed about her. To start a new tradition, I’m going to tell her what she’s missed in the past year.

[Read More]

Stop Celebrating Superheroes

The Death March

In most development walks of life, any given software developer will run into a project known as a Death March. These projects have any number of problems, but the most typical ones are:

  • Too much scope for the timeline
  • Not enough resources for the scope
  • Resources have the wrong skillset for the project
[Read More]

What Makes a Senior Developer

In my current job, I’m frequently asked to interview new candidates to join our development organization. One of the first questions that always gets asked, either by me or one of my colleagues, is “What level is this person interviewing for?” There really are only two answers for this question where I work: Developer or Senior Developer.

[Read More]

Working With Legacy Code

Precursor: I’ve been working with a significantly large legacy codebase for over three years now. Here are some tips, tricks, and general pointers to make sure you don’t make the same mistakes I’ve made with legacy code.

[Read More]

Logging with Serilog, LibLog, and Seq

I’ve written and rewritten logging providers about 300 times in my career. It’s something I know how to do, I know how to extend, and I know how to hate it. Every time I write it, I hope for some great abstraction layer that will allow me to reuse this library across every future application. I inevitably fail at this.

Along comes The Solution To All My Problems.

[Read More]