Practical Coding Interviews
What are practical coding interviews?
Practical coding interviews are my favorite types of technical assessments because they generally assess the kinds of things you'd actually be doing on the job. For example, if you're applying as a front-end engineer, your practical coding interview might be writing a small HTML, CSS, JavaScript application. If you already work as a front-end engineer, then you're practice for this style of interview every day at work!
Types of practical coding interviews
I have generally seen two types of practical coding interviews:
- Pair-programming. Usually you're writing the code and screensharing (or projecting your screen if in person). It's up to the company/interviewer how much they will participate in the exercise.
- Take-home tests. You're given an assignment to complete on your own at home without someone looking over your shoulder.
How to prepare for practical coding interviews
The nice part about practical coding interviews is that, if you're currently working in the industry, you're likely practicing for this type of interview every day at your current job. That being said, there are some specific steps you should still take to prepare for these interviews.
Ask a few questions ahead of time
When you find out from your recruiter that you'll have a practical coding exercise, be sure to ask them the following clarifying questions:
- What environment will I be using? Some companies ask you to use a shared, online environment (e.g., CodeSandbox) while others will have you use your local machine and screen-share. Whatever the answer, be sure to practice in that environment.
- Am I expected to use a particular language or tech stack? For Leetcode-style questions, you can usually use whatever language you want. For practical interviews, I have seen a bit less wiggle room. A React company might want to build a React app with you, a Django company might want to build a Python API with you. Make sure you know what the company expects.
- Can I use external libraries? Most practical challenges I've done don't need external libraries, but it's usually good to clarify this ahead of time.
- Can I use Google? Many companies don't care if you use Google for these challenges. After all, they're trying to see how you would work in the real world and in the real world we use Google quite a bit.
Be very careful to meet all requirements
Make sure to read requirements carefully and continually check back in on them. When you're finished the assignment, ask the interviewer if we can step through the requirements to make sure they're all met correctly.
Find out if you're expected to write tests
In the real world, we write automated tests for our software. In practical coding interviews, this is much less of a certainty. This could be something you ask of the recruiter ahead of time, but at the very least be sure to ask during the interview.
Find out if the interviewer wants this to be a collaboration
They might just want to watch you code, but it's also possible they want to know what it's like to work collaboratively with you. I actually prefer the collaborative model: it gives you a chance to show off your communication skills, proves you'd be a great colleague, and keeps your interviewer engaged.
Example problems
Practical problems are very domain-specific. That being said, here are some examples you can practice building based on your discipline.
Backend
- Build a CRUD API
- Implement specific business logic in a function or class
- More TBD
Front-end
- Write an app that fetches data from an API and displays it on the page
- Implement JavaScript array methods (
map
,filter
,reduce
) - Implement
Promise.all
- Create a loading bar
- Create a slider component
- Create an image carousel
๐ Frontend Interview Prep
One of the pioneers in the software interview prep space, Yangshun Tay, is now offering an extremely comprehensive frontend resource full of coding questions, knowledge challenges, system design problems, and more.
You can sign up for as low as $10/mo, which is an amazing deal if you consider the impact a new job can have on your compensation.
I'd strongly encourage any frontend engineers looking for new jobs to sign up! If you use the following link, I'll get a small referral bonus:
Check out GreatFrontEnd now ยป