There’s a person I want to work with. I can’t find this person. I’ve literally searched the world, and I can hardly find a trace.
I’m not talking about someone specific. In fact, that’s the problem. I’m talking about a set of traits and an attitude which is more scarce than I realized until recently. I know a small handful of people who fit what I’m looking for, but they’re busy and unavailable right now.
I was talking to one of these people recently about my desire to, as I put it, “hire someone like you”, and we both realized how hard it is to name really anyone else who fits the description. Given this and the fact that there are so many bad job descriptions for developers in the world, I’m writing down what I’m looking for in hopes that this person (you?) is out there:
- Everyone knows that when you take on a task whether it’s huge and scary or tiny and boring, you’re going to see it through to the best of your ability.
- It’s obvious to everyone around you that you have fun with your work and with your co-workers.
- You care about how your work and attitude affects those around you. I mean really care. If you hurt someone, it hurts you. Everything you do runs through this filter.
- You understand that communication is the biggest responsibility of your job as a developer and the one you’re least likely to get right unless you focus on it.
- You focus on shipping software that matters to your users and that matters to the company you’re building it for.
- You’ve experimented with and survived many different types of development and project methodologies, which has left you with a healthy appreciation for what works from the so-called “agile” methodologies and those that came before (and after) them.
- You have no time for ceremony. Maybe you even hate it, but “hate” is too dogmatic a term.
- You are humble enough to bend to the will of the frameworks, technologies, constraints, and people you work with when doing so won’t have a materially negative impact. In other words, you can play by someone else’s rules when that’s the easiest and/or best thing to do.
- You make pragmatic (often boring) technology choices at work and you play in your free time. You don’t build science projects just because you are smart enough to build them.
- You are confident enough that you don’t have to prove to anyone what a great developer you are, and therefore…
- You don’t mind being the one that looks bad when you deserve it. You make mistakes sometimes, because you’re human, but rather than dwell on them you choose to fix and then learn from them.
- You love to teach and learn from your co-workers.
- You are confident with a number of programming languages, operating systems, and architectures. You probably have one of each you prefer right now, but you’re neither dogmatic nor myopic in your focus on it.
From my perspective, these are the things that matter.
I don’t care if you’re the smartest person I’ve ever met. I don’t care if you know everything about the technologies I’m deploying. I don’t want a “rock star”. I definitely don’t want a ninja. I don’t care if you write books, contribute to Open Source software, or speak at conferences. I do those things, and I know how little they predict how well I do my job.
If this describes you, I definitely want to know you. If you are interested in building scalable APIs and automated infrastructures for those APIs and would like to work with me in Berlin making beautiful productivity software, I definitely want to know you. Please get in touch.