Good old days, when a degree from IT and decent technical skills sufficed one to get a job of a software engineer. These days are gone--at least when we talk about jobs with the tech giants, jobs that pay 100K or 200K annually, jobs each software engineer dreams of getting. The interview processes has become more sophisticated. Technical questions are complemented with behavioral questions, and your attitude to various situations that happen in the workplace is equally important than your ability to code, test, and design.
Besides your technical skills and readiness for the job, you will have to demonstrate right attitude, high level of motivation, and value you can bring to the team of engineers already working at the company.
The technical questions will actually vary a lot, depending on the applications they develop in the company, the programming languages they use, and your exact role in the process of software engineers. But personal and behavioral questions are pretty similar always. The list below should give you some idea on what to expect in this interview.
Why have you decided for a career of a software engineer?
Talk about your passion for app or games or software development and testing. Say them that you enjoy coding and programming, and that you are good at it. You can also point out a great future of the industry, and a firm belief that you can become a great engineer, in their company, working on the next big thing in this or that field.
What do you like the most about your job?
Here you can go with pure love for coding, for finding the most effective way of designing software. Or you can point out a specific phase of engineering process, such as planning, designing, or testing. One way or another, you should speak with enthusiasm.
They should get an impression that you enjoy your work, and will enjoy it for years to come, and do not apply for the job in this field just because it pays better than almost any other field.
Can you name the main phases of software development process?
Market research and analysis, design, implementation and coding, testing, deployment, and maintenance, are the most commonly used phases of SD cycle. You can add your own twist to the mix…
What’s more, you can briefly elaborate on each part, or at least explain in which one you excel–and on which one you’d like specialize in your next job or perhaps in your entire career.
Can you name the tools and programming languages you have used in your last software engineering project?
A good answer depends on the person who leads the interview with you. Do they have good technical skills? Do they know something about software engineering (an HR generalist and a CTO have different knowledge of the subject). Name the tools, and add technical details, if you find it appropriate, if you talk to someone with technical background.
If we speak about mobile apps development, what do you see as a trend in next ten years?
The future is in mobile. But what exactly the future will be is hard to say. Perhaps you can go with artificial intelligence, or apps that help us with administrative tasks (mobile payments, virtual IDs, etc). You probably have your own opinion anyway.
Another option is simply to google “latest trends in mobile apps” one day before going to your interview. You can find what’s in and what’s next, and formulate your answer accordingly.
Other questions you may face in your software engineer interview–technical and behavioral
- Which programming languages are you familiar with, and which do you consider the most important?
- What security test do you consider most important?
- Describe your opinion about the application of artificial intelligence in software engineering?
- What is the main difference between the abstract class and the interface?
- How would you find a string in sorted array?
- Imagine that a customer doesn’t like many things during acceptance testing of your work. What can be a reason for such a situation, and what will you do to avoid it.
- Tell us about a time when you used logic to solve a problem at work.
- Describe a time when you had to meet a tight deadline in your work.
- Tell us about a time when you felt overwhelmed with work.
- Describe a conflict you had with one of your colleagues.
- Tell us about a time when you struggled to communicate something technical to one of your colleagues or clients. How did you manage to get your message over?
* Special tip: If you struggle with your answers to scenario-based questions (“tell me about a time…”, “describe a situation when…”) have a look at one of our eBooks, Ace Your Behavioral-Based Job Interview. Multiple premium answers to 30 most common scenario-based questions will help you streamline your interview preparation, and get ready for the question many software engineers struggle with in their interviews. Thank you for checking it out!
Work portfolio and behavioral questions play a big role
A well-designed portfolio will help you to demonstrate to the interviewers (even those who lack technical knowledge) what you can do, what you have already successfully accomplished in the field.
What is more, a good portfolio can help you to avoid answering additional technical questions. They will see, on the projects you completed, that you have the skills, and they will not doubt your readiness for the job anymore.
Behavioral questions – an important and overlooked part
Employers realize that software engineer isn’t an isolated unit, hiding somewhere in the back office with their computer. Not at all. Software engineers belong to the team of people. They interact with the other employees from the company. They have an impact on the overall atmosphere in the workplace.
No wonder that the HR managers will ask you questions that relate to your attitude to work and to other people you meet in work, the scenario-based questions. It is pivotal for you to not underestimate this part of your interview preparation…
Final thoughts, next steps
Interview for a job of a software engineer belongs to tricky interviews. It can be both easy and difficult, depending on the company you apply with, salary offer, and the number of candidates who compete with you for the job. The last one is typically the function of the two: the better the offer and the more famous the name, the more candidates you will have to outclass in the interviews.
The key is to prepare for every part of the hiring process. Be it an online test of your software engineering skills, basic personal questions, or the tricky behavioral (scenario-based) questions. I hope you will manage to prepare for everything, and wish you best of luck!
May also interest you: