Programming Beyond Practices

  • June 18, 2016 On interviewing candidates for programming jobs

    I get asked about interviews a lot, both from people applying for jobs, and people trying to hire others for jobs. I usually tend to duck this question because of complicated feelings about the whole ...

  • May 29, 2016 On time estimation

    Estimates are a tricky topic, because most programmers are simply not very good at them. There are even some folks (many of whom are quite smart) who strongly believe that we simply cannot give reliab...

  • April 17, 2016 Graceful degradation as a first response in emergencies

    A few days ago, I asked you to work through a thought experiment that was meant to simulate a minor emergency situation. Here's a quick recap of the scenario, in case you missed the last email or need...

  • April 14, 2016 Making decisions under pressure

    Imagine that you're working on an application that help peoples find nearby yard sales.

  • March 10, 2016 Building a better timeclock with event modeling

    Back on Monday, I had asked you to imagine that you were building a time tracking system for a small business. The purpose of this system would be to track hours worked by employees, who would punch a...

  • March 07, 2016 The curious case of the poorly modeled time clock

    Imagine that you're building a basic time tracking system for a small business. Its central purpose is to record employee punch times from a time clock and then compute worked hours from those timesta...

  • February 24, 2016 The first week of a new side project

    When working on any new project, deciding where to begin can be a stumbling block.

  • February 12, 2016 How do you decide where to start on a new project?

    Suppose that you have an idea for a simple 2D video game, and you're thinking about working on it as a side project.

  • January 11, 2016 Debugging silent failures with breadcrumb trails

    If there is anything worse than silent failures, it is silent failures that happen only once in a blue moon. Limited information + painfully slow feedback loops = the kind of bugs that make you want t...

  • January 04, 2016 Beginning to climb out of the software death spiral

    Imagine that you work at the kind of place where there is a new fire to be put out almost every day.