Interviewing sucks! The process is time-consuming, drains a lot of our energy and most of the time in return it gives us mental stress. But, you gotta do what you gotta do!
In order to make this process less stressful and more enjoyable, I want to put out here a few points that have worked well for me.
Interview with a Purpose:
- Even before you start applying for jobs, think:
- What kind of work are you looking for in the next role?
- What do you like working on the most?
- What do you care about the most - for ex : salary, engineering culture, open-source projects, free food 🍕
Many times we just want the job. But its important in the long term to be intentional about what kind of job you want. Also, it will be easier to rule out the companies where you don't want to work.
The Resume:
The resume is your first selling point. Make it short, concise but impactful. As a rule of thumb you want to have a single page resume which includes the following sections:
- Contact info
- Work Experience
- Achievements
- Technical Skills
- Education
Check out my resume for example here.
People having zero experience / new grads:
Everyone started somewhere with zero experience. They worked their way up. Do not get bogged down by the fact that you don't have any experience. Instead, show off your skills more aggressively. Build projects - any project. It doesn't matter which as long as you can take out some learning points. Write blogs about it. Tweet about it. Get into the limelight. If you are a new grad or someone with zero experience doing side projects will help you the best. Have knowledge about different things. It does not have to be very deep. Show that you are curious.
That being said, following are the things that you must know before going for any frontend interview:
- Basic Javascript Concepts - event handling, bubbling, block vs functional scoping, promises and basic CSS. It's okay if you don't know the CSS frameworks like CSS grid or flex box. No one remembers that shit anyways. Everyone googles it.
- A decent understanding of your choice of a frontend framework. For ex: React - know how to compose components, pass down props, which lifecycle method is suitable for a particular scenario, bonus - performance optimizations. Know the industry's best practices. (Check out repos on GitHub to know what they are). You have access to everything.
For experienced people:
Companies will have more expectations from you. You are not allowed to screw up the basic javascript, and CSS parts. You have to be good at writing code, composing components and best practices should follow by default. Front end dev and node are closely tied together. So be ready to answer conceptual node questions. Here are a few things that you should know:
- Node workflow
- Server-side rendering
- Redux / Complex state management
- GraphQL
- Performance Optimizations
- Native browser / DOM operations (like history, browser events, requestAnimationFrame, etc.)
The Interview Process :
Most of the companies will follow a standard process which consists of:
- Initial Recruiter Call
- Phone screen
- More phone screen/code test/hacker rank test
- On-site Interview
After at least a couple of tries at this, if you are still alive, Congrats! You are ready to crack your next interview.
Alright! Let's break down the interview process and see how to climb up each step.
Initial Recruiter Call :
This step is to gauge your overall interest and see if you can be fit for the position at a very high level. Get this round done quickly, without thinking about it much. How? Be ready to answer questions on these lines:
- What are you up to currently?
- What are you looking for in your next role?
- Why are you switching (if switching)?
- What are you currently working on? What projects have you worked on?
- What interests you in our company?
- What's your availability for next rounds
Prepare for these questions and you should be fine. For questions like why do you want to work for this company, you will have to do some research. Take out 5 mins before the interview, visit the company's website, understand what they do and what are their projects.
You don't want to spend too much time preparing for this round. So PRACTICE and make it smooth.
Phone Screen:
Here, you will probably speak with the hiring manager or some engineer from the hiring team. This round could have online coding exercise or just oral one to one questions and can go from 30 mins to 1 hr. Ask whats the structure of the interview beforehand so you can be prepared.
During the interview, ask questions, lots of them. Understand clearly what the problem is. After that, come up with a solution and walk through it. Again, ask questions. Ask if they think it is the right way. If not they will guide you in the right direction sometimes subtly or sometimes directly. Listen carefully for the clues. This is also a chance to know your could be co-workers. You can come to know if they are easy-going, serious, rude or whatever they might be.
In the exercise, if you are given some task that is frontend work, show your coding skills, follow best practices, get some optimizations, handle edge cases. If you are a new grad or someone with no experience, your side projects will help you a lot in this round. If its algorithm exercise, then hopefully you have already solved enough leetcode problems to make it through this round.
If you are a new grad or just starting, make sure you know how to tackle string, array manipulations, and recursion. Check out this github by Brian Holt for sorting and recursion algorithms. It's gold!
In the end, be ready with few questions for the interviewer. Many people find this awkward when they are asked if they have any questions. This is your chance to get an idea of how your interview went and it also shows that you are curious about the position, team, and company. Here are a few questions that you can ask at the end:
- What are the next steps? How long does it take for the whole process? (the answer to this question might give you a hint whether you made it to the next round)
- What is the company culture like?
- How big is the team?
- Which team I would be interviewing for?
- What are some current ongoing projects?
Code Test / Hacker Rank :
Many companies will have this round where you will either do a take-home test or do live pair programming. The test can be either FE related exercise or algorithmic questions. Its always good to follow best practices everywhere, but here, if its an algorithm question, try to solve it first. Get the logic right. You can show off your coding skills in the phone interview. If its FE related task focus both on the best practices and solving the problem.
Well done! Most people won't get up to here. But, If you passed all the above steps, the company already likes you and there is a high chance that you'll be hired.
On site:
To prepare for onsite interviews, practice writing code without a computer because there will be whiteboard exercises. Maybe lots of them. Make yourself comfortable putting out your thoughts on a whiteboard or just a piece of paper. Practice doing sample algorithmic problems. Also, ask the interview structure a few days before the interview. Will it be HTML CSS type questions or just javascript problems or algorithms. If you know it beforehand, you will be less nervous.
When you are doing the exercise, think out loud. Keep the end goal in mind and don't focus too much on the details. It's ok if you miss closing a bracket. Tell them about your approach to solve the problem. Most importantly try and break down the bigger problem into smaller ones and kill it!
Congrats! Hopefully, by now, you have an offer from your dream company. Cheers!! Shoot me an email or connect with me on twitter for any questions or just say hi.
Top comments (6)
I'm going to look at this from a different angle, how would you like me to interview you. I am coming up to my first chance to interview soon. What makes a great interviewer?
Anyways love to hear what you think.
What To Do When You Reach Number 1 On Hacker News
Outstanding engaging and a must read!
I really have been thinking about what if I lost my lucky streak, I am one of those, fall into a job kind of guys perhaps the market is different here. None the less, I have bags of empathy for anyone going through the process as I did last month. It makes my bar high but not higher than me. My technical test was buggy and missing some things. I'm keeping that in mind.
Following you now mwhahaha
Empathy for the candidate
Nice
Sir, can you tell me from which site you build your resume?