I have recently changed job and it was not a very pleasant process, but I learned quite a few things. So I will use this post to summarise what I got out of it.
Disclaimer
I will be referring only to direct job application (i.e. answering a job ad). This is not the easiest way to get a new job and it may not be the most appropriate way for you to get one. Using your network and previous experience can work best depending on who you know and your profile/experience.
I will also assume that you know the industry you want to work in, its jargon, processes and so on. If you don’t, you should start there.
I work in the data space, but you can expect similar processes in tech in general.
Setting up expectations – Be prepared for
- Long hiring processes (typically 4-5 steps in my case). It will take around a month if everything goes well
- Disappointments
- Feeling of unfairness
- Not receiving helpful feedback
- Talking with idiots
1- Know the job market
A good first step is to understand the local job market.
Is the market candidate or company driven?
It’s the general dynamics of the market. In a candidate driven market, you will have more room to negotiate, as companies struggle to find suitable candidates. If you are one of those, you can get multiple interviews easily. In a company driven environment, there are too many candidates for too few positions. In that case, wages and benefits are driven down. You should avoid these markets.
In my case, I was in a candidate driven market (I could identify it beforehand). But it didn’t mean that companies were hiring with closed eyes. Actually, they had very specific performance expectations and they were not willing to compromise on them. Some expectations were, in my opinion, quite unnecessary and showed 2 things: either a conservative/pessimistic mindset (I was very surprised to find that among start-ups) or a troublemaker in the hiring process (not moving any candidate forwards because of some BS reasons made up on the flight).
What are the required skills and experience?
You don’t need to check all the boxes of the job description, but you need the main ones, preferably the hardest to acquire. I had been looking at other jobs in my industry for a few years already, so I could reverse engineer the process: find the skills needed for the job you want in X years, then start learning them today and apply them in your job. It’s usually programming languages, frameworks or methodology that you learn best by practicing. So don’t be afraid to do some side projects to test yourself (and showcase your work).
Experience can be a killer, especially at the beginning. Some people believe in the naive correlation between experience (how long you have been practicing) and competence. I don’t want that to be true for me, I don’t want my learning curve to be linear or at least, I want to it to be faster than other people. The point here is not to try to change their mind but to have just enough experience so that your CV isn’t discarded straight away.
What can be a relevant salary range?
I was asked my salary expectation almost every time. I had done my research beforehand so I could answer with a relevant range (don’t give a single number and stay broad, e.g. mention total compensation). The point is to have an overlapping range between what the company wants to pay you and what you expect, so you don’t get a disappointing offer. Some people advice against giving your range and suggest getting the salary range of the company for this position first. In some cases, the companies gave me their range without too much asking. I believe that, as you get more experienced, there are more variations in the salary you can get, especially if you have a spot-on profile. Then step up your negotiation game.
Notes on companies sharing the salary range in the job description: these numbers are usually below the market average. Companies with larger budgets don’t want to attract low quality candidates by showing large numbers. I don’t entirely see the point of showcasing that you don’t pay much. I guess it tends to attract those who didn’t do their research or who are not sure of what they are worth. For me, it was a red flag, and usually associated with declining industry / low margins / not supporting data science.
Where to find job ads?
You know the big names, like LinkedIn, Indeed and Monster, but chances are, if you are looking into a specific niche, these sites may suck. Take some time to find where the cool companies advertise: industry specific job boards (AngelList, Welcome to the jungle, etc.) or function specific job boards (Lenny’s for product, Pomp’s for crypto or Demand Curve for marketing).
Who are the companies you want to work with?
Do I really need to explain? In my case, I wrote down a few keywords to explain why I was interested by such and such companies. By being honest and not trying to BS yourself, you can gauge your enthusiasm for a company.
2- Understand the game
Job application is a numbers game. Companies interview multiple candidates and candidates apply to multiple companies. There are many parameters you do not control. In my opinion, most candidates cannot pick the one company they want to work with. The best you can do is to make a series of bets on good companies and do your best.
Patience
If time is on your side, you can afford to interview with several companies and hopefully reduce the risks of a bad choice.
Negotiation
Unless you have several offers, your only negotiation move is to walk away. It takes confidence in your ability to do it, but you will feel good afterwards. This move requires you to interview the company as much (or probably more) than they interview you.
3- Reading job descriptions
The best way to get a job at a good company is to not apply to sh*t companies in the first place.
Know what you want
Knowing the role, industry and company size/stage you want is crucial. The role defines what you will do and eventually what you will get good at (or perceived as good at). The industry matters because: in a good industry, it’s easier to be a profitable/growing company + industry specific know-how + human tendency to hire people who look like them/from similar background.
I wouldn’t recommend a “spray and pray” approach (applying to many different roles and seeing who gets you in). In the end, you wouldn’t be the one deciding what you will be doing, and it is quite open to adverse selection. In short, don’t bring in irrelevant alternatives.
Apply fast
Many companies, especially startups, bring new candidates in until they have found the right one, compared with the old way of setting a deadline for applications, getting a pool of applicants and keeping one. Companies with efficient HR people take less than a week to contact you (I think most screen CVs on Monday morning). Older companies take way longer.
Meet enough relevant criteria
2 years of experience + an internship instead of 3 years. Mastering Power BI instead of Tableau, etc. A job description is like a wish list. If you really meet all criteria, you should consider if you will actually grow in this position or if you should aim higher. On the other hand, if you lack too many skills, don’t waste your time applying. It would be better spending time building demonstrable proofs of these skills instead.
4- Interviewing the company
A short answer is, do your due diligence as if you wanted to invest into this company. Spoiler: if you end up joining, that’s what you’ll do, with your time, which is scarcer than your money.
Each time, I wanted to answer these 4 questions:
Are they financially stable?
I once worked for a company losing money (we didn’t know it at that time). It’s not a fun experience. Since then, I learned to look at financial statements, evolution of headcount, types of financing (origin and conditions), knowing if a business has low or high margins, etc.
Is the company going up, down or staying flat?
Here, it can be industry specific (looking at you, newspaper business). Don’t go on board of a sinking ship, your individual efforts won’t turn things upside down. On the other hand, rising sectors will create more opportunities in the future (openings, developing cutting edge skills, or simply looking good on your CV).
Do the company and my manager know what they are doing?
I have researched my industry to know the fundamentals and what is more likely to work. I need to make sure that everyone did their homework. Of course, it doesn’t include contrarian bets, but mainly best practices.
Do I enjoy spending time with these people?
It’s the culture aspect, some have it very codified, other don’t, but in all cases it exists. Find the behaviours that are rewarded and those which are punished. Would you have a beer with the people you met? Make sure they are not toxic (whatever toxic people means to you).
5- Hiring process
A typical hiring process I went through had these stages:
- Online application
- HR screening
- Take home assignment
- Technical interview
- Motivation/behavioural interview
- (Bar raiser)
Not all processes had that many steps, but you should be prepared for all of them.
Application
CV and maybe a cover letter. I haven’t noticed any penalty for not having a cover letter (most of the time, they are optional). You should tailor your application to the local market and company, for instance, do they expect 1 page or 2?
Useful resources: tech interview handbook, interview on YouTube
HR screening
Simple check to know if what you say matches your CV. You’ll most likely be asked to “tell more about yourself”. If you can explain what you do to a non-technical person and what led you there, you should be good to go.
Useful resources: from the Muse, from Inc.
Take home assignment
Some are timed so it won’t take too much time, others aren’t. In my experience, the suggested time is never enough (unless you’ve done the exact same task before). If you follow the time limit, you run the risk of losing against a candidate who spent twice as much time on it.
Code and write clearly. Make sure you are rigorous and can justify all your results. Do some sanity checks, etc. Also, don’t neglect the presentation (slides, charts, etc.). Some companies use this test to check if you are technically proficient (and remove those who are not). Others use it to select the best X candidates, no matter the level of the other candidates.
Useful resources: Stack Overflow, textbooks (for the math part), examples from blog posts or books.
Technical interview
I encountered several cases: live coding, presentation of my assignment, general technical questions. By then, you normally know what you will be tested on (the main aspect of the job). In my case, the technical questions can be centred around different topics: SQL questions, statistical questions, questions about business metrics.
The tech interview from the other side
Motivation/behavioural interview
This step is very subjective. It comes down to whether you make a good impression. What works for me was: doing lots of research about anything related to the company + rehearsing tens of standard questions.
Useful resource: from Lever, from Inc.
Bar raiser
It’s generally in larger organisations, where someone above the hiring manager can put his veto. At this stage, the company knows if you are technically proficient, if you made a good impression with the team members, etc. So it can be arbitrary. I had this type of interview only once, so I don’t have much to add about it.[1]
6- General learnings:
- Be the most prepared candidate and don’t miss the obvious (company’s announcements, blog, etc.)
- Apply to several positions at the same time to increase your chances of having multiple offers.
- Ask questions to recruiters (whether internal or external) about the hiring process for the role to get tips and feedback from previous candidates.
- Technical questions will cover topics the team work on every day. In other words, they will be experts while you may not. Don’t show any technical weakness. Most interviewers are trying to compare candidates to eliminate the worst ones. They won’t care about how great you are if they find a small flaw that another candidate doesn’t have.
- Learn from the little feedback you receive and always ask for clarification and more details. Spoiler: most feedback are generic useless pieces of sh*t.
- Ask questions. Smart ones preferably.
- If you have a strong technical background, your best Return On Investment will be on marketing: writing a CV HR people understand + explaining clearly your ideas.
- You need to catch unspoken clues about the progress of the interview, it’s your main source of feedback. Examples are:
- Types of questions asked: are they checking for the basics, going deeper or asking for your opinion?
- Tone of voice: is the person friendly or aggressive?
- Body language: same thing.
- General impression/how you felt about the discussion. Did you enjoy it, or did you feel like the people tried to beat you up verbally?
After mastering all the previous elements, I could feel that I had done my homework and that an offer was accessible.
[1]: The idea of the bar raiser is to maintain a certain level of competence in a team despite having more and more staff. The concept sounds nice, trying to counter the law of large numbers. But is it possible? The only bar raiser typed interview I had let me with a very bad impression of the company: rules made on the flight and mediocre interview.