Seconds Until Retirement

Monday, May 16th, 2011

The guard at our building is the friendliest ex-state-patrol guy you’ll ever meet and we’ll definitely miss him when he retires here in a little over a month. We’ve been joking around about how many days he has left — over 5 million seconds when we first started counting. He’s such a great guy that I wanted to do something special for him and, being the geek I am I thought I’d give him him something useful, yet Rube Goldberg-esque at the same time: a “how many seconds left” count down timer.

I used an Arduino Uno board and a 16×2 LCD display (both from the excellent SparkFun online store) and a couple hours of scrounging around the workbench until, ta-da, a count down timer:

The Sparkfun shipping box even provides a nice enclosure for the whole geeky project. I’m sure this will be the best retirement gift he gets!

Everyone Wants to be a Product Manager

Thursday, May 5th, 2011

I'm not sure what's going on out there in other companies, but I keep having this same conversation with promising software engineer candidates where they say "I want to move into product management". What? Huh? Here we are, talking about a development position, and they start talking about how they don't want to do that, they want to be in product management.

What is it about product management that is so attractive to these excellent developers? Do they know what product managers spend their time doing? They go to a lot of meetings (developers hate meetings); they talk to a lot of people (developers are usually introverts); they don't "do" anything (developers check-in code and push it live to the servers); ... do these people really want to be product managers?

Eventually I figured out that what they were really saying was "I want to be in control of what I do". They've noticed that at their current company, the product managers are in control and so they want that job: product manager... Ah, now I can explain how at New Relic we don't have a product management group and that those kinds of decisions are made by developers.

The good candidates eyes light up because they realize that we've got the best of all worlds: passionate developers who write code and make decisions without excess layers of management. Maybe someday when we grow to be a big company we'll have to reorganize and add product managers, but not yet: today, our developers are directly talking to our customers and so our developers are our product managers.

(If this sounds great to you, take a look at our jobs page.)

Everyone Checks-in Code On Their First Day

Monday, May 2nd, 2011

We're growing quickly here at New Relic which means that we've got new engineers starting almost every week so it's worth talking about why everyone checks-in code on their first day. Three reasons: keeping it simple, eliminating the nonsense, and being part of the team.

If it takes more than a day to get someone set up with communication software (email, ichat, campfire, etc), a dev environment (RoR, Java, git, local memcache, all the source code and scripts, ...), and our project tools (tracker, tender, wiki, etc) then our environment is too complex. If it's too complex, we need to make it simpler, usually through more scripting. Each new engineer is a proof-point that our environment is still simple enough.

If it takes more than a day for a new engineer to get all the keys to the kingdom then we're wasting the expensive brain power that we've just hired. If it takes more than a day for a new engineer to learn our tools and do the basic cycle - start a story, write a failing test, make a code change, run the test suite, commit the change, deploy to staging, and close the story - then our tools are imposing too much nonsense on our engineers. Each new engineer is a proof-point that our tools are not a stupid burden.

And, best of all, there's a huge personal win when you start at a new job and, on day one, you're making a difference. We're very different than those big corporate environment where they can't even find your desk on the first day and you can't get a computer for the first week and nobody quite knows what you're supposed to be doing anyway - we're a start-up and we're doing great things and we don't have time to waste. That's why you joined us and that's why you're happy that you're writing code on your first day.