Challenges of Building a Strong Team
This blog discusses the challenges of building and managing a high-performance engineering team. These challenges are paired with ideas, techniques, and strategies for making tangible progress and reaching your team-building goals.
It opens with a discussion of the engineering recruiting process. Before detailing some successful techniques, we first attempt to debunk some common myths and conventional wisdom about recruiting that limit many people and teams. After deconstructing these counterproductive tendencies, we’ll discuss specific, industry-tested approaches to finding and landing top engineering talent.
If your company is growing, odds are good that you’re looking to hire software engineers. You know that hiring engineers is difficult, either from personal experience or because everyone tells you so.
Why Is It So Hard to Build an Engineering Team?
Building an engineering team is a multidimensional challenge. The high-risk, high-reward nature of technology startups means that some will be huge successes, but only very few.
The economics of venture capital place a huge importance on getting the absolute best talent, especially when it comes to engineers, who are typically the primary builders of a startup’s product.
Industry conventional wisdom compounds this problem by promoting the premise that some programmers are 10 times (or even 100 times) more valuable than the “average” coder. It’s also difficult to know how to identify top engineers without extensive hands-on experience, which is, of course, impossible to get in typical interviews.
Once you’ve finally found an engineer you think is good, getting that person to join your team is another daunting challenge. You’re probably competing against other attractive companies and facing unanswerable questions, such as these: How much should we offer? Should we extend our offer deadline? What are the candidate’s true decision-making criteria? And so on.
Finally, as you start to assemble a team of promising engineers, you confront one of the most neglected and misunderstood functions in tech startup companies: management. How will you help the people on your team be more productive, happy, and grow their own capabilities along with the company?
This blog is written for startup founders, engineering managers, and other technical leaders trying to build a team in a high-growth, competitive environment. Before we get into the details of potential techniques, considerations, and solutions for the challenges I’ve described, let’s consider them each in a bit more detail.
Tech Talent Is in Short Supply
The rise of computing technology has created an ever-increasing demand for people who can write the software to control nearly all aspects of our economy and industry. As a noted entrepreneur and investor Marc Andreessen puts it, “Software is eating the world.”
The software isn’t written for only desktop computers. It’s in everything, from toasters to laptops, to watches, to mainframe computers, to the systems that control all the life-sustaining infrastructure of the modern world. Tesla Motors isn’t a car company; it’s a software company that makes cars. Implementing the
Affordable Care Act was mostly a software problem (and one that had a few bugs). Google has a team of over 50,000 people to provide search results for one empty text box.
Unfortunately, the world’s educational system hasn’t produced software engineers to meet the rate of job creation. And it’s likely to get worse: “Employment of software developers is projected to grow 22 percent from 2012 to 2022, much faster than the average for all occupations. The main reason for the rapid growth is a large increase in the demand for computer software.”
In short, the world needs more programmers.
Tech Culture Exaggerates the Problem
While the engineering shortage is real, it also gets exaggerated in misleading and unproductive ways. Very much a part of tech culture, the difficulty of finding developers is one of the most frequently discussed topics in Silicon Valley—in the media, in coffee shops, and within companies themselves.
While it’s easy to simply complain, as many do, that there aren’t any engineers available to hire, it’s also lazy and not totally accurate. It would be more accurate to say that everyone is trying to hire the same small subset of engineers, and there definitely aren’t enough of them to go around.
Why are most companies looking to hire the same people? It starts with the notion of the 10x programmer—a coder or software engineer who is 10 (or more) times more productive than average. Whether or not you believe this disparity exists, enough people do that competition for possible candidates is fierce.
The problem is that you can’t truly and reliably identify 10x talent in your interviews. If you could, engineering salaries would vary by up to 10 times as well. Even at the height of a boom in Silicon Valley, engineers aren’t being offered millions per year in salary.
This hasn’t stopped some people from trying, however. The ideal candidate typically looks something like this
Bachelor’s degree in computer science (CS) from Stanford or MIT (advanced degrees are OK but don’t really add to perceived value)
Worked for a little while—but not too long—at a phenomenally successful company (Google or Facebook, for example)
Documented experience with the latest and greatest software development languages, tools, techniques, and frameworks (the specifics depend on the company and market)
The venture capital (VC) industry, which guides so much of what happens in Silicon Valley startups, has a unique approach to maximizing return on investment. VC firms are typically trying to land a small number (even just one) of “home runs”—deals that make them 100 times, or even 1,000 times the amount they originally put in.
For example, in 1999 two firms, Sequoia Capital and Kleiner Perkins Caulfield & Byers, each invested $12.5 million for 10 per-cent of a fast-growing search startup with a funny name.
At the time of this writing, Google’s market capitalization is near $400 billion, meaning that, even considering dilution and other factors, each firm’s stake would be worth well over 1,000 times the original amount.
This high-stakes, winner-take-all (or close to it) environment further fuels the notion that you must find the absolute best, the elite technical minds of the world, in order to succeed.
If you’re hoping to see an investment grow by at least 10 times, it’s logically consistent to look for 10x staff, including programmers. And since the early-stage startups are mostly programmers, that’s the role for which this problem is most acute.
The emphasis on finding premier engineers has permeated the culture and vocabulary of Silicon Valley. It’s not enough to hire a good coder—they need to be “rock stars” or “ninjas.” Not only is this approach arbitrary and elitist, it’s not even accurate.
A great engineer has little in common with a true rock star. Music and entertainment icons must relish the spotlight and play up a larger-than-life persona. It’s hard to imagine a successful engineering career with similar behavior. Nor would you want an engineer with the espionage, sabotage, and assassination skills of a ninja.
Nonetheless, startups everywhere advertise their need to hire a “rock-star coder” or “front-end ninja,” further perpetuating the damaging myth that only a select few people are qualified to help create great products.
Identifying Top Performers Is Difficult
Interviews are a tall order. In a few hours, you’re attempting to make a decision about a person with whom you hope to have a relationship for many years. You often spend as much time (or more) with your work colleagues than you do with a spouse or partner, but the courtship process is much, much shorter.
Let’s assume that 10x programmers do exist. How might you successfully and repeatedly identify them in a brief interview process? Great question. Even the best, brightest, and most resource-rich minds have trouble with this one.
Laszlo Bock, the head of all people operations at Google, made waves a couple of years ago when he admitted the poor predictive quality of their interviews:
Years ago, we did a study to determine whether anyone at Google is particularly good at hiring. We looked at tens of thousands of interviews, and everyone who had done the interviews, and what they scored the candidate, and how that person ultimately performed in their job. We found zero relationships.
It’s a complete random mess, except for one guy who was highly predictive because he only interviewed people for a very specialized area, where he happened to be the world’s leading expert.
Furthermore, interview techniques that have long been used in the technology industry might be misguided as well. Bock continues:
On the hiring side, we found that brainteasers are a complete waste of time. How many golf balls can you fit into an airplane? How many gas stations in Manhattan? A complete waste of time. They don’t predict anything. They serve primarily to make the interviewer feel smart.
Before you give up altogether and simply hire the next engineer who walks through your door, take heart that you’re not the only one facing this challenge. Thinking continues to evolve, especially around the use of behavioral interviews and tests of emotional intelligence as good predictors of success.
New approaches and techniques are being tried all the time, and there are ways to help identify the potential top performers for your future team—but they’re definitely not perfect.
Hiring Is Hard
Finding candidates is only the first step in a long process. Next, you have to hire them. Hiring is made complicated by several factors:
1. Hiring decisions by your team are often not unanimous, especially at first. Ideally, everyone would share the same enthusiasm for a candidate, covering all the aspects of what was tested. In reality, however, it’s typically much more difficult to build consensus and make decisions confidently.
2. Just as you’re looking for consensus on hiring decisions, the same is true of your overall hiring strategy, and people may have a wide variety of opinions. It’s important to agree on a strategy before conducting interviews; otherwise, your discussions may go in circles.
3. Each candidate is different. It’s your responsibility to understand them as well as possible so that you can craft the most convincing argument for why they should join your company, but this can be tricky. They may choose to withhold information, change their minds, or simply be skilled negotiators. People are complicated—there’s no one approach that’s guaranteed to work in all cases.
4. You need to be effective in selling people on the merits of your opportunity. Great candidates have many options, and it’s up to you to present your company and team in the most attractive way possible, for each specific candidate.
5. Your job doesn’t end when an offer is sent. You need to maintain contact and build a connection with candidates, which can be time-consuming but valuable. Help them develop an increasingly clear picture of what life will be like on your team.
Once an offer is accepted, you can finally relax, right? You’ve done it—landed a big fish—and now it’s time to celebrate.
Not so fast
Many things can still happen between the time an offer is accepted and the first day of work. The candidate may have a change of heart, external circumstances may force the candidate to change plans, there may be problems getting a visa or work permit, and so on.
The most important thing to do is stay in close contact with the candidate throughout the entire process. This communication will also start to build your working relationship, which is valuable for your long-term success together.
Management: The Overlooked Opportunity
Creating long-term success for your organization isn’t only about building a team. Fixing your recruiting and hiring process without also improving how you manage and retain engineers would be like trying to sustain a bonfire with nothing but kindling. You want your company’s fire to burn hot, but also for a long time.
Engineering management, especially at startups, is far too often neglected and overlooked as a core discipline, which is good news for you. Why? Because you can outperform the market. By investing a bit of time, attention, and resources into improving the management skills and the process of you and your team, you can reap long-term gains over your competitors in terms of productivity and team morale.
Compared to engineering recruiting, which is fiercely competitive, exhausting, and uncertain, managing your people effectively provides a relatively rich opportunity to deliver value.
If you’re not convinced this opportunity exists, consider the following financial calculation.
Let’s say your team is looking for another senior engineer, with experience in Python and the Django web framework. If you factor in the costs of a contingent recruiter bonus, onboarding time and expenses, and other general overhead for adding a new person, you might end up spending $30,000 on the hire. Maybe more.
What if you invested the same $30,000 training somebody on your team? Think about how far that money could go toward things like workshops, classes, blogs, online materials, and more. In some places, you might even be able to get a master’s degree. Or you could spread the money out and train your whole team.
Similarly, it tends to be cheaper, overall, to keep good people than to replace them. By providing the kind of career growth, work environment, and compensation people desire, you can reduce the number of occasions in which you need to hire somebody.
An Enlightened Approach to Recruiting
The first step in constructing your engineering team is recruiting some great people to join you.
For too many people and companies, recruiting is an afterthought. It’s considered an unavoidable nuisance that stands between you and having a productive team of builders who share your passion and vision for creating a great company.
Almost everyone starts by thinking this way, and I suppose it’s understandable. For many people, their first experience with recruiting is as the target of a recruiter’s search.
If you’ve worked in a technical field for any length of time, you’ve probably been contacted many times by recruiters about positions that are clearly not of interest, and these recruiters can waste your time because they haven’t done much research on who you actually are or what you actually want to do.
Unfortunately, most recruiters take a scattershot, or “spray and pray,” approach, contacting as many people as possible and hoping to get a few nibbles. Being on the receiving end of these queries will understandably make you cynical about the recruiting process in general. And LinkedIn, as the most popular medium for these requests, has developed a bit of a reputation as a magnet for recruiting spam.
As we’ll discuss later, this broken, frustrating system is an outgrowth of the contingent recruiting model. A contingent recruiter is paid only when a candidate is successfully hired, in the form of a bonus that’s typically a percentage of the new hire’s starting salary.
The appeal of contingent recruiting is obvious: You pay only for results. It aligns well with the thinking that recruiting isn’t an important function of your company, only a necessary evil that must be completed in order to move on. It requires very little investment on the part of the hiring manager, who simply enjoys the results at the end.
Startup founders and hiring managers know they need developers, and they want to hire somebody to solve this problem for them, so they can stay focused on their own work of laying out the product roadmap and planning business objectives.
Or at least, that’s the idea
The downside of contingent recruiting is that it creates a poor alignment of incentives between the hiring manager, recruiter, and candidates. It rewards the shotgun approach to contacting candidates, which creates a lot of extra work for the hiring manager, who must sort through lots of poorly-matched candidates, as well as the candidates themselves, who have to deal with tons of incoming requests that are a waste of their time.
Fortunately, there are better ways to build your team—models that properly align the incentives of everyone involved, including the recruiters themselves. Furthermore, the role of the recruiter is only one small part of the overall effort required to find and hire great people.
Companies that do this well, over long periods of time, and have structured their team, process, and culture to maximize their chances of success, are the ones I believe have achieved recruiting enlightenment.
This blog introduces the philosophy of enlightened recruiting. We’ll briefly discuss important cultural aspects of successful recruiting, including how you should think about your role in creating a recruiting strategy, and we’ll set the stage for a deeper tactical discussion in the following blogs.
What Is Recruiting Enlightenment?
An enlightened approach to recruiting includes the following:
Recruiting is a first-order company and business priority, equivalent to (or even ahead of) building the product, blogging sales, or anything else you consider highly important. Recruiting never takes a back seat.
Your company is committed to building expertise in recruiting. Rather than looking to outsource a solution, you invest the time and resources necessary to develop deep knowledge, skill, and intuition about recruiting through your organization. You may (and probably should) engage with external parties for education and help, but never as a complete substitute. No shortcuts.
You value and reward individual contributions to the overall recruiting effort. These rewards may take the form of referral bonuses, consideration in performance reviews, recognition in public settings, or others. However you choose to do it, you should make sure that everyone considers a contribution to recruiting something to be celebrated and part of doing a great job.
Everyone is involved in recruiting. Everyone. Each department or team in your company should have an idea of how they can help.
Recruiting is an integral part of your company culture. It may even appear in your mission statement or goals.
You hire people who care about recruiting and will be enthusiastic about helping you do it better. For each prospective hire, you consider their ability to attract, directly or indirectly, more great people to the company.
You’re willing to experiment with your recruiting and see what works—to take the extra time and resources to try different things, analyze the results, and never settle with the status quo.
Enlightenment does not come easily but can be incredibly valuable. The effort invested in learning the skills necessary for successful recruiting will pay off in meaningful, profound ways over the life of your company and your career hiring engineers.
Get Your Hands Dirty
Most hiring managers would prefer not to invest the time required to understand and perfect the recruiting process, and they would certainly prefer not to do it themselves. Getting your hands dirty, however, is a critical part of achieving recruiting enlightenment.
An important prerequisite for these, or any other recruiting approaches, to work is for you (the hiring manager) to first implement them yourself. Don’t tell someone else what to try—do it yourself, refine the idea, and then, only when you’re sure that it’s working, instruct others on how to proceed.
To put it in engineering terms: Prototype the solution, iterate rapidly, and when you’re satisfied with the results, look to scale it up quickly.
When I started as VP of Engineering at Thesis Scientist, I was given a clear mandate to scale up the technical team as fast as possible. Based on my previous years of experience, I was confident we could do it, but I was also aware that the current team had struggled quite a bit with the task. (This was, of course, why I was hired.)
The engineers at Thesis Scientist had contracted with several contingency-based recruiters to bring them, candidates. As I described, this appears to be a logical strategy.
What transpired, however, was also what I described—the team was stuck in a quagmire of mediocre candidates, wasting tons of engineer time and building a growing sense of frustration and cynicism with the process.
After taking stock of the situation, my first step was basically to push the reset button. We canceled every existing contingent recruiter agreement (with one exception), gave up our non-technical in-house candidate screener, and took over the entire process.
For the next month, I spent all of my available time searching for candidates directly, doing all phone screens and initial interviews, and coordinating the entire interview process.
If this sounds like a lot of work, it was. But after a month or so, I had a much better idea of the answers to the following critical questions:
What sources are the most productive in terms of finding qualified candidates?
Within these sources, what search terms and filters produce the best matches?
What candidate attributes correlate most strongly with success in our interviews and work performance when hired?
Is our interview process effective in filtering out poor candidates and selecting good ones?
Are we asking the right questions in our interviews?
After a month or two, we were starting to see some improvements. The overall number of interviews had gone down, and the quality had gone up, making recruiting much less burdensome and frustrating for the team. And, of course, we had started hiring some good new people.
At this point, it was time to start scaling things up. This meant primarily two things:
Bringing more engineers into the process, so that they could help evaluate candidates and conduct interviews. I couldn’t do the whole thing forever.
Finding some recruiters, either internally or externally, who could understand, replicate, and even improve the process I had established, broadening our reach and increasing our candidate flow without compromising the quality.
Once you’re enlightened about recruiting, you’ll appreciate that the way to hire a recruiter is similar to hiring nearly any other professional—you do the research to find somebody who is skilled at the craft and pay them for their time. Yes, you’ll spend a lot of money before making any hires, but in the long term, with properly aligned incentives, you should see much better results. (If you don’t, you chose the wrong recruiter.)
Furthermore, with your own personal experience, you’ll be more effective in guiding recruiters toward what works, building a truly collaborative relationship.
Recruiting as a Core Company Principle
Thesis Scientist’s engineering team has five core principles that guide our activities and influence individual decision-making:
Ship Early and Often
Only One Project at a Time
Testing Is the First-Class Activity
Communicate Openly and Frequently
Always Be Recruiting
As you can see, recruiting is up there with everything else. It’s just as important to our culture, both now and in the future, as anything related to the development or technical work.
By “Always Be Recruiting,” we mean that engineers, along with everyone else in the company, should be looking for every opportunity to find, entice, and land great people for our teams.
Every interaction with someone outside the company is an opportunity to spread positive information into the world, or to connect, even if it’s the beginning of a second- or third-degree link, with somebody who might be interested and able to help you out.
If you think about recruiting only during predefined, isolated times, you’re missing out on countless serendipitous opportunities to make valuable connections. Most of them won’t go anywhere. But some of them will—even if they take months or years—and you won’t know ahead of time which those will be. Keep your mind in recruiting mode at all times, and train your team to do the same.
Six Destructive Myths About Technical Recruiting
Before we discuss the details of how to build a recruiting strategy, we need to dismantle the destructive thinking that surrounds technical recruiting today. This blog details six specific misconceptions about recruiting and proposes some alternate ways of thinking.
Myth 1: You Need to Find More Candidates
Almost everyone has the same idea about how to solve the hiring problem: find more candidates. It’s easy to see why—filling the top of the funnel is a simple way to increase your hiring output without changing anything about your philosophy and process. It also allows you to outsource the work required, typically to third-party recruiters.
Here’s my response:
Finding more candidates is the hardest possible way to solve your hiring problem.
Of course, this approach can work, but you should look for some easier and more cost-effective alternatives as well. The first step is to identify things you’re doing to artificially limit the pool of possible candidates. Myths 2–5 contain more detail on this topic and common hiring pitfalls.
Second, you may not be considering all the ways to take advantage of your current resources. Instead of focusing everything on hiring a senior iOS engineer, is there someone on your team who could get there in a few months with the right amount of support and training? It may end up being cheaper and faster, when you consider the time taken and recruiter bonuses paid out, to train someone into the role than hiring externally.
Finally, you may not need more candidates; you may need better candidates. Your recruiting process, and the people helping you with it may not be the right ones for the challenge.
We want to make recruiting and hiring as deterministic as we can. Read on.
Myth 2: Dealing with Visas Is Too Hard
Earlier in my career, I viewed employment visas as an intractable problem. In my first experience as a manager, I assumed that hiring people from other countries were going to be expensive, difficult, and risky. Every situation is different, but none of these things is necessarily true. The trick is learning to recognize and handle all the situations that come up.
Learning how to recruit, hire, and manage people who require sponsorship to work in the United States is different from what you might be used to, however. They have different concerns, requirements, and considerations, some of which might be surprising or even counterintuitive to you.
The ability to maintain their visa status, or work toward a green card and citizenship, will often trump just about everything else, including compensation or job details.
Furthermore, requirements are placed on them by their visas that you might not fully understand. For example, an H-1B (one of the most common work visas) makes it difficult for a spouse to find work, which puts additional pressure on an employee with a family to be a stable provider.
Yes, navigating the visa process is a lot of work and costs money, but if you’re trying to recruit and hire without investing any money or effort, you need to reset your expectations immediately. When it comes to finding great people for your team, this is an investment worth making, and the first step is to find an immigration attorney who can help you.
In the later blog, sections go into a lot more detail about the various types of visas, considerations when recruiting and hiring people who require a visa, and specific recommendations for your own strategy.
Myth 3: Algorithmic Knowledge Trumps Everything
One day, my team was deep in an unusually long hiring meeting about a particular candidate. We were stuck in a bit of a hiring drought, and it seemed like a lot of people we interviewed just weren’t quite good enough.
Not wanting cynicism to overtake the process, I polled the team about the qualities most important to them in a prospective candidate. The list was as long as it was interesting, and I was surprised by the wide range of attributes people care about. The top five are listed in the following sidebar.
1. The candidate has something to teach me, such as new skills, techniques, or conventions. I will learn and grow in my own work by virtue of this person being on my team.
2. The candidate loves programming and technology. They share my enthusiasm for creating great software and building a product.
3. The candidate is pleasant to be around. They take feedback well, collaborate with others, know when to ask for help, are open to learning new things and ways to work, and have multiple interests.
4. The candidate takes pride in their work. They have an attention to detail, aim to make a great product, and emphasize code readability and reuse.
5. The candidate thinks entrepreneurially. They think about how to improve all aspects of a product and company and are proactive about problem-solving.
Notice anything missing that you might have expected? How about, “The candidate can implement merge sort”? Conspicuously absent is any kind of technical test or algorithmic puzzle.
Clearly, we require a minimum set of technical skills in order to trust someone to add to our code base safely and without creating mountains of future problems. But perhaps we’re overweighting the importance of those skills in the grand scheme of things?
Silicon Valley giants like Google and Facebook are famously algorithm-heavy in their interviews, choosing to do most of their interaction at a whiteboard (we’ll come back to this topic later), and many smaller companies have made the totally rational decision to emulate their technique. But what’s right for them may not be right for you. If you’re a small startup, you have different factors to consider.
In particular, a large company needs to make sure its interview results are consistent—across time, location, interview team, and a lot of other variables—and in some ways are reduced to the lowest common denominator in their process. Algorithmic knowledge is more empirical than almost anything else you can test. If your team is small, you have the opportunity to create a more insightful interview process. Take advantage of it.
Furthermore, influential works such as The Mythical Man-Month have entrenched the idea of a 10x programmer—a software engineer who is (at least) 10 times more productive than an “average” engineer. This ongoing debate is spirited on both sides, but no matter which side is right, this topic has affected how teams conduct interviews.
If you’re looking to find someone 10 times better than average, what kind of questions can you ask? How do you determine if their communication skills are 10x? Or their personality?
Teams have gravitated toward algorithmic questions because they lend themselves more readily to a mathematical, empirical comparison of candidates. By measuring runtime complexity, time to complete a task, lines of code written, or bug rate, for example, you can decide whether someone is 10 times better in this dimension. The danger is in extrapolating this thinking to also decide that they’re 10 times better as an engineer, overall.
Which is related to…
Myth 4: You Need to Find People with Experience
Some experience is required, yes, but probably not as much as you think.
I don’t intend to debate the particular requirements of the jobs you’re trying to fill since every situation is different. My point, which applies to almost every one of these situations, though, is this:
If you find yourself rejecting candidates primarily because they need more experience, consider making an investment in providing that experience yourself.
Sure, it would be great for people to be fully productive from day one. More realistically, however, figure out how to invest more in training. For example:
Develop a training or onboarding program for new hires.
Encourage or require pair programming for more knowledge transfer.
Add some slack into the product timeline, allowing for more learning.
Were you fully qualified for every new role you started? Did someone ever take a chance on you? Calculated risks are intrinsic to all parts of the startup experience, and hiring is no exception.
Furthermore, if you take the same amount of time, money, and effort required to find a great, experienced employee, and put that into training and mentorship for people you already have, you might be able to create an experienced employee rather than find one.
Myth 5: You Need to Find Local People
The San Francisco Bay Area houses approximately 7 million people. By my math, that’s approximately 0.1 percent of the world population. Even if you account for the relative concentration of skilled technical and creative people, it’s still a small slice of the world’s talent. By comparison, how well would your business run if you threw away 99.9 percent of your sales leads?
Once you’ve decided to expand your search geography, you’ll have to decide on an important cultural question: How important is it for your people to work in the same physical location?
Consider it carefully, as it’s one of the most important decisions you’ll ever make. Both options have pros and cons (and elicit strong opinions). Let’s consider each side of the argument.
Why You Should Build a Local Team
In 2013, Yahoo CEO Marissa Mayer made waves by ending Yahoo’s liberal work-from-home policy. Many employees valued the flexibility the policy offered, but for a company struggling to find a new, more relevant identity, Mayer felt it was an important step. From the Yahoo internal memo:
To become the absolute best place to work, communication and collaboration will be important, so we need to be working side-by-side. That is why it is critical that we are all present in our offices. Some of the best decisions and insights come from hallway and cafeteria discussions, meeting new people, and impromptu team meetings. Speed and quality are often sacrificed when we work from home. We need to be one Yahoo!, and that starts with physically being together.
Many other companies have succeeded while placing the same importance on being together. Google now has over 50,000 employees spread over 70 offices worldwide, but still demonstrates a strong preference for bringing its top technical talent to Mountain View.
Individual productivity may be higher when working remotely, but if communication and collaboration are paramount for your team’s work culture, you can’t do any better than having everyone in the same physical space.
Why You Should Build a Distributed Team
The controversy over Mayer’s remarks shows just how divisive this issue can be. Many companies have also built large, successful teams in an entirely distributed fashion.
The primary advantage is obvious: you have a much larger pool of people from which to recruit. Not everyone wants to live near your office or is willing and able to relocate, even for a great opportunity.
There are secondary advantages as well: by creating a culture that supports remote and distributed work, many people feel grateful for the unique opportunity it provides them to work for your company in a way that affords them more flexibility in their personal lives.
This freedom can be abused as well, but when done right, creates a positive environment. The key to this approach is to get the right tools and processes in place and make sure they’re consistently and appropriately used.
It’s critical that every team member, no matter where they sit, has the same information, access, and influence they would have anywhere else. Chat apps such as Slack and HipChat are invaluable, as are other electronic tools for communication, project management, and supporting technology development. Videoconferencing, in particular, is useful in creating shared understanding and context, as is the next iteration of that particular technology: the telepresence robot.
Myth 6: You Should Avoid Recruiters
Like any field, technical recruiting is full of a variety of people. They’re not all the same. If you’re working with a bad recruiter—one who is wasting your time or doesn’t have your best interests at heart—you haven’t put enough effort into finding a good one.
Working in technical recruiting is a lot like real estate. There are low barriers to entry, the potential upside is high (and typically commission based), and communication and networking skills are essential. As in real estate, this attracts a wide variety of people to the field, and you need to quickly separate the ones who can help you from the ones who can’t.
How to find and work with great recruiters is covered in the next blog. Don’t be scared off by the price tag or stories you may have heard from others. Recruiters are an indispensable resource for building your team in a competitive environment.
Recruiting software engineers to your team is difficult, arduous work. By breaking down some of the common myths that limit success in this endeavor, you can maximize the return on your investment of time and money into recruiting.
Nine Steps to Recruiting Success
Developing a winning recruiting strategy takes time and effort. It can seem overwhelming, so let’s break it down into specific steps. Here’s what we’ll cover:
Prepare Yourself for the Grind
Prepare to Spend
Identify the Top Qualities to Look For
Make Your Company Attractive
Learn Where to Look for Engineers
Develop a Strategy for Visas
Develop Your Training Program
Find a Recruiter
Establish Long-Term Solutions
The steps are discussed in roughly the order you’ll want to address them, although obviously, every situation is different. Let’s get started.
Step #1: Prepare Yourself for The Grind
Recruiting isn’t magic. It’s not really even an art. It’s a grind. A full-court press. It requires the willingness to do anything and everything, all the time, to maximize your chances of success. The first step on your path to recruiting success is to reset your expectations and prepare yourself for “The Grind”.
For arduous or repetitive tasks, this means coming up with a work style or pattern that you can sustain. If you’re the one searching LinkedIn and contacting candidates, set aside a portion of every day for this task. Don’t let yourself procrastinate the task away, or let it be trumped by seemingly more urgent things that will inevitably come up. Set goals based on quantity for this time, such as the examples shown in the sidebar.
EXAMPLES OF QUANTITATIVE RECRUITING GOALS
Contact at least five new candidates
Spend 30 minutes searching LinkedIn or other job boards
Spend 10 minutes with each person on your team, asking them about potential contacts
Post jobs on at least three different boards
Creative professionals know the importance of quantitative goals and how they can lead to qualitative results. A writer might write several thousand words a week, every week, even without a compelling topic.
A photographer might try for 250 photos per day. Regular practice leads to mastery, but even more important, it increases the chances of having one spectacular success. The more chips you can spread around the roulette table, the higher the likelihood you’ll hit a winner.
So, like the artist toiling away at his craft without a clear result in mind, you need to be persistent, disciplined, and trust that in time, success will be yours.
Similarly, you need to prioritize your recruiting activities above everything else you do. Yes, everything. Speed is essential. Candidates will pick up on your responsiveness, as it’s an indicator of how truly interested you are, and how much you care about their interests and goals.
Big companies take a long time to usher candidates through their lengthy hiring processes. Use this lethargy to create a competitive advantage for yourself. People want to go where they feel appreciated, and one of the best ways you can do that is to stay engaged and, indeed, aggressive throughout the entire process.
Whenever an action or information is required from you, make sure you handle it within 24 hours. Aim to go from initial contact to a hiring decision within seven days. If a candidate can come in tomorrow (when you’re busy) or next Tuesday (which is open for you), find a way to make it happen tomorrow.
Step #2: Prepare to Spend
If you want to build a top-notch engineering team in today’s competitive tech market, you’re going to have to spend some money. There are different ways to spend it, but almost everything you can do to increase your chances of success is going to come with a price tag. There’s no free lunch here—the less expensive approaches require more time and effort.
How much will it cost? That depends on how urgent and specific your hiring needs are. The upper bound would be a 25 percent contingent recruiter bonus, but as you’ll see later, I think there are better options. My rule of thumb is that, for each hire, expect to invest at least $10,000, 100 hours of your time, or some combination of the two. To put it in a formula:
X of your dollars + Y*100 of your hours >= 10,000
Where does the money go? Lots of places, if you look at the entire task of finding, hiring, and getting a new person started on your team.
The table shows some approximate numbers for how much various aspects of recruiting and hiring cost, per hire.
Recruiting Expense and Approximate Cost
Contingent recruiter fees- 20-40K
Contract recruiter fees- 5K-15K
Interview trips- 1K-2K
Visa applications- 2K-10K
Relocation - 2K-10K
Referral bonuses- 1K-5K
Job board postings- 500-1K
Website improvements- 1K-2K
Even if you don’t incur all of these costs for each hire, you can see that it adds up quickly.
One encouraging thing to keep in mind is that your first few hires are likely to be your most expensive. When you start a search to fill a new position, there are ramp-up costs—in both time and money—but as you develop effective recruiting channels and screening filters, the average cost per hire will decrease. If you’re working with a recruiter, they’ll build a stronger sense of what you’re looking for as well, thereby decreasing the time (and cost) to make a hire.
Step #3: Identify the Top Qualities to Look For
Conventional wisdom in Silicon Valley is that you need to find ninja-rockstar-superstar engineers, mythical creatures that are only occasionally seen in real life. Some even use the term “unicorn” to emphasize this status. Hiring anything less will consign your company to eternal mediocrity. This thinking has led to the third myth, Algorithmic Knowledge Trumps Everything.
While this knowledge may, in fact, be the most important thing for your team (for example, if you’re building a team of quantitative analysts for a high-frequency trading hedge fund), don’t start by assuming it to be true. Take a long look at what qualities are the most valuable to you, discuss it with your team, and build consensus about what the ideal candidate actually looks like.
A good way to start is to look at recent successful hires and see what qualities stand out in those people. What aspects of their personality or skillset make them successful? How can you find or evaluate those qualities in new candidates? Make a list and use it to help craft your interview plans. In hiring discussions, refer back to the list, asking for your team’s opinions on how it applies to the candidate.
we debunked the supremacy of algorithmic knowledge as a hiring signal and discussed some other characteristics to consider instead. These, and others your team comes up with may be very useful in identifying great candidates whom you might otherwise have overlooked.
In my years of hiring, however, one particular quality stands out above all others in predicting the success of a prospective software engineering candidate: Teachability.
Similarly, it’s the factor that also rules out more candidates than any other.
Every new hire is going to spend time learning and growing into a new position. No one is a perfect fit right away. The question, therefore, is, how much of an investment do you need to make in this person, and how much will it pay off?
Junior candidates will likely require more mentorship than senior ones, but in both cases, some will be required. Even experienced candidates will need to do some amount of learning—about how your team does things, where their experience can best help, and the nuances of your product and business. Skilled programmers will need to learn your engineering process, codebase, and conventions.
At all levels, the interest and aptitude for learning are a strong, clear signal for how well someone will do in your organization.
Your company is growing, and you want people who will grow with you. Think beyond the challenges of today. You need people who will learn in ways that enable them to solve the problems of tomorrow.
Finally, in all my companies, and especially at Thesis Scientist, we’ve found that we just generally like being around people who love to learn. It’s a wonderful, infectious spirit that’s ideally suited for teams that are on the rise. Culturally, it’s a good fit for the kind of environment you want to foster.
So how do you determine if someone is teachable?
Throughout your interview process, look for signs that your mentorship of the candidate will be productive. Let’s break it down into two separate but important questions:
Is this person capable of learning?
Is this person interested in learning?
You need to be confident that the answer to both questions is “yes.” Here are some specific things to look for:
Does the candidate receive and incorporate feedback from the interviewer? If you suggest a way to approach a problem, do they listen? You should be clear that you’re not trying to trap them with trick questions. See how they respond to your feedback and incorporate it into their work.
Does the candidate apply things discussed earlier in the interview to subsequent questions or problems? This is a great way for them to demonstrate that they’ve learned something and are receptive to feedback.
Does the candidate communicate well and have an active dialogue as you work through problems? Effective communication during the interview suggests that you can look forward to productive work sessions with this person.
Is the candidate able to talk about past projects where they’ve tried to learn things beyond strictly what was asked of them? Have they shown that they’re self-motivated to learn, improve, and share knowledge with others?
Being “teachable” means that a person is receptive to testing out and trying new approaches. The people on your team will be mentors and colleagues for any new hires and will want to share their knowledge and perspectives. The willingness to learn, and to consider new approaches to solving problems, will be highly valued by your team and will help them embrace a potential new teammate.
Whether you decide that teachability is your top, must-have quality, or something else is, the most important thing you must to do is develop a clear picture of what you’re actually looking for in a candidate, and how it correlates with on-the-job success.
Step #4: Make Your Company Attractive
First impressions make a big difference. Imagine you’re selling a house. Would you spend thousands of dollars on marketing, trying to drum up interest for an open house to show it off, and then neglect to mow the lawn or make sure the windows are clean? Of course not. To borrow a phrase from the real estate industry, you want to make sure your company has curb appeal.
Your Web Site
The first place to consider is your company website, as it’s typically the first place an applicant will go to learn more about an opportunity, whether they were referred by a friend or found you on a job board. Does your site convey the correct impression of what it’s like to work there, and provide a positive signal to the kind of person you want to hire?
Candidates now often look for information about company culture before the details of a particular role. More than knowing what they will do at your company, they want to know why they will love doing it.
Job descriptions for software engineering positions all start to look the same after you’ve seen a few, and most candidates already have a pretty good idea of the day-to-day details—writing code, shipping product, fine-tuning your application stack, and so on. To pique the interest of a potential applicant, therefore, you need to focus on the peripherals. For example:
How does your team communicate? What tools do you use?
How do you foster collaboration?
What new things will new employees learn if they work there?
How do people grow in their careers? Are there examples?
Why is working there fun?
Similarly, don’t go overboard highlighting all your fancy perks, unless they truly are unique. These don’t set you apart and just take up space and attention that could be used to express what does make you unique. As Ben Horowitz writes, “Every smart company values their employees. Perks are good, but they are not culture.” In crafting your online presence for potential employees, focus on your culture.
Humans respond positively to other humans. Showcase your team and give it a human feel. Nobody dreams of working for a faceless, unfeeling corporate monolith. Even if your company is huge, there are smiling, caring people making it tick. Show that to the world.
The “About Us” page is critical, and under no circumstances should you consider skipping or shortchanging it. People have learned that this is the first stop to learn more about the actual people in the company.
And on this page, the first person they will read about is the CEO. Culture flows downhill, so it’s essential that you project a CEO persona that fits with your core values and will inspire confidence about what your company is truly like.
Some companies show personal profiles only for senior management, and some aim to have equal billing for every single employee. Both approaches are fine, but keep in mind that it’s important to keep the page up to date. Having incorrect or outdated information on your site chips away at your credibility.
This may seem self-evident, but it’s also essential to have an accurate, current list of your job openings on your site. You don’t want to turn away talented people simply because you haven’t gotten around to adding that new mobile developer position yet. Some people will contact you to see if there’s an opportunity for something that isn’t explicitly listed—but most people won’t.
Your job descriptions should also lead off with information about company culture, selling people on why you’re such a uniquely fun and exciting place to work. The job requirements come at the end. Why?
For many applicants, this may be the first thing they see. For example, they might receive a direct link to a particular job listing from a friend, or click through to a listing from a job site. Maybe they’ll eventually click over to your “About Us” page or other company pages, but maybe they won’t.
Always be selling. Use every opportunity to convince people that you have a great place to work. Even if it doesn’t work out for them, they may pass this information on to somebody else.
Most job descriptions focus too much on simply what the company wants. “Five years Java experience.” “CS degree.” “Proven track record of shipping great products.” What most are missing is a description of what somebody will accomplish by working there. For example, instead of this:
Candidate must have two years of experience building web applications with Django.
Try something like this
As part of our team, you’ll leverage your experience in building Django web apps to help architect the next generation of features in our 2.0 product.
Always be selling. Make it sound interesting. Assume you want to get everybody who reads your description to be excited about the opportunity.
Profiles on Other Sites
Once you’ve added slick, enticing job descriptions to your own website, replicate them on other sites where people might be looking for jobs. In particular, use AngelList and LinkedIn.
Make sure that your company profiles, and all job descriptions on other sites, are accurate and kept up-to-date. Check that you’ve included all the appropriate keywords that a good candidate might be using to search. Assume that the first thing somebody will do, after seeing a job post from your company, is click through to your profile on that site. Don’t lose them at that step.
Step #5: Learn Where to Look for Engineers
When you start your search, your ideal candidate will be:
Local to your office
From a top 10 school
Looking for a job
Passionate about your product or market
Highly experienced in the skills you need
Unfortunately, unless you’re Google or Facebook, you’ve narrowed the population down to essentially zero. To have success, you’re going to have to compromise on at least one of these criteria.
I suggest you expand your search in two ways:
Look outside your local area
Look for students or alumni from the “second tier” of engineering schools
First, you need to decide that you’re willing to recruit from other regions. This means, by extension, that you’re willing to either pay for people to relocate to you or build a distributed team. Both can work—but you should be clear on what your strategy is.
If you’re trying to build a local, co-located team, then obviously you’ll need to relocate people.
Be clear about your expectations. Make sure people know that they will be expected to relocate if offered a job. Don’t let that be a surprise at the end.
Be clear about what you cover. State your relocation policy up front, so candidates aren’t worried about the potential costs.
Be generous. Paying to relocate somebody is almost always going to be much less than a recruiter fee, and well within the range of what you should be expecting to pay for a hire.
There are some tools that can help you identify people who not only are willing to relocate but might actually be excited to do it. Obviously, being in a highly desirable location, such as San Francisco, makes this more likely.
AngelList (http://angel.co) is a great resource for finding people interested in startups, and it has some useful and powerful search tools for both candidates and employers. In particular, it offers a search filter called “Will Move LinkedIn, the most popular tool for finding candidates, doesn’t have quite so precise a filter. Even so, you can be creative.
For example, search for profiles with the term “relocate”. More than a few people will have indicated their willingness to move in their profile description.
The next level of searching is to target your efforts at other, remote locations. Keep in mind that as you do so, your chances of success go down, and the effort required goes up. You’re targeting a minority of the population, so you have to go through a lot more people to find the right ones. This is a good time to remember that you’re in The Grind.
Rather than recruiting from everywhere, pick one or two specific areas to focus on. Research local companies, communities, and other resources that you would know about if you were located there. For example, if you’re in San Francisco, you might target your searches at, let’s say, Salt Lake City.
The University of Utah has a great Computer Science department, there are a number of successful technology companies in the region, and there are thriving open source software and developer communities. If you’re just a little bit lucky, you’ll find a few folks who are curious about what it would be like to live and work in Silicon Valley or San Francisco, or who are willing to work remotely in a distributed team.
Searching other locations is also a good way to leverage the effort of a contract or in-house recruiter. Point them at a few places to target and see what happens. They’ll have more time than you to cast a wide net and see what’s caught.
When recruiting in other locations, remember to be upfront about your expectations, in terms of relocation or remote work. It’s not fair to a candidate to spring this information on them midway through the process.
When hiring remote employees into a distributed team, there are some good resources available. Sites such as We Work Remotely (https://weworkre-motely.com/) and the Hacker News (https://news.ycombinator.com/)
“Who’s Hiring?” threads have an emphasis on remote work and good communities of people looking for these opportunities. Searching AngelList and LinkedIn can also be targeted at people looking for remote work.
For companies in the United States, searching for people in other countries can also be productive, but make sure you understand all the visa, immigration, and other considerations before you get started.
The “Second Tier”
Recruiting engineering students directly from school, or in their first one or two years of work, is a great way to find highly talented people with a lot of growth potential. When recruiting new college graduates to your company, it’s tempting to go after the top schools. This makes a lot of sense. You want the best and brightest to come in and help lead your company into the future.
There may actually be more opportunity, however, in the next layer—say, anywhere from 11 to 50, and beyond. While all the big companies and deep-pocketed recruiters go after MIT and Stanford, there are lots of really talented, bright people at places like Georgia Tech, Michigan, and the UC schools.
For example, here are the top 10 U.S. Computer Science schools in the most recent US News & World Report rankings:
Carnegie Mellon University
Massachusetts Institute of Technology
University of California—Berkeley
University of Illinois—Urbana-Champaign
University of Washington
Georgia Institute of Technology
University of Texas—Austin
Visit a job fair at any of those schools and I bet you’ll see a huge recruiting contingent from Google, Facebook, and other name-brand tech companies. It can be hard to stand out in a crowd like that. But let’s look at the next 38, schools ranked 11-48:
California Institute of Technology
University of Wisconsin—Madison
University of California—Los Angeles
University of Michigan—Ann Arbor
University of California—San Diego
University of Maryland—College Park Harvard University
University of Pennsylvania Brown University
West Lafayette Rice University
University of Southern California
Johns Hopkins University
New York University
Pennsylvania State University
University of California
University of Minnesota—Twin Cities
University of Virginia
Ohio State University
Rutgers, The State University of New
University of California
University of California—Santa Barbara
University of Chicago
Stony Brook University—SUNY
Texas A&M University—College Station
University of Arizona
University of Colorado—Boulder
University of Utah
Washington University in St. Louis
Arizona State University
North Carolina State University
Each of those schools has a lot of great candidates too. They might not be as plentiful, but they’re there. And a school like Ohio State is so much larger than, say, Stanford, that in absolute terms you may actually find more people there. If your screening and hiring process is sound, and you’re willing to put in a little effort, you’ll have a lot of success expanding your horizons and your pool of candidates.
Step #6: Develop a Strategy for Visas
It’s no secret that some of the best and brightest engineers are from outside the United States. If you really want to put together the best team possible, at some point you’re going to have to hire someone who requires a work visa.
The registration and legal fees can add up, but still usually end up being less than our upper-bound recruiter bonus. Perhaps even more daunting are the myriad options and complex rules that govern the process. There are many types of visas, each with their own criteria and restrictions.
For all of these reasons and more, your first step in creating a visa strategy should be to find an immigration attorney—someone who can help you and your prospective employees through the process, minimize your administrative burden, and maximize your chances of success. (This is probably the right time to point out that this blog’s author is not a lawyer.)
You should plan to offer the services of your attorney to the people you hire. Both you and your employees have the same goal in mind, and you’re best off having an attorney who knows all of the relevant information on both sides. Consider it part of your recruiting expenses.
There are many types of visas, but here are the ones you’re most likely to encounter or find useful in building a startup:
TN (for Canadians and Mexicans)
E-3 (for Australians)
F-1 / OPT-STEM
Green Card (Permanent Residence)
Here’s a quick overview of each. Please keep in mind that the laws and regulations surrounding U.S. immigration policy can change frequently, so it’s always wise to check for the latest information.
Probably the most commonly discussed of all U.S. work visas, the H-1B is a three-year visa for foreign workers in specialized fields, which generally includes engineering or development jobs. Availability for this visa is strictly limited and often exhausted before the end of each year.
There’s a yearly limit of 65,000 granted visas, plus an additional 20,000 for applicants holding Masters degrees. (There are also some other uncommon exceptions.)
If there are more than 65,000 applicants in the initial filing period, a lottery is held to determine whose applications are accepted. In 2014, for example, 172,500 applications were received by April.
Once the limit has been hit, that’s it for the year. Consider the following example: You have a candidate who will need a new H-1B visa. It’s June, and you discover that the annual cap has already been reached. You simply won’t be able to hire that person (on an H-1B) until at least the following year, when you can apply for that year’s lottery.
To be included in the lottery, the H-1B petition must be filed during the first week in April. Even if the petition is selected in the lottery and approved, the H-1B employment cannot begin until the following October 1. (Normally, this wait is not a problem for recent grads, who may have the authorization to work for any employer in their field for at least 12, and up to 29, months.)
An H-1B can generally only be extended once, for a total of six years. However, this six-year limit can be extended by starting the Green Card process (specifically, getting an approved I-140 Immigrant Petition), until a decision is made on the Green Card application. This is one reason why Green Card sponsorship is so valuable to provide. Not only does it provide a path to permanent residence, it also extends the life of the H-1B.
A person who is already in H-1B status (e.g., working for another employer) is not subject to the annual cap, and can be hired immediately (as soon as the H-1B petition can be prepared and filed).
If an employee is terminated while on an H-1B, they may have to leave the country. There is no guaranteed “grace period.” However, H-1B employees can normally transfer to another job if the new employer files an H-1B petition within 30 days.
For more details on the H-1B, please consult an attorney or additional legal resources.
Because of the complex factors surrounding H-1B employment and life in the United States, there some additional, and possibly unexpected, things to consider. Here are some other important considerations when dealing with the H-1B or people holding it:
It’s very difficult for spouses of H-1B holders to get work authorization. Keep this in mind when considering an employee’s personal situation—they’re probably making a decision knowing they have to be the sole financial provider for their family. (At the time of this writing, regulations are pending that would grant employment authorization to some H-1B spouses.)
Job security is possibly a higher priority because it’s required to continue residing in the United States.
Once people have an H-1B, they’re careful to protect it. They may be more risk-averse than your other employees and candidates.
The unique circumstances of the H-1B visa mean that the process of hiring a good candidate—extending an offer, negotiating, aligning incentives, completing all of the paperwork—may surprise you if you’re not familiar with it.
To start with, people who need this visa have a bit of a different mindset than, for example, a U.S. citizen, when it comes to employment offers. For example:
They will often make decisions simply to maximize their chances of safely remaining in the country. This is completely rational, when you understand their perspective, but may surprise you if you don’t. Offers that look superior in every other way might be declined because of this one consideration.
After visa stability, they are probably focused next on the length of time to get their Green Card (become a permanent resident). If they’re partway through the process with one company, they may prefer to continue there, even if the position is inferior to other opportunities. It also depends where they are in the process, and how much of a reset they’re risking.
When leaving the country, they will probably need to obtain a new visa entry stamp from a U.S. consulate. This can take a while, up to a few weeks, so vacations outside the country tend to be longer and less frequent.
Thousands of highly qualified professionals join U.S. companies every year on H-1B visas. Learning how the process works will help you recruit from this talent pool.
Technically not a visa, TN status is a special program available to citizens of Canada and Mexico. Created as part of the North American Free Trade Agreement (NAFTA), it allows people in the United States, Canada, and Mexico to work in each North American country.
Applying for TN status is very similar to the process of obtaining a work visa such as the H-1B. It’s a relatively straightforward process, but does require proof of employment (such as a job offer) before entering the United States. The TN visa has a couple important advantages over the H-1B:
There’s no annual limit.
It can be extended indefinitely.
It is faster.
Canadian TN applications are submitted at the border or at an international airport in Canada and are normally adjudicated within an hour. Mexicans can apply at a U.S. Consulate, a process that may take a week or two. TN status is not transferable. If the holder wants to take a new job, they have to leave the country and restart the process.
Similar to the TN program and NAFTA, the E-3 visa was created as a result of the Australia-United States Free Trade Agreement (AUSFTA). It applies to Australian citizens with professional training and also has many advantages over the H-1B:
Although it has an annual limit of 10,500 visas, this number has never been reached.
It can be extended indefinitely.
Spouses of E-3 holders may also work in the United States without restrictions.
The application fees are low.
If done quickly, an E-3 holder can successfully transfer to a new job without returning to Australia.
The F-1 is one particular type of student visa that permits foreigners to study in America. It requires the recipient to have a full study schedule and strictly limits the ability to work.
After graduation, however, F-1 holders can apply for Optional Practical Training (OPT), which permits them to stay in the United States to work for an additional 12 months. Although called “Training,” OPT does not require a formal training program, and any employment qualifies, as long as it is in a field related to the employee’s major field of study.
The student will arrange for the OPT through the university, so there is zero burden on the employer in obtaining this form of work authorization. However, employees who join in F-1 OPT status will eventually need H-1B sponsorship.
Students in STEM fields (Science, Technology, Engineering, and Mathematics), which generally covers any prospective startup engineering hires, can extend this time by 17 more months, for a total of 29 months. This extension has important implications for subsequently obtaining an H-1B to remain in the United States, which we’ll discuss in the next section.
The J-1 visa is designed to foster cultural exchange between countries. It can be used to support study or work abroad programs, so it may be useful in hiring people for limited amounts of time, such as work internships or co-ops. A formal training program, with milestones and educational goals, is usually required, and there are requirements for providing cultural enrichment.
J-1 sponsors and employers are not permitted to use J-1 status as a temporary bridge while waiting for H-1B approval. Because of the administrative burdens and the short period of employment eligibility (usually one year for trainees), J-1 visas are usually not very cost-effective.
Green Card (Permanent Residence)
Note The U.S. Green Card program is complicated, takes many years to complete, and has many nuances. This section is only a rough overview, highlighting some of the important considerations for an employer.
A Green Card establishes a person’s permanent residence in the United States. For employment purposes, a Green Card holder can work and move between jobs in the same way as a U.S. citizen. For people who want to have a long career working in the United States, attaining a Green Card is a tremendous relief, as they finally feel in control of their own destiny.
There are several ways to get a Green Card, but here we focus on the employer sponsorship. The application process is much longer, more involved, and more expensive than most work visas, but the value to the recipient is tremendous. You should at least consider participating for people you value and want to retain for a long time.
Green Card sponsorship can be a valuable short-term retention tool since if you do not provide the sponsorship, the employee will leave for an employer who will. However, it cannot, in and of itself, be relied upon for long-term employee retention. If that’s the only reason to stay, an employee will leave as soon as he or she gets the Green Card.
As with U.S. citizens, salary, career advancement, and working conditions should be the primary retention tools, and the Green Card sponsorship can be considered a bonus.
There are two primary milestones for the Green Card application process.
Labor Certification (PERM)
The first step is typically to file a labor certification application with the Program Electronic Review Management (PERM) system. This requires demonstrating that there are not sufficient U.S. workers to fill the position, after conducting recruitment of U.S. workers pursuant to Department of Labor rules.
A normal PERM case should take less than a year to complete, but some cases are selected for audit or additional processing, which can add a year. This is a tricky process, and as with all visa matters, should be led by an attorney who specializes in the field.
The PERM application also establishes the employee’s priority date, which is very important, as it dictates when the Green Card application will finally be processed, years later. The applicant will want to ensure they preserve their priority date throughout their employment.
Immigrant Petition (I-140)
Once labor certification is approved, an employer can file form I-140 for employment-based immigration. The approved I-140 fixes the priority date, which the employee retains even after transferring to another employer.
Normally, an employee who was not born in India or China can obtain the Green Card a few months after the I-140 approval. However, the immigrant visas are allocated by country, and the quota for those born in India or China is oversubscribed.
At the time of this writing, the current backlog of applications for those born in India with Bachelor’s degrees is approximately 13 years. Applicants with advanced degrees (such as a Masters or PhD), or who have jobs that require at least five years of experience, can file in a separate category, where the backlog is currently a mere eight years. This time is estimated from the priority date, which is why it’s important to establish that date as early as possible.
It’s possible, perhaps even likely, that legislative changes, court decisions, or executive actions will affect this process and the amount of time it takes. Immigration is a hot political issue in the United States, and there are many factors at work. It’s wise to monitor the situation for new developments.
The total cost of a Green Card application depends on many details, but a rough estimate is around $10,000. It’s important to note, however, that the first stage, labor certification, must be fully covered by the employer, and you’re not allowed to seek reimbursement for it. This is one of the reasons that companies choose to wait for some period of time (typically six months or one year) of employment before starting the process.)
A very important feature of the Green Card process is that it allows the employee to extend an H-1B visa beyond the typical six-year limit. There are two ways:
If labor certification (PERM) has been completed at least one year before the end of the H-1B, it can be extended by one more year.
If the I-140 petition has been approved at any time during the H-1B, it can be extended by three more years.
This is another reason that Green Card sponsorship is important for valued members of your team.
Now that you have some information, let’s put it to use. These are strategies and other advice I’ve seen used successfully to hire people with work visas. It’s not an exhaustive list but should give you some ideas to get started.
Cover the Costs
You should plan, from the beginning, to cover all of the costs related to visa applications and attorney fees. In doing so, you remove a huge burden and source of anxiety from the candidate.
Start by finding an immigration attorney to work with on all of your company's cases. By creating a trusted relationship and amortizing the costs of each hire over time, you can leverage your investment into a much higher perceived value to prospective candidates, who face the daunting challenge of doing this alone.
Also, your competition is doing this already. For top candidates, this is simply table stakes.
Converting Graduates from F-1 to H-1B
Many international engineering students come to the United States to get a Masters degree, not only because of the high quality of graduate education, but also because it gives them a leg up on getting a work visa and, ultimately, a Green Card.
Most students are here on an F-1 visa, which only lasts as long as their education does. By extending their eligibility with F-1 OPT, plus the 17-month STEM extension, they can work for approximately 29 months after graduation. (Note: Membership in the government “E-Verify” program is required to get the STEM extension.)
While this extension is finite, it provides another benefit: The opportunity to apply for an H-1B two, or possibly three, more times. While the current lottery numbers indicate that a single application is likely to fail, being able to apply two or three times tips the odds in your favor. It’s not a sure thing, but nothing in startup life is.
J-1 Work Exchange Programs
The J-1 visa, designed for work- or study-based exchange programs, is another option for hiring people for a limited period of time, especially interns. It requires that you consider a person’s entire experience of working and living in the United States and provide some enrichment as part of it. Working in a startup can be a valuable experience, so it may be worth considering how to augment this in a way that makes the J-1 a good option. There are many organizations that can assist with program sponsorship.
Canadians Have an Advantage
TN status is much easier to obtain than an H-1B visa, meaning that Canadians (and, to some degree, Mexicans, although the rules are a bit different) are easier to hire than people from any other country. Furthermore, there’s no limit or annual quota to worry about.
For practical purposes, it’s pretty safe to think of hiring Canadian citizens in the same way that you would an American, except that it will take up to a few weeks to get all the paperwork prepared.
Summary of Visa Strategies
If there’s one thing to take away from this discussion about visas, it’s this: Find an immigration attorney. Having someone you can trust will open up many new hiring possibilities, and they will be indispensable as you grow your team.
And the first thing you should probably discuss with your attorney (and start thinking about now) is what your policy will be with respect to visa applications, and especially the Green Card, as you’re likely to get asked about it and tested on your limits. For example: Will you offer Green Card sponsorship to everyone? Only to certain hires? If so, when are you willing to start the process? How much support will you give? And so on.
How do you find a good attorney? Consult your network. Other startup founders and hiring managers probably know somebody they’ve worked with and would recommend. Your Board of Directors will likely have some good referrals as well. Don’t procrastinate this task just because you’re not good friends with an immigration lawyer. Make it a top priority to find one.
Step #7: Develop Your Training Program
There’s a common and tragic mistake made by many small companies and startups. They put lots of effort and resources into recruiting and hiring people with great potential, but that effort stops the day those people start work. It’s an absolute shame to hire a great engineer or someone who can become a great engineer, and not help them achieve their potential.
Before bringing in more new people, make sure you have a plan for onboarding. Facebook is famous for its six-week Bootcamp, a program that all new engineering hires must complete, no matter how much experience they already have.
Six weeks may be a bit much for a smaller company, but the main point is that you should at least have a plan. Consider including the following in your education for new hires:
Describe the core principles of your company. What are the primary criteria you make to prioritize projects and judge their success?
Show them your workflow—all the steps in the lifecycle of a project, from research and conception through to production deployment and verification.
Work with them, possibly by pair programming with a senior team member, to complete a small project from beginning to end. This experience should give them a chance to learn and understand your workflow.
Describe and outline the projects they’ll be working on as they get started.
Introduce their support structure. How and where can they find help? Of whom should they ask questions first?
At Thesis Scientist, we recognized the need to create an onboarding process, as our new hires were having inconsistent results getting up to speed. We felt like we should be doing more to help them. So we put together an extremely simple, but ultimately effective, plan: Pair the new person with a senior engineer until that senior engineer was confident the new hire was ready to work independently.
The amount of time required, to cover all the points listed previously, depends on the experience of the new person, but in all cases, we believe it’s an excellent investment of our time.
Step #8: Find a Recruiter
Okay, now that you’ve considered the basics, let’s throw some gas on the fire. If you’re looking to hire rapidly, you’re almost certainly going to need help from a recruiter. The first mistake a lot of people make, when looking for a recruiter, is to assume they can just hand over the entire task to someone else.
Roll Up Your Sleeves
In his startup manifesto, “The Hard Thing about Hard Things,” entrepreneur and venture capitalist Ben Horowitz writes that the best way to hire people into roles you don’t understand is to try to do the job yourself:
The very best way to know what you want is to act in the role. Not just in title, but in real action—run the team meeting, hold one-on-ones with the staff, set objectives, etc. In my career, I’ve been acting VP of HR, CFO, and VP of Sales. Often CEOs resist acting in functional roles because they worry that they lack the appropriate knowledge.
This worry is precisely why you should act—to get the appropriate knowledge. In fact, acting is really the only way to get all of the knowledge that you need to make the hire because you are looking for the right executive for your company today, not a generic executive.
I believe the same applies to recruit. For the best long-term results, you need to be willing to dive into recruiting directly, learning what works and what doesn’t. Before you hire a recruiter, spend a month trying figure it out yourself. Then, when you do hire someone, you’ll have a much better idea what’s going to work.
Even the best recruiters can’t guess exactly which people are going to be right for your roles. They’ll need to work with you, over time, to refine the search and match your expectations.
If the extent of your relationship with a recruiter is simply to receive incoming candidates, you’re going to be dealing with a lot of noise in the channel. You should expect to maintain close contact with your recruiter, providing feedback about what’s working and how to refine the search.
Look at this way, instead:
Once you’ve figured out what recruiting strategies and criteria are working for you (by rolling up your sleeves), hire a recruiter who lets you scale that effort up. You’re trying to replicate and improve your technique by getting other people involved.
If you feel like the time you spend talking to a recruiter isn’t being leveraged valuably into better results, you need to find a better recruiter.
Characteristics of Great Recruiters
You should consider a recruiter an essential and integral part of your team.
One of the fundamental problems with contingency-based recruiters is that their incentives aren’t truly aligned with yours. By tying all of their compensation to the single act of getting an offer accepted, you’re encouraging them to make choices that aren’t optimal for you. They don’t have a strong incentive to set your team up for long-term hiring success, nor do they benefit much by filtering out marginal candidates.
There’s a better way. Find a recruiter who can help carry out (and improve) the hiring strategy you’ve already developed, and then simply pay them for their time. In the short-term, this means on an hourly, weekly, or monthly basis. In the long-term, this means hiring them as a full-time in-house recruiter.
But, you might be asking, doesn’t this mean I could spend a lot on recruiting without getting any results? Of course. But most professionals, especially in highly-skilled fields, work this way. Start thinking about technical recruiting as a skill that requires years of experience to master, and maybe it will make more sense.
A great recruiter should also be able to help you with many other parts of the process as well, such as hiring discussions, negotiations, and crafting great job descriptions. Hiring recruiters on a contingency basis marginalize their skills and the value they can provide to you and your team.
How to Find a Recruiter
Ask around. Who are the people and companies you know that have built teams quickly and effectively? Chances are, they had some help.
The best recruiters you find might all be blogged already. That’s ok—stay in touch with them. It’s a fickle and cyclical business, so they might free up sooner than expected.
Finally, as discussed above, look for recruiters who prefer to work on a contract or hourly basis, no contingencies. They’ll be confident they can deliver results, and not have you second-guessing their fees. In the long run, you’ll save time and money, and get better hiring results, by working this way.
Step #9: Establish Long-Term Solutions
If you’ve created your recruiting pipelines, set up an onboarding program, crafted great job descriptions and company profile material, and found recruiters and immigration experts to help you, you’re well on your way. You’ve done everything you can to achieve short-term results.
To continue building your team over several years, however, you should consider new initiatives. These things take longer to pay off but will end up costing less, per hire, than what we’ve discussed so far. They will also help build engineering culture in your team, encouraging personal development among the people you already have.
Hiring engineering interns for your team, whether in the summer or any other time of year, can produce many benefits:
Accomplishing additional projects
Injecting fresh ideas or new concepts currently being taught in higher education
Possible full-time hires upon graduation
Building brand recognition for your company when they return to campus
An intern with previous work experience, strong academic credentials, and a good cultural match for your team can produce at the same level of a new hire, although only for a limited time. Less experienced or skilled interns will require more mentorship, but still can be a net positive. Beyond simply work product, though, interns can be a positive influence in many ways.
In terms of hiring, the competition for top students in college has extended back into the internships they complete during school. Even as their senior year begins, some of these students will already be “off the market,” having accepted offers to return to the company where they spent the summer.
The big players, such as Facebook and Google, will do everything they can to lock these students down before you even have a chance to talk with them. Therefore, if you want to compete, you’ll need to get started even earlier.
Finally, having interns return to their school after a great experience with your company is a fantastic way to build interest in other students. It’s a positive feedback loop—these students tell others, who apply the next year, who then continue spreading the word about your exciting, growing company.
Similar to an internship, an increasing number of schools offer Cooperative education programs (or “co-ops”). Typically, co-ops are longer than internships and more central to the degree program of the school. Some degrees require co-op experience as a way of developing true work experience during a student’s education.
Participation in a co-op program will require more effort on your part, as the school will want to ensure that its students are getting valuable experience. This investment can be well worth it, as the students produced by these programs tend to be more professionally prepared and capable.
One school that particularly stands out for its co-op program is the University of Waterloo in Waterloo, Canada. By the time students complete their degree, they will have done several extended internships, and tend to be well above average in both skills and readiness to enter the workforce. The secret is out, however—competition for top students at Waterloo is fierce, and the school has a huge staff dedicated to supporting this program.
Open Source Projects
Another option for building the attractiveness of your company in the long term is to create and contribute to open source software projects. This works in a few ways:
People outside your company may find your software useful, and over time develop a good impression of you. Perhaps in the future, they may even think, “That’s a place I’d like to work.”
You and your engineers can start to build relationships with engineers outside the company. Not only can you learn from each other, but they may start to develop an interest in working with you more directly.
Open source projects give people on your team a chance to show their work to the outside world. Most software engineering is anonymous, and many engineers are grateful and proud to have the chance to show some of their accomplishments to their friends and others.
It can take a while, but it’s never too soon to start building an open source library to generate interest from the outside world and pride of your team.
You can also build long-term benefits by becoming more involved in developer communities. The reasons are similar to those for open source projects. In particular, you have the opportunity to build relationships with engineers and technical people outside your company.
Some people are reluctant to encourage these types of activities, as they see it the other way around. The worry that by exposing their engineers to others, they run the risk of having them recruited away. I believe that this line of thinking is cynical and short-sighted.
You should believe that if an engineer from your company meets an engineer from another company, you’re more likely to attract the other person to you, than vice versa. If this isn’t true, then stop worrying about recruiting and fix that problem.
Recruiting is difficult, but it doesn’t have to be mysterious. It’s actually closer to science than it is to art. By committing yourself to diligent, thorough work, and by following industry-tested techniques, you can achieve success where many have struggled.