In today’s article, there are many recommended links, but none of them are affiliate links, and no benefit comes to Panalysis by you clicking them. Except they might help you, which would make us happy.
Also, this article applies best to those with highly in-demand skill sets, but the principles within are generalizable to many different job types and industries and should be helpful to most.
How much can a regular employee realistically make, regardless of what is implied by the title? We aren’t referring to influencers, celebrity, a director of a department, or even a manager, but a regular front-line employee. One answer is that the median Software Engineer at Netflix makes over $500,000 a year.
While Netflix's salaries are singularly eye watering, Google, Facebook, Amazon and Microsoft also pay extremely well. But you might have seen that the median Computer Science major makes $78,000 a year. The reason for this disconnect is the trimodal nature of compensation. Compensation is in three tiers. Tier one companies are competing for talent in only their local niche. For example, the IT department of a local hospital will compete for IT employees with other local hospitals. It’s not expected that hires will move across state lines or industry types for the job. Engineers are a cost center for them and therefore salary is minimized.
Tier 2 companies benchmark against all local companies, which tend to be engineering focused companies that are hiring from the local talent pool. Examples are Disney, Nike or Boeing. Employees may cross state lines, but not necessarily move from Germany to the US to take that job. But workers will move from one industry to another.
And finally Tier 3 companies are competing in the global market for talent. Examples of these companies are the previously mentioned Netflix, Google, Facebook, Amazon and Microsoft, also other tech giants like Nvidia and Apple. Well-funded startups are also competing for the same pool of applicants so Strip, GitLab, Uber and Plaid also pay in this range.
Not too long ago the Tier 3 salary range of $300k to $500k could only be received if you moved to Silicon Valley or perhaps New York City. While San Francisco is nice, it isn't for everyone. But this has been changing. As these tech giants have grown, they have expanded the number of offices, to make it easier to recruit engineers. Google now has offices in 77 locations.
But what if you like where you are living, and don't want to uproot your family to move to a city that has companies paying globally competitive salaries? The pandemic has changed your options here. In 2017, less than 20% of job openings for Tier 3 companies advertised remote work. Now almost 80% of job opening are available for remote work. This is a sea change in the industry. Now you can earn Silicon Valley wages without getting out of your pajamas.
While these salaries and statistics only address Software Engineers, these giant tech firms need accountants, sales reps, and truck drivers too. While I don’t have any data on whether or not this trimodal distribution of wages holds for jobs outside of engineering, I suspect it does.
There are two traditional ways of getting a new job. Applying for a job through a want ad or alternatively hearing about a job through word of mouth, bypassing the formal application process. The later was always the preferred method and is still the preferred method today.
But there is a now a 3rd method. Large companies are always hiring to replace employees lost through attrition. And while referrals are still heavily encouraged, there are not enough to keep the hiring pipeline full. So large companies have teams of recruiters whose entire job is to hire developers. For these companies, the traditional way you think of applying for a job is not how it works. The traditional way is to look at all the resumes that have applied for a position, call up the most promising candidates, and bring the best of those to an interview and then hire the one candidate the stood out in the interview process. Large companies, instead, are doing all of these steps all the time concurrently. They are always hiring and will hire anyone that meets their hiring bar. If ten awesome candidates apply and all ten do great in all stages of the hiring process, then all ten will be hired.
But we are getting ahead of ourselves. How do you even get on the hiring pipeline? From below, it looks like you have a good chance of getting hired by simply applying for a job. And indeed, if you Google applying for a job, you will see lots of advice on how to make your resume stand out and how to pass what is known as the resume screen. When you apply for a job, your resume is first scored by an automated applicant tracking system (ATS). The ATS uses basic keyword search to score your resume, if your resume scores high enough a recruiter might look at it. If Internet lore is correct this is where a recruiter spends an average of 6 seconds looking at your resume. Google receives millions of applications a year and hires about 4,000 people a year. Anybody’s chances of making it to the top of all those resumes is low. But all that is mostly beside the point as recruiters don’t want to be looking at resumes anyway. Therefore, that is why you shouldn’t try to play the application game.
The numbers in the below chart are the number of candidates who need to enter the pipeline for a single hire. Smaller numbers are good. For every candidate that applies for a job, 152 need to go through the hiring pipeline for a single hire. Therefore, a recruiter needs to wade through hundreds of resumes to get a single hire. And since a recruiter’s job is to get candidates hired, their job is the hardest for candidates who have applied. Is it any wonder that recruiters don’t like to spend time on candidate that directly apply for a job? As we said before, getting a referral is always best and is the fastest way to an interview. But what if you don’t know anyone who works at Microsoft? This is the 3rd hiring strategy mentioned above and where the sourced category comes in.
A sourced candidate is one that the recruiter actively found and convinced to apply. Given the statistics above recruiters follow this directive.
Thou shalt not engage with active candidates. After all, in this market, strong candidates aren’t looking. Good recruiters build relationships so that when a good candidate does decide to enter the market, the recruiter is there, behind the next doorway, ready to spring!
- Aline Lerner (Founder of interviewing.io)
What do you do when recruiters aren’t reaching out to you and you are actively looking for a job? Be where the recruiters are looking for candidates. And this means LinkedIn. While there is a fancy name for it, social media recruiting, the main way that recruiters fill empty hiring pipelines is to find candidates on LinkedIn. Therefor your LinkedIn profile is the modern resume. Spend more time on it than your resume. Focus on showcasing instances, where you went above and beyond. Make sure to show signs of excellence.
Now you need to get found by a recruiter. If you already work for a tier 3 company or have in the past, you don’t need this article as you LinkedIn messages are full of recruiters. But if you haven’t been so fortunate, then your linked in messages are probably pretty empty.
So, we need to make sure that we are found. LinkedIn has search tools that allows you to find everyone working as a recruiter. Here is an example search of all the recruiters working at Google. Look for recruiters that are hiring for jobs that you are interested in. Join groups that they have joined. If you are an interesting and active participant of the group that they are sourcing from, you can be noticed. But that is a lot of work and could take a long time. Fortunately, if you are very careful, reaching out to the recruiter directly can be successful. But remember, you know the shibboleths and aren’t one of the people who are indiscriminately looking for a job, but instead you are a happily employed individual who is building relationships for the time when your do enter the market, or so that is the image you need to project. To achieve this, do your homework. You are reaching out to the recruiter to build a relationship. Connect with them on a personal level. Did you go to the same school, work for the same company, live in the same town? If not, use LinkedIn search to find ones who have.
Ok, you reached out and the recruiter wants to chat. Congratulations you bypassed the resume screen and officially made it onto the hiring pipeline.
Keep in mind, all interactions with your recruiter and anyone else who works for the company are part of the hiring process and are a potential place to say no. That casual informal chat with your recruiter is your first interview.
While it varies between companies, the normal steps for a hiring funnel are:
Resume Screen (Congratulations you bypassed this step)
Recruiter Phone Screen
Tech Test
Developer Phone Screen
Onsite Interviews
Presentation
One-on-Ones
Hiring Committee
Leadership Interview
These steps might be repeated multiple times or in different orders, so research the hiring process for the company you are interested in. The good news is that each of these steps can be studied, practiced and improved.
These seven steps can be generalized into three different types of interviews. Behavior interview, technical interview and take-home technical test.
Behavior Interview
If you hear a question that starts with “Tell me about a time when …”, that is a behavioral interview question. While your interviewer will be happy to give you a moment to collect your thoughts. It is best to have a ready answer with rehearsed talking points. There are many lists of these type of questions available, but they generally boil down to instances in your career where you need to grow and instances where you went above and beyond.
Practice these answers out loud both by yourself and with a friend. Consider also using a peer interview service like Interviewing.io or a full-service service like Pathwise (review).
Since, we know that all interactions with the company are part of the interview process, what part of the process is lunch? This is often times when the leadership interview is held. If you don’t know what type of interview you are doing, it is often a behavioral interview.
Technical Interview
Just like behavioral interviews can be prepared for, so can technical interviews.
There are two main types of technical interviews, general knowledge questions and problem-solving questions.
The general knowledge questions go from simple questions like what are the powers of 2 (see footnote1), to common computer science questions on the big O notation of various data-structures, to slight bigger questions like details of how TCP works.
The best way to learn these is using a technique called spaced repetition. This is a technique for continual exposure to a piece of information, gradually decreasing the rate of exposure as mastery is demonstrated. The best platform I have found for this is Anki. It is free and very powerful, with many ready-made study decks2.
You will often encounter these types of questions during both the recruiter and developer phone screens. While you should never try to Google answers you don’t know as it is very obvious, interviews can be stressful and you can forget facts that you think you have down cold. So, it can be helpful to print out common topics like big O for various data structures and powers of 2, so you can glance over to quickly refresh your memory.
The key technique for technical interviews is to have previously solved a lot of problems and to developer heuristics for how to solve similar problems.
Doing lots of problems on LeetCode or HackerRank is a good way to be exposed to these types of problems.
If this is a programming interview, if all else fails you can probably solve the problem by first putting the input into a hash map and then using the resulting hash map to solve the problem.
By far the best investment you can make is buying Cracking the Coding Interview by Gayle Laakmann McDowell. Your interviewer has probably read it. Therefore, the book sets the expectations for the behavior for both the interviewer and the interviewer.
Take Home Test
You will often be given a take home programming challenge. Tests are needed because many candidates don’t have basic coding skills. This is your chance to shine. Put all of the skills you developed in LeetCode to work. Read the problem description carefully, making sure that you fulfill all of it.
Approach this test like you would if you were working for the company you are apply to join. Your code will be judged both on how well it meets the requirements and on coding style. But make sure that you don’t levy extra requirements on yourself in the name of realism. You are being given a toy problem, and will be judged on how well you meet the requirement, not any imagined requirements that you make up.
General Thoughts
Many companies have a rather involved hiring process. Learn the hiring process for each company. Take each company’s individual process seriously and really lean into it. Hiring is the most important thing that a company does. They really care about it, you should too. If you show that you do too, then you can show that you fit in. Each company has its own thing that they care about learn what it is and embrace it.
Once you are in the hiring pipeline, your recruiter’s job is to get you hired. So up to a certain point they are on your side. Use them as a resource. They will be able to let you know what to expect and prepare you for future interviews.
What the company fears most of all is making a bad hire. Each step of the process has a potential for a no, all it takes is a single no on any step. The company has lots of chances and you have only one. So, each step of the process your goal should be to lower your risk of a no. For example, in the coding test, make sure that you pick a solution that you know you can easily implement in the allotted time. Chose a strategy that is unlikely to result in hard to debug errors.
Getting hired at one of these companies is hard and a significant time investment measured in at least months. Approach it as another job and put in the time. Approach it in a professional manner, so be organized and take notes.
And finally, make sure that you are well rested during all interactions with the company. There is no truth to the often-repeated claim that humans only use 10% of their brain. But if you are habitually sleep deprived, like most people, you do have an untapped reservoir of performance. Sleep deprivation causes impaired performance well before it is noticeable to yourself. So consistently get a full night’s sleep and exercised and you will be surprised at how much smarter you are.
If the result is a no, reach out to the recruiter to when you can re-apply. Often you can apply as often as every year. If you did get hired, congratulations your life is about to get very interesting.