30 December 2024

The more I focus on teaching, and helping others learn, the more I'm finding success for myself and for Gozynta.

A couple of years ago I started doing some mentorship at Codam. I enjoyed sharing some of the things I've learned over the years with young developers starting their careers. This year we hired 5(!) Codam students as "apprentice developers" at Gozynta. I brought these new devs in and told them their primary goal is to learn everything they can, and my primary mission has been to teach them as much as possible.

Why?

What are you paying for when you hire an experienced developer? You’re paying for a lot of deep knowledge. How do you test for that in an accurate way that’s not easily gamed, that doesn’t waste too much of your precious time and theirs too (because I want to be respectful of the time I ask candidates to take interviewing)? I haven’t been able to come up with a good answer for this. Instead, we end up finding out how good they really are only after they’re already working. Which means we usually get it wrong. That’s an incredibly expensive and inefficient process.

We’re a small company, and hiring an experienced developer means taking a bet with a significant percentage of our annual budget. Even still, we’re not able to compete with the big tech companies on salaries, benefits, and stock options. Instead, we’re able to offer a top-tier experience to some new developers. They get personal, one-on-one attention that few companies offer.

Instead of taking a gamble on one senior, I can afford to bring on multiple juniors. Hire all of my top candidates on temporary contracts, and we all get a long dating period before we “get married” signing permanent contracts.

How?

By not having to focus on answering the question of “Did this developer really turn those years of experience into the deep knowledge that I’m looking for, or have they spent the last decade playing solitaire, or learning bad practices that they’ll want to implement here?”, I can focus on the stuff that matters even more for long-term success. Can they figure out a problem? Are they eager to learn? Do they take feedback well? Can they describe a difficult concept? The core traits that demonstrate attitude and attitude… Because, the people with those traits will blow past even those with decades of experience who just don’t care about what they’re doing, or who have let their ego’s get too big where they stopped learning.

I started them off with a throwaway problem that would give them some experience with the technologies that we use. That's right, I hired new developers and then paid them to write code that we're not going to use, just so they can learn faster. Since then, they've started working on other parts of our codebase. I've given them each changes to work on that I believed were not too difficult to be frustrating, but also hard enough to challenge them to learn something new. I'm thoroughly reviewing their code, giving them lots of feedback on how to do better, and helping them with parts they're stuck on.

How’s it going?

Great! I have the best development team I’ve ever put together. I love working with people who are excited about programming, and eager to learn more.

I'm now spending more of my time coaching and leading my team that I am on working on my own code. However, my work is more rewarding, I'm proud of my team, they are all happy to work here, and we're getting lots done. I look forward to them coming to me and demanding more pay, when they've learned enough that they clearly deserve it. I expect that our combined efforts will lead to enough business growth, that we'll be able to meet all of those demands as they come.

None of this comes naturally for me. It's much more comfortable for me to just hide in my cave and write the code myself, but this change has been well worth it. I'm excited to see what we can all accomplish in 2025.