1. Explain me what do you know about multi-threading?

Multi-threading is a way to improve the performance of an application. Multi-threading is a process that uses several processors to run snippets of code. It improves performance and stops code from "hanging" when it runs.

2. Tell us what is your preferred language for complex algorithms?

Be honest but try to give at least two answers. Again, giving more than one response shows you are agile and versatile and not stuck on one thing. “XYZ is my first choice, but ABC is also a great option.” Then tell them why.

3. Please explain how would co-workers describe the role you play on the team?

Use this question to show the interviewers that you are socially aware – that you are perceptive enough to recognize how you are perceived by others, particularly your peers. Also use this question to show that you're self-aware. You know your own strengths and weaknesses, and you know how others see you and what you bring to the team. Be honest without being overly self-deprecating.

4. Tell me how familiar are you with OOP analysis and design?

Object-oriented programming (OOP) is the core of major languages such as VB, Java, C++, and C#, so top software developers should have strong OOP skills. OOP is a process of using classes to describe components of a program. For instance, if your program explains a house, classes would be the roof, doors, windows, and rooms. Your programmer should be able to explain classes using a similar analogy.

5. Tell me do you follow the Agile software development process?

Today, Agile is the most common way to manage software development procedures. Software developers should be on board and familiar with the process, so you can ask them if they are willing to work under those circumstances.

6. Explain me how do you design scalable applications?

Again, this is self-explanatory and designed to test your knowledge and thought processes. What factors do you look at and plan for to ensure you avoid performance bottlenecks? Is the interviewer talking about scaling up, scaling out, or both?

7. Explain me your ideal company culture?

Do your research on this one. Don't tell them you love nothing more than silence and rigid discipline if their company culture is relaxed and fun. Make sure what you tell them roughly aligns with what you have learned about their company.

8. Tell me what excites you about joining our team here?

Just like when you talked to the recruiter, talk knowledgeably about what elements of the company attract you the most to show you've done your research, but don't be sycophantic or show a creepy stalkeresque level of “I love you/your company sooooo much because…”.

9. Tell us which tools do you like to use for keeping track of requirements?

Have an answer ready for this one. And be honest. You don't have to be all high-tech all of the time. It's okay to say that you keep track of daily tasks with pen and paper. Maybe you blend old-school paper lists with Trello boards, Asana, or some other project management app. Just go ahead and list what you use. But don't say “I just remember them”!

10. Please explain your coding process from start to finish?

Right from the start. What's the first thing you do when you get an assignment? Get a pen and paper and break it down into small chunks/tasks/milestones? List the start and end dates in your calendar? Make sure you prepare for this question. Employers use this to make sure you have a clear process and are organized rather than haphazard and chaotic in your approach to work. Walk through your process in preparation for the interview so you can clearly articulate how you work.

Download Interview PDF