Software Development: How to prepare for Technical Interviews
There is no single, best way to prepare for any interview but, in this article, I'll share my experiences over the years.
I’ve been on all sides of Technical Interviews over the years, and if I had to summarize it quickly, here’s how I would do it.
First and foremost, be honest. Credibility is key and is second to none.
Apply only to positions that your heart skips a beat for. Not everyone is passionate about what they do so if you truly have a passion for Software Development, you already have an advantage.
Don’t embellish what you know. We can’t all know everything and no one expects us to. The interviewer certainly does not. They are looking to find out if you know what you claim to know and if you have the aptitude to learn what you don’t already know.
Get your basics right and this is easier said than done. Find a quiet space for the interview (assuming it is online) so there are no distractions. Make sure there are no audio/video issues so everyone can see and hear you clearly.
Speak slowly, clearly and time your answers so you don’t end up not having time to share your more important accomplishments.
A lot of interviews have some standard questions (like: “most challenging project”, “avoiding conflict”, etc.) but that doesn’t necessarily mean you provide standard answers. Try to answer the same question differently depending on your read of the interviewer and/or their organization. They are not looking for cliched answers.
Volunteer to create a demo application (a small one but one that works) to share with the team. It could be a Web App, Mobile App, an API-only layer, shell scripts, or just about anything that gives them the confidence that you can not just talk the talk but you can walk the walk as well.
Answer questions in a more contextual manner. This requires you to do a little bit of work learning about the company and/or their domain. Once you do that, your examples could be tailored to their industry so they have to make less of an effort to understand your responses.
You may or may not be a polyglot developer and even if you are one, it doesn’t mean you know the language, framework, library or tool your client is using. Don’t fret. They already know that learning a new language or framework isn’t hard for a good developer. All you need to do is make them understand that you are a good developer.
Don’t be afraid. Remember that it is always easier to ask questions than it is to answer them! So, if you don’t understand what is being asked, ask for clarification.
A lot of companies require LIVE coding interviews. And not everyone handles them well (even the best of developers tend to struggle here sometimes). There are a few ways to make this experience less painful.
Do not be afraid to be judged. Isn’t that what interviews are for?
You are your only competition and you don’t need to prove yourself to anyone else.
Failing a coding session is success as well — in its own way. The more you fail, the more you learn. And the closer you get to winning.
Do your best but have a plan. If the session is 90 minutes long and there are 10 questions, its about 9 minutes a question but you will need 10–15 minutes to hit the ground running. So, it is more like 6–7 minutes per question and not all questions are created equal as well. So, take this average with a grain of salt (unless they are multiple choice questions).
Your aim should be one of 2 things —
Do a lot of some of the questions and not worry about attempting all of them, or
Do some of all of the questions in which case not every question might be answered to completion. If you can do both, great but that’s not where you may start necessarily.
Be cognizant of the time so you know how much time is used up and what’s left. But, don’t let that distract your concentration from what needs done. Even if you completed only 1 question, you want to make sure that was done well.
Being confident is important but what tends to generally happen is the longer we look for a position, the more the toll it takes on our confidence levels. But, it can only do that if you allow it to do so. So, go to every interview as though it were your first and last one. Tell yourself that past failures are not negatives but they are actually positives as they gave you an opportunity to fix some of your mistakes. Do NOT lose any part of your confidence.
If a thought springs to you that goes something like “there are so many developers why would they hire me?”, replace that with another thought “there are so many companies out there so while it would nice to clear this interview and work for this company, there may be a more deserving company out there for me and therefore, I have no reason to be desperate”. Trust me, it will help.
Some interviews will be easy. Others will be tough. Some will be brutal. That’s how it is. So, don’t deny that, accept reality and enjoy the experience.
When the outcome doesn’t go your way, don’t be too hard on yourself. Try not to speculate on why they passed on you. There could be a thousand reasons and more importantly, none of them matter. Think about any mistakes you may have made right after the interview so you can improve but don’t ask yourself any of these questions after you know the outcome. The timing is crucial for future success and present peace of mind.
Don’t forget that life isn’t fair. You may have done real well but they choose to still pass on you. At the same time, there will most certainly be interviews where you just did alright but you got lucky and actually got hired!
Life is short. Work hard. Work smart. Enjoy what you do. Don’t let other people’s opinions determine your day, week, month or year ahead.
Best wishes for your next interview!
Plan your job search and make the entire process as organized as possible. You’ll need a tool to help you do this.
Snowpal Products
Backends as Services on AWS Marketplace
Mobile Apps on App Store and Play Store
Web App
Education Platform for Learners and Course Creators