If you plan on landing a software engineering role in 2023, you'll need to know how companies hire software engineers and assess their technical skills.
The technical interview is (in my humble opinion) the most crucial step throughout the interview process. Most companies won't let you proceed if you fail the technical interview.
Knowing the recruitment process will help you tailor your job search and achieve tremendous success in landing your first (or whatever number) software engineering role.
Let's start.
1. Coding Challenge
From my experience, the coding challenge is the most used approach to assess technical competency.
A coding challenge is a test which usually requires you to know data structures and algorithms to solve a problem.
Software engineers take these challenges on coding platforms such as HackerRank, Codility, etc., which have a built-in editor where you can type the code.
Beware that some of these platforms send you a warning message if you click on a tab outside the test. It's a sign the company wants you to be able to solve the challenge without the help of Google.
These coding challenges may or may not be timed. There could be multiple coding tasks to complete, scaling from easy to difficult to assess how excellent your problem-solving skills are.
Within a test, you may be required to answer multiple-choice questions (in short, a quiz).
Related: 5 Actionable Steps to Land Your First Software Engineering Role
2. Take-Home Assignments
Take-home assignments are the second most-used approach to assess technical competency.
A take-home assignment is a task sent to you via email, which you'll have to complete in time.
I sometimes find take-home assignments hilarious because the interviewers will tell you they take "just a couple of hours to complete". But they never do, so beware of that.
A take-home assignment can involve creating a small application from scratch.
Interviewers often want to see highly readable code accompanied by tests in these assignments.
3. Pair Programming Exercise
Pair programming is a programming style involving two people working collaboratively to solve a problem.
In a pair-programming interview, the interviewee will have to solve the problem collaboratively with the interviewer.
Often, you may not be expected to complete the entire exercise, but they'll want to know your thought process and that you know how to communicate and collaborate with other people.
This expectation varies from interviewer to interviewer.
4. Culture Fit
This approach is much less common than the others, but it exists.
The culture-fit interview usually consists of asking about your previous experience and verbal questions about the technologies you used.
I'll say this:
Not all companies will require you to code during the interview process.
Outside of the FAANG companies and other major organizations, many small to medium companies in small towns struggle to hire engineers.
Conclusion
This article presented you with how companies will hire software engineers in 2023.
My favourite approach is the pair-programming exercise because whether you succeed or not, there is a high chance you can learn something from the other interviewer (who's usually more experienced).
The other styles of interviews don't offer much chance of receiving feedback.
Which do you prefer? Let me know in the comments.
Until next time!
ππΎββοΈ
P.S.: if you enjoyed this article, you'll probably benefit from subscribing to my newsletter, where I share more in-depth tips on software engineering, career development and sometimes personal stories. I hope to see you there!
Top comments (10)
My take:
Pair programming assignements are good because that's something that is actually part of our job as a software developer.
Culture Fit is useful in theory, in practice many people are not trained to do it properly and will follow all kind of cognitive bias, including pretty stupid ones like cargo culting, sexism, ageism, soft racism, ... and end up hiring people like them.
Coding Challenge range from midly annoying to completely stupid. "We don't want you to use Google or your IDE". It's like asking a journalist to write an article about the Ukraine War without reading Wikipedia, history books, reference material, interviewing people, discussing with its colleagues,...
I don't believe at all that this is a good way to hire: "We are going to evaluate how good you are at doing your work when all the tools you rely on to do your work are not available". WTF?
Take-Home Assignments is a massive red flag of a company that don't think your time as a candidate is a valuable. If I have a choice I will prefer any other company that don't do this shit.
In general I agree, but I see a big potential for bias here, just as in the case of culture fit. Doing pair-programming with someone puts you in a position to severely impact their performance with very subtle changes in your attitude.
Yep. It depends on the job, of course, but some coding challenges really are completely useless (finding duplicates with
xor
comes to mind), and probably actively filter out applicants with a focus on more real-world scenarios.Yep. It still amazes me that asking people to do free work like that is acceptable. At that point, just give people a real-world task and pay them for their time.
I've pair programmed once in 27 years working as a dev, and I NEVER want to do it again. Easily the worst way to write code, ever. A surefire way to reduce productivity
Thanks for your answer.
I meant they are good, not universally, but in the context of a company that practices regularly pair programming. In your case it would be a good thing that say no to you, because you wouldn't like working there.
In general the technical test should reflect closely how the company work.
Thanks for sharing your opinion! I agree with you overall, I put pair-programming as my top preference!
Nice article
I take several interviews per week and this article seems a bit outdated.
We don't take any more coding challenges and now we DO ask for AI generation tools like Copilot, ChatGPT and so on.
It is not a 2023 article, IMHO but a 2010s
No programming experience necessary! Apply now!
If you're actually hiring people who use those tinker toys, good luck.
Don't believe me? Let's ask ChatGPT:
Response:
And how companies and agencies will keep trying to hire developers in 2023, and why most of them won't learn, is explained in this great post by @JTK about the "dirty secrets of the IT Staffing industry".
The dirty secrets of the IT Staffing industry
JTK γ» Dec 12 '22 γ» 10 min read
Knowing how to "google" things effectively is at least half of a senior engineer's job. A skilled engineer remembers concepts, not rote memorization. Different languages and frameworks do the same things, but the APIs are different. If a candidate really has it all memorized, it likely means they use only one of them.
I thought it is HR, Coding interview and with Management.