I’m often asked the question, “Where do you find great developers?”. The truth is: I don’t find them — I create them. At gskinner.com we rarely hire experienced developers; most of our new hires are fresh out of school.
We select smart, creative, and responsible new developers who exhibit a real passion for interactive technology and mesh well with our corporate culture. While we do require a minimum level of coding ability, technical expertise is one of the least important criteria. Teaching someone to become a great coder takes time, but it’s relatively trivial compared to trying to instill a love for the work or teaching someone to be a great problem solver, reliable worker, or cohesive member of the team.
This approach allows us to train our new hires exactly the way we want to, without having to convince them to unlearn incompatible practices. It also means they learn our process and integrate well with the rest of the team.
Over the past six years of running gskinner.com, I’ve developed a system for training and evaluating new hires, and recently formalized it into a documented process. We just successfully finished taking our first two devs through the full three month process, and while it’s still not perfect, I’m quite happy with the results.
I thought it might be worthwhile to share an overview of our approach with the community, and will do so in a series of blog posts (eight total, I think) over the next few weeks.
It’s worth noting in advance that this process is only valuable to companies that hire for the long-term. We invest a lot of resources into developing every new hire, so they can become valuable, permanent (as much as possible) members of our team. We treat everyone with respect, maintain a very reasonable work week (never exceeding 40 hrs), provide benefits & performance bonuses, and have very low turnover. If you hire & fire on a project basis, or have high turnover, this process will not help you at all.
Continue to Creating Great Developers part 2: Hiring.