GitPrime elevates engineering leadership with objective data. In this interview series, Engineering Leaders talk about how to build high performing teams.
Attracting and retaining high-performing software engineers is difficult no matter how you slice it.
Startups can be further disadvantaged when competing against the reputation and compensation packages that the Googles and Facebooks of the world can offer. And those challenges are compounded when you’re not working in an intrinsically cool or trendy field.
We spoke with Aaron Silverman, an engineering leader at stock media provider VideoBlocks, to learn how he draws top-notch engineers when so many other companies struggle to do so. After all, stock media is certainly less sexy than a hot consumer brand, or other irresistible niches like home automation or autonomous vehicles.
Yet the goal at any company is to hire quality engineers that could work for the big names. VideoBlocks succeeds at just that—and you can too. Because here’s the key: recruiting great software engineers is as much about the people as it is about the product.
Since Silverman joined VideoBlocks in 2013, they’ve scaled their engineering team by 6x. Basically, the main part of his job is to attract, retain, and develop high-performing engineers. And here’s the crux of what he taught us: Even a scrappy startup can attract top-tier engineers, if you present them with a world-class problem and an opportunity for growth.
Come for the opportunity
There’s not one magic incantation that will attract top engineers. So, Silverman likes to break down the recruitment approach into three categories:
1. Use technology they’re excited about to continue growing their skillset
“If engineers are looking for a job, 100% of the time they are unhappy about some aspect of their current situation,” Silverman says. “More often then not, they feel they’ve stopped learning or growing.” So your technology decisions can be based not just on how effective the technology is at solving problems, but also on how exciting it is for the engineers. (“This is a fine line to walk, because you don’t want to be distracted by every shiny new app,” Silverman says. “That’s squirrel-driven development.”)
2. Give them full-feature ownership in your company’s mission
Make sure your engineers play a critical role, and make sure to recognize their importance. In this approach, your engineers won’t be working on the back-end and throwing their output over the wall to the front-end people. They own the feature top to bottom. They own the process. They work with different teams. Hardly anyone likes being a cog in a machine or a number in a spreadsheet, so treat your engineers differently than that.
3. Offer them a window into a high-growth software startup
Of course, a new job is a chance for engineers to grow their skills. But not every new job has the allure of a startup. “It’s still cool to go work for the big guys,” Silverman says, “but you can effectively compete by asking engineers if they want to be one of thousands of engineers, or one of five or ten. With you, they can play a critical role in the development of your business.”
Transparency is helpful here—VideoBlocks lets recruits know they’ll have a window into a high growth startup. Employees have the opportunity to review the same material presented to the board of directors. If interested, they can see everything from how much cash is in the bank to the boring details of the latest 409A valuation. These three things convince engineers to join your business, especially at the beginning.
Once you get some solid people on board, the flywheels start spinning, because good engineers want to work with other good engineers.
Stay for the growth
“When you have three engineers on your team, life is pretty simple,” Silverman says. “You don’t need many meetings. You tend to have efficient communications. Everyone knows everything that’s going on. You’re a rag-tag team of engineers, making everything happen on and talent and sheer will.”
But as your teams scale, the dynamics will change. These are definite transition points, and you risk losing good engineers if you don’t proactively work to retain them. These points are the two biggies, and here’s what to do when you reach them.
The two-pizza mark
Silverman is a big believer in the two-pizza team philosophy made popular by Amazon. “When your team outgrows being able to share two pizzas, you’re at maybe at 6 or 8 people. With a team this size, you’ll start feeling the need to define areas of ownership and to segment responsibilities.”
You’ll have to start formalizing processes. For example, defining career paths and job titles. Real ones that translate between organizations. (Silverman admits that his LinkedIn still says “Code Slinger.” Yeah.) You may meet resistance to formalizing processes. Try presenting the changes as a chance to recognize your engineers’ achievements. For example, job titles and career paths help build good cases to the finance folks for pay raises. If they’re not at this job until they die, employee’s titles here will help them with their next opportunities. These explanations tend to bring engineers on board with the idea.
The baker’s dozen
Once you hit thirteen or fourteen engineers, there’s often issues with prioritization; engineers will frequently gravitate towards the coolest or most interesting problem at hand, instead of the one that’s most important for the business. Rather than trusting the team to distribute the work, you’ll need to consider project managers. That way, your team can really focus on the business and the customers, instead of purely building the flashy stuff.
At the same time, keeping the work exciting is still critical. There’s definitely a balance, one you can strike more easily by establishing effective protocols. “As you keep scaling, you’ll stay in the zone of figuring out how to most effectively leverage product management without reducing your engineers to the role of code monkeys—which is an excellent way to lose them,” Silverman says.
You’ll want to cultivate a partnership between your engineers and your business that works well for everyone. Address these transition points openly and candidly. Your business’s culture and dynamic will still change. But you’ll have a better chance of retaining your best engineers. Remember: by focusing on attracting and retaining the best engineers, you’re building both a great product and a great company.
The numbers game
Silverman has always been interested in the intersection of technology and business. He’s a self-professed student both of building things and of managing people. And one of the best ways he knows to manage your teams as they scale is to rely on metrics.
“Productivity data may be less critical when you’re working under the two-pizza mark,” he says. “But when you start making process decisions, that’s an excellent time to bring in metrics. You’ll want to know if you’re making good or bad decisions. The metrics can help guide your process changes so you’re not shooting in the dark while trying to improve your team.” Silverman and his team keep an eye on concrete metrics like code churn, codebase impact, cycle time from merging code to master to deploying in production, and how long it takes tests to run.
With the right productivity metrics, you can start making intelligent decisions at scale where the impact is much greater. For instance, a healthy part of VideoBlocks’ scaling is that they’ve expanded the technologies they use in development and production, and gone from zero to thousands of automated tests.
But now, imagine those automated tests kept creeping up in time—just as Silverman experienced with VideoBlocks’ tests. An increase measured in seconds doesn’t feel like a lot, and you’d likely think things were going basically the same from week to week. Then months later, you’d be running really slow. So metrics can be a straightforward way to step back and examine your productivity rates, in order to help you tackle the issues that are slowing you down before they get out of hand. VideoBlocks also keeps tabs on softer metrics such as team morale.
They use a Slackbot to regularly ask engineers how they are feeling which allows for anonymous and honest feedback. Then, they roll up the responses into an aggregate metric that they use to monitor overall team happiness. Which, now that we think about it, is probably the closest you’ll get to a formula for attracting and retaining high-performing engineers.