Last December, I left my long term workplace to get out of my comfort zone and breathe some new life into my career. Quite naturally, struggling to find a job within these past few months open my eyes to what one can do to prepare oneself for interviews. Unless you are applying for GAFAM, most of these tips might be useful for you. However, please do note that there is no silver bullet, what works for me might not works for you.
First thing first, your CV
Unless you are getting in with recommendation, your CV will be your first impression with the interviewer. So, dust off your CV and update it with your latest achievements. Make sure to update your LinkedIn, your GitHub profile (if you have one), as well as any other portfolios you might have. Now, when you write/update your CV,
- Don't worry about the first draft, it will be bad, it should be bad. Just write down a gist of what you want to add and refine later through iterations.
- Read out loud while you're reviewing. I found out that reading out loud tells me which part of the paragraph does not sounds natural when read by someone else.
- Prevent repetitive usage of words. For example, if you are using "also" a lot. Then maybe, you can use words like "Then", "Moreover" and "In addition to". Try searching on Google with
$your_word synonymfor similar words.
- Add "keywords". Let's be realistic, nobody has time to look through thousands of CV. Expect for your CV to be put through a filter. And that is why having the necessary keywords will put yours at the top. Try to squeeze in as much keywords as possible, but at the same time not too many. It should be the right amount. For example, if your work experience has offices in the other countries, maybe you might want to add "multi-national" as a keyword in your job description.
- When describing your showcase projects, don't just describe the nature of the project and tech stacks. Specifically mention what were the challenges you faced and how you overcame those. (If you have signed an NDA, you would need to obfuscate the name of the companies.)
Live Coding is not something you can escape for a developer's interview. Instead of dreading about it, start preparing for it. In my experience, there are generally two types of live coding, one wants to test more on your algorithmic thinking (ugh whiteboard tests 🤢) , and the other more on your communication skills. Regardless of what it is, you can practice for live coding at HackerRank, LeetCode and Codewars. In addition, I'd also recommend CodeKata. When you are answering these questions, try explaining to yourself on what you're doing/coding just like how you would do rubber duck debugging. You want to articulate your approach well so that the interviewer will know that you are capable of communicating to the others on the team (especially important if the interviewer is part of the development team). In most cases, the task given to you will be vague and won't be detailed down to edge cases. So, ask questions to break down the tasks given to you. This is similar to how in real world, requirements will never be detailed enough for you and that you have to ask questions after questions to fully understand the scope of work. As such, this is why interviewers tend to test whether you can analyze the requirements given to you. In short, DON'T JUST DIVE INTO CODING HEAD FIRST.
Take home Projects
Some prefer take home projects over live coding because you have more time to prepare with less stress. With more time to prepare, it is also expected that you have to put more effort into it. You want to make your code as clean as possible while also meeting the acceptance criteria within the given time frame. This is where you will make a lot of architecture decision to meet the time requirement. Regardless, you can explain your code through comments, and stand out by adding unit tests, and integration tests etc. Just over-deliver if/when you can.
While you are shining on your hard skills, you should also practice inter-personal skills, mainly communication. At the very least, you should be able to explain who you are, what your goals are and your day-to-day job scope in an elevator pitch style. Furthermore, you should research some details about the company you're applying for and note down some questions to ask during the interviews. You need to show interest in your workplace just as they show interest in you; it's a mutual interest, so you need to have the mentality of wanting to know your own workplace better. Besides, if you find out that the work environment doesn't fit your needs through clarifications, you will have a chance to avoid a mistake, and thanks yourself for it in the future.
You will also have to pass the culture fit questions. Most of the time, there are no right or wrong, but that doesn't mean you can just pass them easily. One technique I do is to, once again, over-deliver. For example, if the question is about, "Is there ever a project you failed to deliver?", my answer would include details about such project as well as what I have learnt from that event and how I shaped myself to be better afterwards. Once again, culture-fit highly depends on the work environment. Do remember, interview is a two-sided discussion, so you should try to get to know more about the company's culture too.
Some other tips I have found out while preparing myself, that might also be helpful for you are
- Make it a two-way discussion, don't just do answering.
- Use Glassdoor to research on the company. You can also find average pay-rate this way.
- If you're applying through sites like LinkedIn, try to connect to the recruiter first and ask him/her personally on the nature of work. This will get you through the "filters".
- When asked about the salary of your previous work, personally, I never give exact amount. I would politely say "I can't tell because I respect the privacy of the previous workplace but however I can tell it's around X amount".
- Don't be shy to apply to multiple places at once, and answer multiple interviews. If you happen to get more than one, then you have more to choose from and when you find out the one you feels like working at, you can honestly say "Hey, I'd really love to work here and I feel like it's more fit for me professionally and personally, however, can the salary be negotiated to X amount because I have this other company who's offering me Y amount?"
- If you get rejected, don't burn the bridge and ask for feedback and areas you could improve upon. This is a good learning chance for you, take it with no hard feelings, and improve yourself on the next one.
Happy job hunting! 🏹