Software development is a highly competitive and rewarding job market. Besides accumulating the necessary technical skills, the first barrier to entry is the technical interview. A typical technical interview will include introductions and discussions about projects in your background, in-depth questions regarding frameworks you have worked with, and coding challenges to test problem solving skills and algorithm-writing chops. Here are five key tips to nailing the interview:
Know the company and the interviewer
Do your research on the company. Find out what technologies and frameworks they use. What are their five year initiatives? What markets and domains do they work with? Research gives you not only good talking points and shows your interest in the company, but also helps you pinpoint where your skills align with the job requirements.
While researching the company, look up your interviewer on LinkedIn. Knowing a little bit about this individual can help you tailor your answers in a way the interviewer will best understand. For example, an HR director may not understand technical jargon whereas a lead software engineer would welcome it. Lastly, know the interviewer’s name and use it somewhere in the interview. Remember that you’re speaking to another human being, and using someone’s name shows respect and expresses interest in possibly working with this person.
What to Look for When Researching a Company: A Complete Checklist
Give a good first impression
You never get a second chance at a first impression. Remember to exude confidence and present yourself with high levels of energy and enthusiasm. A perfect handshake and consistent eye contact give a good impression of you and will set you up for a successful interview. In the modern software development world, software engineers will be working closely with stakeholders, other developers, and business teams. Interviewers will place just as much importance on communication skills as they will on your technical capabilities.
Understand basic body language cues
With social and professional interactions with other individuals, body language can be a window to the soul. Always maintain good posture, avoid distracting behavior, and use hand gestures appropriately. Don’t forget to smile! If you can, notice body language cues in your interviewer. For example, you may find your interviewer clear their throat or become impatient during a long-winded answer. If you can dial in on the interviewer’s body language cues, you can keep your interviewer engaged, maintain good momentum, or even turn the tide of a poor interview.
Technical interviews will gauge your ability to talk about software from both high-levels and low-levels of detail. A typical interviewer will see a project on your resume and probe into that project with a question like “Tell me about this project.” Remember: high-level questions deserve high-level answers. You should start from the front of the application where the user inputs into the system, then move along to the various tiers and modules within the application—all the way back to the database where information is persisted.
Note each technology along the way at a high level. For example, you might say, “My front-end was a website written in HTML and CSS that sent HTTP requests to a server using AJAX. On the server-side, I leveraged Spring MVC controllers to capture the request, process it using Java, and persist data into an Oracle database using Hibernate. My application was deployed onto AWS using EC2 and RDS services and a Tomcat container.” Using the right technical terms, frameworks, and ‘buzz words’ in your response will show a deeper understanding of how all of these components fit together in a software architecture.
How to Navigate Your Immigration Status During Job Interviews
Always prepare for a coding challenge
If you are applying for a position that requires you to write software, don’t be surprised when your interview asks you to write software! Sometimes these coding challenges will be on the whiteboard, and other times you may be using a collaborative editing tool over the Web. Most coding challenges will be simple enough to write within the timespan of the interview. Other interviewers will send you home with a more complex problem to solve and ask that you return the completed project within a certain timeframe. Classic coding questions include:
Write a method that reverses a String using only String API functions
Sort an array of integers from least to greatest without any API functions
Find the employee with the second-highest salary using SQL
Before you start writing code, always ask questions. Clarify the requirements and write them down somewhere. Draw diagrams, process flows, and other documentation to show you fully understand the problem before you start coding. This is the approach a developer will take with real-world problems, so show the interviewer that you don’t cut corners for ‘simple’ problems. Always look for the quickest solution so you don’t lose the interviewers interest, but always discuss the ways you would refactor the solution, such as using fewer loops or renaming variables for clarity.
Throughout your career, you will go through many interviews—both good and bad. Each new interview is a learning experience, and there is no ‘magic bullet’ solution that works for every interview. To fully prepare for your technical interview, you should always know the company, give a good first impression, understand body language, learn to talk about your projects, and be ready for a coding assignment. If you be yourself, prepare well, and bring your best to the interview, you are one step closer to landing that dream job!