Technical interviews aren’t fun. Every single person I know in the industry hates how companies conduct technical interviews but they all keep doing the same thing. So until things change, how should you prepare for the interview? Here are a few tips I’ve learned since I entered the industry.
Treat the technical interview like a college exam
The truth is most technical interviews aren’t going to accurately test your ability to code. It’s better to think of a technical interview as a college exam. It’s a bullshit test that measures whether or not you’re capable of memorizing whatever it is that’s in that test.
Imagine you are hiring someone to handle customer support. Your biggest concern is their ability to write emails in English. What would you do to verify that? You could ask them to submit a writing sample. You could present them with a real email from a customer and ask them to write up a reply. You may even Google the person to find anything they’ve written online.
Would you ever ask them to describe the difference between a gerund phrase and a present participle phrase? Of course not. Plenty of people are capable of reading and writing in English even if they don’t know the rules of grammar.
You maybe be able to wire up an AngularJS route, factory, controller, and view but if you don’t know the differences between CSS2 and CSS3 off the top of your head, are you really a front-end developer?
As frustrating as it may be expect your interview to be more like the English grammar test than the request for a writing sample and plan accordingly.
Approach the interview as an investor
I know a lot of people who say they struggle coming up with questions to ask in their interviews. To help with this, imagine you had to invest your own real money into the company. What would you want to know before writing them a check?
It may seem silly to treat yourself as an investor. After all, you’re not investing your money into the business. But you are investing your time and you can’t get that back.
Framing the interview in this context is usually all people need to start sourcing better questions. Think about the specific industry the company is in and do some research. If you show up asking how their company’s software will address a new emerging trend in their industry, you’ve already set yourself apart from the average developer who only asks forced questions like which version of Node.js or Rails they’re using.
Interview the company
Far too many people approach job interviews as a one-way evaluation. The company brings you in to determine if you’re good enough for them. Why not do the same? The more personal your questions are the better. It forces them to be transparent or lie. Here are a few examples.
- What do you hate about your job?
- What’s your company’s biggest weakness?
- Assume there’s another company that does exactly what you do. What is it about your company that sets it apart from the identical competitor? How would you sell this difference to an interested investor?
- Your company website says you give your employees unlimited vacation. What’s the average number of PTO days taken by your employees in a year?
When I started asking questions like these, I noticed a huge change in the power dynamic within the room. The interview goes from a one-sided evaluation to a conversation within the group as we try to determine if there’s a good fit.
Don’t hesitate to judge the interviewers on soft skills either. If they’re not paying attention to you during your interview, what makes you think they will when you’re an employee? Some people excuse this behavior for certain people (job titles) in the company like the CEO. But if the CEO was on their phone for the entire interview why are they half assing their phone and your interview at the same time instead of focusing their attention on one?
Ask to change the interview
If you really don’t like their interview process, ask them if they’re open to changing it. If they ask you to do live coding in a Google Doc, ask if they’d be open to you coding a small project over the weekend where you walk them through it after you’re finished.
If you feel like you’re getting a glorified image of the company, ask to speak to other people one-on-one. A good indicator of this company glorification is if everyone in the room is a C-level employee or if entry-level employees are only giving their opinions as long as the CEO is in the room. If you want an honest perspective as you begin to interview the company, don’t hesitate to ask to speak with people from all areas of the company.
The key here is to be able to defend your suggestion if it’s challenged. In that case, always bring it back to what real life is going to be like if you had the job. Once you’re employed, you’ll never have to write syntactically correct code on a whiteboard without the ability to reference documentation. If you communicate this, they’re much more likely to be flexible with their process.
Vote with your feet
The only way companies will know their interview is shit is if you let them know their interview is shit. If you’re being asked to whiteboard a linked list for a junior UI role, ask for a different interview or walk out. If you’re not a fan of their interviewing practices, you’ll probably butt heads once you start as well.
This is the primary reason people say it’s better to job hunt while you’re employed. Even if it’s a shitty job it buys you time and bargaining power. Without the financial security of a regular paycheck you’re eventually going to need the money and your bargaining power isn’t as great when you’re desperate. With a certain level of financial security, your standards are higher and you’ll deal with less bullshit. Don’t be scared to leave. Plus, there’s always the chance that your willingness to leave makes them want you more.
It’s my hypothesis that the unwillingness to walk out of an interview or provide honest feedback is what continues this process of horrible interviewing practices. As I mentioned earlier, every programmer I know hates programming interviews but the methods aren’t changing. But if we all complain and continue to do the interviews, how do we expect anything to change?
We’re in an industry where there are more job opportunities than there are people to fill them. We should take full advantage of that while we can.
Learning a front-end framework is hard. "Getting started" tutorials cover the basics but you leave thinking, "Okay, now how do I build something with this?"
The truth is, getting started tutorials aren't all that great for beginners. They're demos to highlight as many features as quickly as possible.
They're great for showing off what a framework can do. They aren't so great for teaching you how to build web apps.
The end result is a basic application that doesn't mimick what it's like building real applications as a front-end developer.
You'll work with a mocked API and database. Application architecture isn't covered. Automated testing is skipped altogether.
Trust me, I've been there. But those days are over.
With The Angular Tutorial, you'll learn how to build applications using a real API and database. You'll leverage 3rd party APIs like Zomato, Google Places, and open-source libraries just as you would in a real job.
The Angular Tutorial assumes you have no previous knowledge of the Angular framework. It starts at the very beginning.
Every piece of code is explained and tested to make you interview ready.
Ready to get started? 👇