Hello and welcome to my "What I've learnt" series where I talk about things that could have gone well or things that I have picked up over time in the technology and software engineering space.
The Interview Process π
Let's talk about interviews. Depending on which company you applied to, a software engineer typically goes through at least 2 interview processes: a coding round and a behavioral round with the hiring manager. 2 in English is plural to any noun. Now adding the phone interview, take home project, pair programming and even system design rounds. You know, as a software engineer, it's pretty 'standard' to go through multiple interview round's' before securing the role - or not.
The popular term FAANG came about around 2013, representing the cutting-edge technology companies making billion in profit each year, most computer science students and aspiring software engineers have a common end goal - striving to somehow someday set foot at the doors of FAANG (Facebook/Meta, Amazon, Apple, Netflix and Google). With all that competition, it is undeniably difficult to pass FAANG's interview.
Failures and Lesson learnt πͺ
Nowadays with the exposure of social media, there's no mysterious secret magic on how to be a successful candidate to pass your interviews at most companies. There are tons of useful resources to set you up and get going. Most importantly, you just need that "keep applying", "keep griding", "practice HackerRank/Leetcode" attitude until you make it.
After personally going through several processes myself, I decided to write about failures, handling rejections and lessons learnt. These are lessons that have been accumulated in many months. I admit that it is not easy to share failures and be vulnerable on the internet. But if you are someone who's going through this "grind", I hope this is one more article on the vast Internet that keeps you going.
On a side note, this topic coincidently aligns with one of Hashnode's #4articles4weeks writing challenge, so I decided finish off my draft and take part in it.
It won't be easy π
If you have reached this point, I hope that we have come to a common understanding that interview process in the tech world is not easy - let's acknowledge that. So, if you are at the initial phase of applying and did not even get a reply or a closure (at least a rejection email), it's ok. Perhaps the role has been filled, perhaps your CV missed certain 'keywords' that the system filtered through, or it could be that the HR is piling up the applications and replying at a much later date. There could be so many reasons you didn't even make it through the initial rounds.
Lesson: Update your CV to reflect your experience π
I'm totally against lying on CV, so don't do that. I'm talking about updating the CV according to certain job description so it reflects the experience to suit that particular role. Experiment a little bit as well, maybe you'll find one version of CV works better than another.
Lesson: Acknowledge that it is not easy and it's just the beginning. βοΈ
It's important to acknowledge that you have put in the efforts to update your CV, keep an eye on job postings and muster up the courage to apply. This is just the beginning of the journey. From here onwards, it's plenty of studying and managing time and pressure to go through the remaining ones.
Timeline π
Hofstadter's Law: It always takes longer than you expect, even when you take into account Hofstadter's Law.
Image from DeidrΓ© Wallace's tweet
Things in life always take time, most often longer than we have initially anticipated. When looking for a new job or job change, keep in mind that the best-case scenario is at least a week - which in reality often takes months. There's a need to take into account preparation, managing interview timelines from different companies and getting the offer.
Lesson: Keep an interview log π
If I can give any advice to anyone, I am hoping that this is the one you can take away with you - keep a written note for all your interviews. From phone interviews to coding to system designs and even the behavioral rounds, take note of what interviewers have asked. If you have made any mistakes, write down what you could have done better next time. If you did well, write down what went well too. It'll be even better if the HR/company is able to provide feedback so that you know what exactly needs to be improved. We tend to forget how far we've come, but an interview log is the best evidence of the amount of effort we've put in. It'll serve as a handy revision tool in the future as well.
Lesson: Practice is essential π»π»π»
Without re-iterating what's available on the Internet regarding preparations, it's important to practice. Without a doubt, it can be tiring and exhausting to keep up the consistency as there's so much to prepare. But the key to being a successful candidate is preparation. Find a friend to help out, try doing a simple coding exercise and see if you can "think out loud" and explain your solution. Set a timer and practice solving a question under pressure. Draw boxes for system design rounds, see if you can list the tradeoffs and justify the reasons for choosing certain protocols/frameworks/databases/etc. Don't underestimate behavioral rounds, sometimes we think we know what we did and it won't be hard to explain it. However, there can be situations where the details are missed or the order of what happened gets mixed up. Practice, practice and practice.
Lesson: Technical checks and person to contact in case... π«
Since the pandemic, virtual interviews are the new norm. Before any interview, it's best to test out all the tools to ensure a smooth interview. Check the webcam, microphone, internet connection as well as the coding environment. Find out the best person to contact beforehand if an interviewer fails to show up on time or if a specific setup required by the company is not working.
Rejections πβ
If you're someone who's really smart and really lucky, plus you've never ever gotten any rejections in an interview, please leave a comment and share your secret to success. Otherwise, I think most of us have gotten rejections after some point.
Lesson: Don't take it personally, it's not because of you π€·ββοΈπ€·ββοΈ
Rejection is hard, period. You've made an attempt to display your skills, you may have done well or you didn't, but all you receive is NO. You start to question your experience and skills: Am I not good enough? It can be very disappointing when you don't get the role you wanted, especially after making it through the on-site rounds thinking you had a chance. Don't take any rejections upon yourself when things are out of your control. Sometimes you just need to practice a little bit more and have luck on your side that day. Most often, it could be that your experience doesn't really match what the team was looking for. It could also be that another candidate is more suited for the role. Don't forget that companies are corporations that prioritize profit at the end of the day, so not having enough budget to open up a position could be another reason.
Lesson: Try your best, celebrate the wins and failures ππ
Rejections and failures are the best teachers. It is difficult and painful, but don't dwell on it for too long. Try to reframe it and enjoy the process. Each "failure" is a great learning opportunity to excel the next time - remember to take note in the interview log. So, celebrate every single win and opportunity. Try your best and keep going at your own pace.
I would like to end my story and the lessons I've learnt in interview failures with a few philosophical quotes.
βSuffering begins when you mentally label a situation as bad. That causes an emotional contraction. When you let it be, without naming it, enormous power is available to you. The contraction cuts you off from that power, the power of life itself.β - Eckhart Tolle
Good thing, bad thing, who knows? - Taoist/Sufi tale
Perhaps the best lesson learnt from a failed interview is that something even better is waiting for you, it will only be revealed in hindsight. π€―
Thanks for reading, to all who's going through interviews, I wish you all the best! β€