Dave Geddes

Read this first

How to be Happy at Work

I’ve been thinking a lot lately about job satisfaction. It’s a fascinating thing to observe yourself (and your friends) go through periods where you absolutely love your job, or are ready to rage quit, or somewhere in between. In this post I’m going to focus on software engineers specifically because that’s what I am and that’s what I know best.

The Formula

The first step to solving any problem as a developer is to try and understand the formula for how it’s supposed to work. Everyone is different and values different things. But as I reflect on my own experience and that of the many developers I’ve known, I’m beginning to think there are three main things we all care deeply about. These have the largest impact on whether or not you love your job:

  1. How much you like the people you work with
  2. Interest in the problem
  3. Level of autonomy and choice of tech in your solution

I put them in...

Continue reading →

delightfully traceable

This is a quick note on the virtues of traceability. I’m not talking about tying git commits to business objectives, I have little interest in that. I’m talking about knowing what in the world is going on in your project.

A while ago I was helping a fellow software engineer debug his application. I noticed he had three separate versions of jQuery being loaded into his app. I asked him to show me where these were being included. He had absolutely no idea. We scoured the page for script tags, require statements, etc. but could not for the life of us figure out how this was happening. After digging for a couple of days my friend finally found the cause. It turned out that deep down in the database (MarkLogic) there were a few templates that made all three jQuery’s globally available.



Global variables are easy to get started with but lead to pain and suffering as your project...

Continue reading →

Are You Coming to Standup?


Many software companies follow the practice of “stand-up” meetings. The intended purpose of this daily ritual is for team members to:

  1. communicate status updates to each other on work since the last meeting.
  2. share the current day’s objectives.
  3. raise any potential concerns, roadblocks, questions etc.

It boils down to one thing: communication. In a software project, each member has to know what’s going on. Otherwise (usually wrong) assumptions are made & effort is duplicated. Stand-up meetings promise to improve communication, but most teams fail at them.

Think back to your last stand-up. Was it a status update meeting for the sake of getting your designer/manager/Q.A. up to speed? Was it your boss presenting top-down updates to the team? Was it a bug scrub? Planning for the next release? If so, guess what: you’re not doing it right. The good news is, it probably doesn’t even matter...

Continue reading →

Global Google Music Shortcuts

I like listening to music while I code. My favorite music subscription thingy lately is [Google Play Music](music.google.com). It has a great selection and its radio feature doesn’t seem to be as affected by Pandora’s Law, which is:

The natural phenomenon that occurs whenever a generated radio station plays for more than an hour, leading to strange, unlikable songs and an inevitable ‘WTF is this?’ moment on the part of the listener.

The other day I was working on an awesome prototype with d3 and was totally in the zone (if you don’t know what the zone is, it’s ok. Muggles are welcome here too). Suddenly I found myself listening to some Selena Gomez song (no offense, she’s perfect in every way) that made me want to hurt a puppy. So I searched frantically through what seemed like a hundred open tabs in Chrome, finally finding the right one and hitting option - to end my misery with a...

Continue reading →