All Case Studies Design Development Interviews Our Way Project Management

Spotlight with David Dahl

I’ve been lucky to catch David - a Senior Developer at Burt- when he was in the middle of conference spree. Travelling from wroclove in Wrocław to Scan Dev in Göteborg with his talk on building a real time analytics engine in JRuby he found some time for a chat on things like code quality, challenges of hiring a great developer and his favourite IPA.

s3

I’ve been lucky to catch David - a Senior Developer at Burt- when he was in the middle of conference spree. Travelling from wroclove in Wrocław to Scan Dev in Göteborg with his talk on building a real time analytics engine in JRuby he found some time for a chat on things like code quality, challenges of hiring a great developer and his favourite IPA.

David Dahl @effata Current Work: Senior Developer at burtcorp.com Current Location: Sweden, Gothenburg

How would you explain to your grandparents what you do for a living?

That depends on which grandparents. One of my grandpa’s is actually a computer guy himself. He used to work on huge systems and he was a pretty cutting edge back in the days. I’ve actually talked with him about databases a couple of weeks ago and he pretty much understood everything I’ve said. He started with the punch card era, seen the whole development - from the computers as big as buildings till the most powerful computer thing in your pocket. He’s definitely a major influence for me becoming a developer myself. For my other 3 grandparents I would say - I built systems that measure advertising on the Internet.

As a senior dev how many people do you manage in your team?

I used to be a SCRUM master, managing around 5 people in the team. Lately we’ve switched things around and right now I’m pretty much jumping around and doing a little bit of everything in terms of coding.

Toolset is important - what kind of tools do you/your team use?

For planning : We do a kind of Kanban prioritization and it’s basically just one big google document with top priorities that we change around every couple of days.

For coding: We tend to have a different taste within the team. A lot of the guys (including me) use Sublime. We used to go for TextMate but not anymore. Then we have a couple of guys who are hardcore Emacs people. For other coding stuff: we use a lot of java libraries in the backend. We’ve actually written a whole bunch of ruby gems and ended up building what is now an official RabbitMQ gem for jRuby - HotBunnies.

What is the biggest challenges of creating a great tech team?

Finding enough good people! There just aren’t that many fine developers out there and we’ve been very picky in our recruitment process. We pretty much stated from the start that we want to only have in-house developers because for us it’s very much about building a family. Currently we’re about 30 people (mostly developers plus a bunch of analysts and sales & managers team) and we’ve been 30 for the last year. When I joined Burt 2 years ago we were only 7. So we’ve grown a lot! At this point we found out we are where we wanted to be and we’ve stopped getting bigger - it’s a conscious choice.

I absolutely love the place. It’s the best place I’ve worked in my last 7 years. It’s hard to pick one element I like the most but I would go for the general culture and the amount of inspiring people around me. And there is also a lot of appreciation for how hard what we’re trying to do can be which is really great.

Hiring the right people is an ultimate challenge. What qualities are most important for you in your potential new hire?

Beside that we hire people who are already very confident, we’re trying to choose people with a certain kind of personality. We want people who can show initiative, bring ideas, don’t wait around for someone else to tell them what to do.

We usually have at least 3 face-to-face interviews. We sit down and talk. Not only tech questions are on the table - we actually try to figure out what drives the person. We also educate our developers. We’ve hired a whole bunch of people who don’t code ruby - and I was one of them. Ruby has the advantage of being fairly easy to grasp. So people become productive very fast - usually less than a couple of weeks. Fluent - a couple of months. There’s not much ceremony around Ruby in contrast to other languages. Many languages require you to do things in a specific way in order just to get started. In Ruby it takes very little code to have something that runs.

How a typical day of you/ your team looks like?

We have a short stand up around lunch and apart from that it’s pretty much headphones on and coding all day - especially now as we’re currently on a very productive period.

How do you maintain high code quality?

We try to be as much test driven as possible. Lately we’ve introduced a fairly new thing - every deployment to production must be accepted by another developer. And before you do that we always run things in the staging environment for a couple of days. The critical part is that you really can’t simulate stress that the production environment has because we’re handling a lot of traffic so there will always be things that you encounter only in production.

Continuous deployment or feature branches?

It depends on what we’re doing but mostly we go with feature branching. If we do small changes, we’re trying to push it to the staging immediately, let it run there for a couple of days and then we deploy it to the production. A lot of projects that we do nowadays are weeks work of coding, and then we deploy it to a third environment first - that is one of the benefits of running it on the cloud - you can simply setup new servers.

How to keep yourself motivated?

I get bored when you start doing the same things over and over again - that was one of the issues I had in previous places. In Burt problems become more and more challenging and interesting. We build a product and a large application platform that means we always build new things. One of the big challenges that we’re facing now is scale - to be able to have more traffic for less money. It’s pretty motivating.

What is the project you are most proud about?

We’ve upgraded part of our metrics crunching system this fall and I wrote most of the code. It’s the part that pretty much calculates all the numbers that we show in our reports. The new system crunches 5 times as much data for half the cost and that is really nice. Definitely my biggest achievement so far.

The best programming advice you’ve ever got

Ups, that’s a hard one. I’d say one of the most essential thing for what we do is ‘start with 2 of everything’. Then you’re golden. For example - if you host a web app - start with 2 web servers. This way you’ll quickly discover if you have issues with cache invalidation, or if sessions bounce between web servers and users get logged out. If you start with 2 of everything from the beginning you don’t have to think about a lot of problems because you’ve already solved them. If you start with 2 scaling is easy, if you start with one - scaling is hard.

Bookmarks

My bands’ sites! taketh.se / eta-carinae.se / chugger.se

Most loved apps

That would be reddit for IOS and dropbox. And Spotify!

The must-try-before-I-die thing

Skydiving! Also I would like to play at a huge arena like Wembley sometime with one of my bands. That would be awesome!

What is the questions you’d like to be asked (but we didn’t)?

You haven’t ask what’s my favourite beer! Right now it’s Sixpoint Resin - an american IPA that comes in a really cool can. But you can’t really get it in Sweden which sucks.

s3

David’s mac

Why it is impossible to hire quality engineers in London and how to deal with it
Follow Netguru
Join our Newsletter

Scaling SaaS
Need a successful project?
Estimate project or contact us