Technical Interviews have evolved a lot since I transitioned from being a Software Engineer to an Engineering Manager. Particularly in the post-Covid era, there's been a greater emphasis on the person, which I think is an important and welcome change.
Over the decade of interviewing hundreds of coders, I've also had the pleasure of working with various bootcamps, colleges, and hundreds of individual job seekers on LinkedIn. Across all the changes over the past years, across the various locations and mediums, something remained consistent throughout: The questions I get asked.
With that in mind, I thought - why not make a FAQ from my perspective as a hiring manager?
While this is my perspective, it's based on years of observation and supporting data. But that being said, advice is not fact. You may disagree with certain points, and that's OK. Opinions we disagree with allow us to better understand our own views. At best, I hope these responses help you land your dream job. At worst, I hope they'll help you form your own ideas on how to approach your career.
In this part, I’ll focus on the questions I’ve received about hunting for and applying to jobs.
Should I include a cover letter?
Only if it's asked for, or only if you have something compelling to say that is not immediately obvious in your resume. Maybe you have a direct connection with someone there. Maybe you're very familiar with one of the products. Maybe you achieved some kind of notable award or recognition that connects back to the company. Maybe you're uniquely suited for the specific role to which you're applying. Or maybe there's something in your resume you couldn't easily explain - a gap, a project.
In other words: if you have nothing new to say, don't provide a cover letter. If you do write one keep it succinct.
Should I apply to multiple roles at the same place?
Large companies that have teams of internal recruiters won't mind. In fact, they'll often have portals that make it easy to do so. Even smaller companies won't care too much - but be mindful of what message you're sending.
For example, at one smaller company I worked at I'd sometimes be hiring simultaneously for multiple roles that varied in their degree of technical skills needed. I'd hire for a coder, a QA person, a Technical Product Manager, etc. It can be confusing to see the same person apply to all those roles. At best it looks like the candidate is desperate, but at worst it looks like they are spamming*(which happens a lot.)*
If you know enough about the company to know you are qualified for each role, address it head-on: in your cover letter*(now you have a compelling reason!)*, in an email to the hiring manager, in your initial interview.
Of course, I say this when all the roles are significantly different such that they require a different set of skills. If all the roles are coding roles but for different products, different teams, or different languages there's no harm in applying to all the roles.
Should I apply for a different role under the same manager?
This question assumes you already know the manager - or, alternatively maybe someone else told you about the role. In either case, it's a good idea to ask. There are different reasons why someone would prefer one approach over another and asking can give you insight into the hiring process.
Should I follow-up if I've not heard back?
YES. Absolutely. Give it 24-48hrs. Be courteous, be forgiving, and don't be open-ended:
"Hi Shawn,
I really enjoyed our conversation the other day, and excited for the next steps! Of course, my timeline is flexible, but I'm curious if the team will be making their decision this week? If not, do you know when they're likely to make a decision?
Alishah"
Should I connect with the hiring manager on LinkedIn before the interview?
Look them up, get to know who they are, but hold off on the connection request.
Should I connect with the hiring manager on LinkedIn after the interview?
Ask them. There's no harm - but I'd also get a sense of how much they use the platform before doing so. If their profile and activity is pretty sparse, it doesn't make much sense to. If they're pretty active or look like you'd want to be connected to them even if you don't get the offer, then consider asking.
How should I track places I've applied to?
This is another one I've dropped in here. I've not been asked this question directly - but after learning how many people end up applying to 50+ places without ever tracking where they've applied, it's worth adding a fake question.
There's a lot of great tools out there worth exploring - but even a simplespreadsheetwill do just fine.
How can I tell if I'm being ghosted? / Why aren't people getting back to me?
Don't be afraid to follow up! You're likely not being ghosted. The sad truth is a lot of places are just bad at getting back to people on time. It's not intentional, and they should absolutely do a better job. I don't mean to offer these up as excuses, but there can often be a lot of things going on that have kept them from responding they're waiting on a decision/approval; they got pulled into an outage/major issue they're having to resolve; they've gotten sick; they're working on a project; they're hiring for multiple roles, and they're overloaded; they're unexpectedly had to take bereavement.
While some of these are better excuses than others, the general point is you're not*(always)*being ignored. It's not personal.
It's especially compounded when you're working through an internal or external recruiter who isn't directly responsible for the role.
How can I increase my odds of being noticed/being seen?
This is a difficult one, because it can vary so much from location to location - and often times there's not much you can do.
Let me start by emphasizing an obvious but easily overlooked point: it's less aboutgetting attention and more about keepingattention when you do get it.
So - first thing's first, focus on being the best candidate you can be - by that I mean, make sure your resume is great. Proofread it. Make sure you have a solid portfolio and a very comprehensive GitHub. Make sure your LinkedIn profile is polished and up to date.
While that may seem obvious, let me explain the importance: most hiring managers will likely quickly sort resumes into one of 3 buckets: definitely interview, may interview, don't interview. If you don't fall into the*'definitely interview'* it'll be a highly unlikely, you'll get a call. You want to make sure you fall into that first bucket.
Of course, in the spirit of the question - let's say there's 300 applicants - how can you possibly get noticed to even fall into the definitely interviewcategory?
Timing is definitely important. Especially for roles with stiff competition, the sooner you apply the better. Second (and I can't stress this one enough) - if you know someone at the company, ideally on the team you'd work on, the better your odds.
Companies love getting referrals from internal employees. So much so, they'll often give anywhere from $50-$1000 bonuses for referrals. Not only does a referral usually address some of the risk of hiring "an outsider," but getting a referral means the internal employee is investing themselves into the company. It's good for morale, it's good for cohesion. In short: companies will have a bias (conscious or otherwise) for referrals. They will ultimately make the best hire possible, but they're also more forgiving if they know someone has been referred.
Often times, before a role gets posted, hiring managers will ask their team for referrals. In some cases, the job may never even get posted as a result.
If you really want to get an edge - know people.
Great advice, huh? "Know people."
As unhelpful as those sounds, it's really not that bad. What I'm getting at is that all important idea of networking.
If you make a point to build your network, especially in your local community, it'll really pay off. Connect with other coders, attend talks and events, get your name known. Work on building your technical reputation with those people. It doesn't take as much time as you may think, and it'll pay off in the long run.
I glossed over something that I want to drill into a little further: build your technical reputation. There are some people that have built an amazing reputation with me despite my never having met them in person. We've messaged on LinkedIn, over Slack - or interacted on virtual meetups. And they always leave me a with a lasting impression of their progression. They tell me what they've been working on, what they're learning, the problems they've solved. If I've happened to give them advice or a suggestion, they'll often (not always) have something to say about it the next time I see them.
These are people I've often first reached out to when I had a role that matched their tech stack. They're also the people I'll refer to others who are hiring.
Also - get comfortable with non-technical people, especially in HR. This may require some extroversion, but the thing I love about people who work in HR is that many of them are highly EQ driven. They want to see people succeed; they want to see people grow. I've had so many people in HR make referrals in the past - they may not know always be able to assess technical ability but they're great at finding people who can help drive culture and build cohesion.
All this requires time. Building a reputation and getting to know people is like any relationship/friendship. You can't enter into one with self-centered expectations. Yes, you may have a motive - but it's a long-term motive that is only realized with your genuine investment into the relationship. This approach may not get you a job in the first 6 months - but 2 years, 5 years on, it's the relationships that you've formed that will help you land the next one.
Last point on this one: If you are currently working, or are in class, build relationships with your peers, and supervisors as well. As I said in the last paragraph, things take time - and in 5 years, some of your peers may be in positions where they may refer you. Likewise, you may one day be in a position to refer them.
Should I work with a recruiter?
Recruiters don't always have the best reputation. It's a tough gig and to be good at it you have to have spent a lot of time forming good relationships with developers*(who don't pay you)* so you can send them over to companies(who do pay you.)
Recruiters get paid only when a candidate is hired - and it's usually a percentage of the candidate's baseline. That's great if you're extremely hirable because it means you'll make a high salary, and the recruiter will make a lot in placing you - but it can hurt you if you're starting off. Many companies don't want to pay the premium just to hire an entry-level candidate.
A good recruiter can be really helpful because they know the good companies (if they send job seekers to the bad ones, that will hurt damage their reputation), and they can also help you sort out your strengths and weaknesses so you know where you can focus your attention. They can also give you the inside scoop of the company. Their motivation is generally aligned with yours: get you placed for top dollar.
Good recruiters think long term: they build good relationships with good companies and good people. So even if timing isn't right today, they'll still be a good connection in the future.
Bad recruiters, on the other hand, think in the short term: They will send you to roles that don't interest you, companies that are desperate*(and there's usually a reason why they are...)*, or otherwise they're rushing through things while not being very communicative.
It's important to keep in mind, recruiters are just one avenue for your job search. Not all companies use them. Larger companies may have their own internal recruiting teams. Smaller companies don't have the budget to work with recruiters. Recruiters fit in the niche of companies big enough to pay for recruiting, but not big enough to make it in an in-house department.
So yes, work with the good ones - but conduct your own job search too. And before working with any recruiter, get to know them and their reputation with the community.
ATS resumes, LinkedIn Quick Apply, Recruiters... it's all very stressful. Why is it so overwhelming?
Job hunting still is highly subjective. Everyone has advice (including me) and it's all on their own subjective experiences. None of the advice is guaranteed - and at the end of the day, it's how you are going to pay your bills. It's easy to feel like you're doing it on your own because it is a very personal problem.
Despite that, I think there's value in knowing it's overwhelming foreveryone. No matter your years’ experience, no matter the places you worked, or your polished resume - it is stilla challenge.
Job hunting is kind of like a skewed version of dating where being single isn't really an option. That sense of urgency makes it a challenge.
That being said, the best advice I can offer is that you're playing the long game. In dating you can't really leverage your previous relationships - but that doesn't apply for the job hunt. As you build your connections and your network, as you gain experience through previous experience, you become more marketable. Because you're playing the long game you can make more short-term sacrifices because you know them to be short term. Overtime, as you become more valuable you are able to leverage that value.
That overwhelming sense never completely goes away but if you do it right, you gain more confidence in yourself, the relationships you've built, and the track record you've formed.
Should I pursue a role that's different from my objective?
I generally advise against it, especially if it's a large departure from your career goals. If you're a coder, don't pursue a QA role - but maybe consider the UI Developer role.
I love the term*"career narrative"* - your goal is to be painting a picture over your career. Maybe you stayed at the same company, or maybe you switched roles every 18 months. Your career narrative is how you tell the linear story across it all.
There's nothing wrong with a QA role - but if your aim is to be a coder, it puts a wrench in your narrative. It may make others question your eligibility and qualifications for the role you do want - and remember, your goal is to be in the "Definitely interview" bucket.
That being said, we're not always in a position to wait for our dream role. Sometimes, after months of looking, we're in a spot where we have no other choice but to take the divergent path. If you're ever in that position, then I'd suggest making your intentions known to the hiring manager. Often times you'll find they have a clear need on their team, but in interest of getting good talent, they'll be more flexible about what the role entails. For example, they may need dedicated a dedicated QA role but they're willing to immerse you with the Dev team so that you can get the training and mentoring you need. They may even work out a plan with you: perform QA for the first 3 months, then as you get comfortable with the code base maybe you can resolve some bugs under the supervision of the Sr Dev. After 6 months, they may put you on a transition from QA to Dev but asking you to scale down your QA work over the next 6 months while they work out budgets. This will leave you with something compelling that aides your overall career narrative.
It's worth noting, all these responses are my own subjective views that I've generalized across small and large companies. They reflect my personal style, but I'll also happily submit they're not 100% right either. It's what's worked for me - but I love getting input and thoughts from others.
Have any questions I haven't answered? Connect with me on LinkedIn and send them to me!
Also published here.