How should devs prepare for frontend interviews?
Today’s interview landscape is wild. One company might ask you to code a page based on a design file. Another might ask you to implement a binary sorting algorithm on a whiteboard from scratch. The style and quality of technical interviewing varies so much between companies that it’s impossible to give a definitive “how to prep for a frontend interview” answer.
Use working in public to ease (or even bypass) technical interviews.
In my career, I’ve focused on preempting the technical interview through building lots of things and posting them in public places. For many companies — at least for the companies that chose to hire me — my public work was a sufficient technical interview because they could see tons of examples of my knowledge and skill level.
When I was the hiring manager for my team, I would use someone’s public work as proof they could do the job, and the technical interview became a conversation where they’d walk me through a piece of code they were proud of and talk about what they liked and why.
To algorithm or not to algorithm?
A lot of companies aren’t willing to accept public work, however, and they use a templated technical interview. For me, this spells doom.
I’ll probably never work at Google, because I can’t pass their tech interview. I interviewed at Facebook about ten years ago and I failed the interview so badly that they thought I was the wrong person on the call.
This may have changed, but I interviewed for a front-end position at Facebook and my interview was “write a binary sorting algorithm from scratch” and “write the most efficient query to join two tables”. I felt like I was in the wrong interview.
— Jason Lengstorf ⚡️ (@jlengstorf) December 5, 2017
I’ve never passed an algorithms interview. I don’t have a background in computer science. I can’t write a bubble sort from scratch. I work with languages that have implemented those algorithms for me already, and I’ve never been able to bring myself to care about learning things solely to pass an interview.
In practice, that’s meant that if I’m in an interview loop, I call out early that I won’t be able to pass an algorithms interview and that we should end now if that’s a requirement. I’ve lost opportunities that way, but choosing to be upfront about it has led to less frustration on both sides.
If you care about working at big companies, you might need to practice your algorithms.
Especially at big companies, the desire to standardize often leads to one-size-fits-all tech interviews, and that often means computer science trivia and whiteboarding. If your goals include adding those companies to your resume, then it’s probably worth diving into something like MIT’s free computer science materials or LeetCode.
Is it practical knowledge that you’ll use every day? Probably not.
But if it helps you land a job that’s meaningful to you, sometimes it’s worth jumping through silly hoops to get there.
Be open and curious to give yourself the best chances.
If your hiring manager is good (by my highly subjective definition of “good”), they’ll be looking at far more than just your ability to memorize an Intro to Algorithms course.
They’ll be looking for someone who’s thoughtful, good at communication, aware of what the business does, and interested in things beyond code.
Building lots of varied projects and sharing them in a place where a potential employer can find them is a great way to broaden your skillset. Thinking about the projects beyond the code — how would the business work? who would the customer be? what would the marketing positioning be? — also demonstrates breadth in a way that can really set you apart.
Learning doesn’t have downsides. Gaining new experience in virtually any field will help you throughout your career. Broad experience means you have additional pools of knowledge to draw from, and that adds unique value.
Remember that employment is a relationship and it needs to be a good fit.
Interviewing is a grab bag of experiences. You get a glimpse into a company’s culture as you interview. Maybe they’ll show you empathy and the tech interview will be highly relevant to the work you’d be doing. Maybe they’ll play gotcha with algorithm trivia. Maybe they feel like they suffered in their coding interview, so they need to make you suffer in turn.
In any case, don’t ignore that information. Remember that while the company is interviewing you, you’re also interviewing the company. If you see something that makes you worry, don’t shrug it off.
Getting a job means you have to do the job you got hired for with the people who hired you. If the interview feels bad, it can often be a sign that the rest of your employment experience won’t be much better.
It can be hard, but if the vibes are off it might be worth declining that job.
Keep learning, keep building, keep sharing, keep participating in the community, and keep applying. You’ll find a job that’s a good fit.