How to Recruit and Retain Great Engineers

Monday, March 11, 2019 by Louie Bacaj
...


I’ve always been worried about bringing in great people to my team. Many years into this, and I am still concerned. One of the cliché phrases you hear as a people manager is: “You should never stop recruiting.” As cliché as it may sound, it’s the truth and hiring capable engineers is incredibly hard, especially today. This is why I wanted to document some rules of thumb I have used personally and seen other managers I admire use at different stages of a business to recruit, hire, and retain great engineers.

You get vastly different people applying — and ultimately, hiring — when you are a startup as opposed to when you are a big company. I have included two sections in this article related to both stages. The founder of LinkedIn, Reid Hoffman, breaks down the types of hires you get at the different stages incredibly well in his new book Blitzscaling (I highly recommend the book and not just because Jet gets a shoutout in it).

Mr. Hoffman uses Army terminology as an analogy to the types of hires you will get at the different stages.

He says your early hires resemble Marines, ready to storm the beaches and work in a very ambiguous environment. This group is prepared to do whatever it takes to get a foothold.

Later hires start to resemble Army personnel, this is a company with a product that already has some traction. They end up building the forts and holding large areas for the firm.

Finally, once a firm hits a certain size, it ends up recruiting police officers to maintain law, order, and stability. At this stage, the company has already achieved a considerable size and has fully scaled out.

Reid also says that you can expect the Marines and the Army folks to work well together, as well as the Army folks and Police officers, but don’t expect the Marines to be able to work with the Police. Although he is generalizing about technology companies, I believe this to be especially true for the types of engineers you will end up needing to hire at different stages.

Recruiting and hiring engineers as a startup

When you are a startup, recruiting great senior engineers is akin to enterprise sales — it is a long and dragged out process which involves courting and selling like mad to convince great senior people to give up their cushy high-paying jobs and take the risk to join you. This is why, referrals are by far the most important source of engineering talent in these early days.

In the early days, it is not enough to be a well-funded startup and think great people will just show up and apply. Jet was one of the most well-funded, early-stage startups in history, and we struggled just like everybody else and had to evolve with the markets. It is not enough to promise to disrupt an industry or promise hard technical problems. It is not enough to have free snacks and ping pong tables. We had and still have all of that, but no engineer worth their salt is actually swayed by that. Those are just perks. Like unlimited time off and money to buy a book, they are just nice-to-have in an industry that is paying incredibly well. Most great engineers know that there is no such thing as a free lunch anyway, and if that’s what fools them into joining, then they probably won’t make such a great teammate in the long run.

People join startups because they want to learn, have the upside, and grow. For this reason, they will take a hit on pay — I can speak from experience. Just like going to college means you are paying them to teach you and further your skills and knowledge, joining the right startup will naturally mean learning a considerable amount. Much like college, the hope is that we will be worth more by the end of it, and this is what makes the risk worth it to a great engineer. This means that even if things don’t work out long-term, and even if the startup goes belly up, the learnings are incredibly valuable.

Growth can come in many ways and for many engineers this comes from gaining new skills such as learning a new programming language, paradigm, or architecture. Jet has all of those things and then some. We started with F#, which was a new functional language that is incredible to work with. We are on the public cloud using the latest and greatest managed services to move incredibly fast. We have an event-sourced architecture that is fueled by domain-driven design. These are just a few of the things new hires have picked up here. Not to mention the opportunities to work at the scale we do, with the amount of data we have, and being able to build a product with incredibly smart people that impacts millions of customers.

However, growth is not just limited to new technical chops. It can also come by wearing many hats at once, especially for senior people. At a startup, engineers often get the chance to “own” a whole system while helping manage a small team. Generally, these things are entirely isolated at big companies, as they should be.

Such is the life of a People Manager and Tech Lead. At a startup, you could do both or grow to do both things at the same time. For me, early on, getting the opportunity to do this in a few short months after proving myself was terrific. Even if it had taken a few years, it would have still been a fantastic accomplishment and something only a startup could have given me. At a big company, it takes many, many more years to move up these ladders, and this is the tradeoff for stability. As engineers, we should understand what it’s like to make tradeoffs well.

I like to tell my people that one month at a fast-moving startup headed in the right direction is equivalent to one year at a big company. This is not an exaggeration — I can actually map it back to deliverables, the value created, and career mobility for people I admire and look up to. I’ve seen people go from Senior Engineers to Senior Directors and VPs in a few years at the right startups, and these are things that would take decades to achieve at big companies. This obviously also means you are basically working like crazy in those early days, which is why it’s not for everyone and, again, highlights the tradeoffs. Many folks are keen to prove that they are capable and may have lacked the opportunity to do so at a bigger place.

Another obvious thing that great engineers consider before joining a startup is unmistakably the equity and opportunity to impact the value of that through their work. This one is too obvious to state, but still, it’s an important one. Communicating this value is something our CTO did incredibly well early on, and I admire the way he motivated us.

The other important factors to get engineers to join a startup are the founders, their vision, and, ultimately, the culture of the company. Making an impact is something all human beings strive to do in our own way, and cannot underestimate the opportunity to do just that as a driver with a smart group of people.

“One great thing about being at Jet is that everything you do matters.”
- Ivan Glushchenko, Sr. Director of Engineering and early employee Jet.com

A big important step in all of this, especially in the early days, is not getting desperate and making sure to hold out for great individuals with the passion, work ethic, and ambition you value. One of the most important things I’ve learned is that smart people want to work with other intelligent, capable people, so keeping the bar high is essential.

As mentioned, communicating all of this as a startup is no easy feat and requires a great deal of thought and effort. This will not happen on its own and requires planting the seeds for tech evangelism, blog posts, contributing back to the community, and more to sprout out and grow with the company. Not getting discouraged in the early days as a startup and treating this process more like enterprise sales than customer sales will lead to big worthwhile wins that will snowball into strong teams.

Recruiting engineers as a big company

Things are safer in a big company, and instead of enterprise sales, where the process is dragged out for months, it resembles customer sales. Customer sales might mean making a commercial that gets a slew of customers that may be interested in buying. Unlike enterprise sales where you spend months trying to sell to one customer and court them, customer sales rely on pulling in hundreds or even thousands of customers at once and finding and retaining the good ones. Customer sales, like big company recruiting, is a numbers game.

It turns out that although the folks applying to big company jobs are different than early startup people, in my experience, they are mostly different in their risk appetite. As an engineer turned people manager, I valued very similar things when I was working for a startup and now that I am part of a Fortune One company. We all value learning, growing, ownership and working with smart people. We all value being a part of a great team and having a vision from leadership to execute on and a fantastic culture to be a part of.

For a big company, it is critical to have a technology culture that is conducive to engineering career growth. This will mean having a career ladder that supports both Individual Contributors (IC) and People Management tracks and allowing teams to promote engineers into both of these roles. This will mean having both Tech Leads and Team Leads. This does not mean having managers brought in from the outside who lack the technical chops. Our interview process for Managers has tough technical questions, and we weight the results accordingly. Smart technical people want to be managed by other credible technical people who understand how hard the work is and will share best practices that they can learn from.

As a big company, there are more resources, and there is no excuse for not modernizing the engineering organization to compete. Besides, it is not that costly to have clear career ladders and set expectations ahead of time so engineers know exactly what they can strive for in the long term.

I mentioned earlier that smart people will see through shallow perks but going above and beyond to extend learning opportunities for people is actually very valuable. Lots of places have a “pick a conference you’re interested in and go to it; we will pay for it.” Take this one step further and build out a technical excellence team that is encouraging folks to use this learning budget. This is precisely what we have at Jet now that we are no longer a small startup.

In general, creating a great learning culture within your engineering organization is incredibly important, but it is especially valuable when you are scaling the team and hiring more junior folks. A great learning culture is one that pushes people to participate in the specific technical communities they are a part of. This can be done by setting up groups to contribute back to open source and the larger tech community. Have the technical excellence team be made up of other technically-minded folks that can keep track of technical debt for the team and work with the product team to make sure it is paid back and systems don’t accrue rust.

Most big companies have to contend with legacy, but the absolute worst thing they could do is section off those legacy systems and let teams deteriorate over time and only work with old systems. Word gets around in the community, and no engineer wants to join a team working solely on legacy systems. While it may not be convenient for a big company to distribute out exciting, new work along with the maintenance and small tweaks of old things, it is an absolute necessity for both retention and acquisition of new engineers.

While a Google-sized, and resourced, company may be able to afford to have engineers rewrite entire old systems, most big companies can at least afford to allow teams to evolve or build anti-corruption layers on top of legacy systems. Most importantly, make sure these teams can add new features using new designs, patterns, and architectures so engineers can continue to grow and stay engaged even if part of their job is supporting legacy.

Great engineers want to work at companies that have a technology-driven culture. This will mean allowing teams to work in an Agile and modern way, empowering full stack teams that have business people, engineers, product managers, and user experience people to make decisions they see fit. The ownership to evolve the product as the business environment, and customer, changes. No one wants to move slow and have tons of processes and red tape. Moving slow means growing and learning slow. If we look at the most successful tech companies in the world, they all have manage to move fast despite their size.

In conclusion

Technology-driven culture that is a magnet for engineers means trusting teams a great deal to follow the strategy and hit the goals and KPIs of the company. It does not matter if the company is big or small. Empowering people in this way means they have ownership, and with this, they will get learnings and growth — but more importantly, they will take pride in what they build because they will also have to own it long-term. There won’t be some overseas support team to jump on when the system goes down. There should never be, and there is no excuse for this. But when you do add overseas teams, make them apart of the larger group and have them build features with the same exact structure the local teams do.

These are just a few of the ways I think organizations big and small can make themselves relevant in the engineering recruiting arena and retain smart people long term. It is important to highlight that the environment right now for tech talent has never been more competitive — at least not in my lifetime. However, somehow, with these tried and true methods, we have been incredibly successful at bringing in great folks and retaining them for the long-term. In my view, much of this has very little to do with money and perks.

You can follow me on Twitter where I started posting regularly about this and many other tech topics.


Big thanks to Avianne Tan and Chris Shei for their amazing editing help.