Tim's Weblog
Tim Strehle’s links and thoughts on Web apps, software development and Digital Asset Management, since 2002.

To my new colleague

Our company, Digital Asset Management (DAM) vendor Digital Collections, is looking for a Web developer based in Hamburg, Germany. Of course there’s a conventional job offer over on the company Web site, but since you and me will be working closely together, I’d like to add some thoughts – nothing official, just my personal opinion. Don’t let it scare you away; I’ll be your colleague, not your boss! (If you want to know who this weird guy is, here’s more about me. Sorry I’m writing this in English; my blog has some international readers, and you’re used to reading English anyway.)

First of all, I’m happy you’re considering to join us! Web developers are highly sought after these days, at least here in Hamburg. We’re competing with companies much cooler than ours: Our office isn’t trendy, many of us are middle-aged, there’s not many perks except for free coffee and drinks, a fruit bowl, and the occasional home office day (good hardware ain’t a perk anymore). I guess we’re paying well, but I don’t really know. So what made you check us out?

I hope it’s because you like what we’re doing: We’re building Web-based DAM and Content Management systems for people who make and publish creative content – our systems are the home and hub for their photos, videos, newspaper and magazine articles. In the coming years, you’ll be a DAM and CMS programmer more than you’ll be a PHP or JavaScript developer – and you’ll be a bad one if you don’t (learn to) love it. (Shouldn’t be hard if you ask me. Ain’t creative content much more fun than online games, ad systems, or dull back-office apps? Read up on DAM if you’re new to it.)

Our company is rather small, so your ideas and enthusiasm really matter. You can work across the “full stack” of development tasks if you want to (architecture, APIs, backend, frontend, UX, long-term product development, short-term custom project development). You’ll help shape the product, not just code what the boss tells you to. Your responsibility doesn’t end with you handing over well-written code; you “own” all aspects of that feature you wrote, including how it delivers value to the end user.

At our company, there’s wonderful people and things we excel at, some mediocrity, and a few stupid traps we fall into again and again. (For example, we’re not doing “agile” well yet.) You’re expected to speak up if you see one of us (including our managers and CEO) plan or do something stupid! We’ll enjoy the good times, and patiently yet tenaciously change the rest for the better.

You’ll love our amazing customers, who you’ll be in direct touch with sooner or later. Given that our customer base is spread all around the world, it’d help if (unlike me) you’d be willing to travel occasionally when sales or project people need some technical backup.

Your current technical skill level (n years of experience with technology x) is less important than your ability to keep learning new stuff, thoroughly but quickly, and autonomously. I hope you love playing with shiny new things, but have already learned the lesson to cut through the hype and be conservative in bringing them into production. You strive to become a master, yet value simplicity and know your YAGNI and KISS. (See my reading list for younger programmers.)

Empathy is your most important skill. I expect you to be friendly, positive, professional at all times, valuing and understanding every person you interact with. (In other words, “no assholes”.) Empathy is not just vital for getting along well with others, but also for designing good user experiences (UX). Our main mission is to build products and services that make our customers’ jobs easier, and to do so in a way that is pleasant for everyone involved. You love the product we want to build, not the one we already have – so when soneone criticizes what you built, you don’t get defensive. Instead, you’re thankful for the opportunity to improve the product together.

You love to communicate well (bonus points if you’re blogging, or generally good at writing). Honesty is a must: Never try to hide your mistakes or weasel out of taking responsibility. Being open about where you failed, then doing better next time, is the best way to build trust.

I’m glad we’ve met – now let’s get started, there’s a lot of work to do! See you soon,