By Marsha Austin
For Hack Reactor
Software engineers are the brainy authors of code who bring programs, applications and websites to life. If you’re one of these highly skilled job candidates, you can expect a highly technical interview, so come ready to work through coding problems and math brainteasers.
Most companies will conduct two or three rounds of questioning and screening before inviting you to take a skills test.
The specific questions you are asked will depend on the type of software platform you’ll be working on and the type of programming position you are looking for, such as web development, application development, or system development.
“We start with a set of standard questions about past code review experience for some background, then dive into a GitHub pull request of around 200 lines of intentionally buggy and messy code and ask the candidate for feedback on how to improve it,” said Zach Millman of Lever Engineering. “We finish with a few last questions about the code as a whole and time for them to ask about our development process.”
The good news for trained software developers is that top talent is tough for many companies to attract and retain, and if you’ve got that magic combination of friendliness, collaboration and technical acumen, you’ll likely be blessed with ample job opportunities.
In Austin, TX, the state government competes for qualified software engineers with the likes of Apple, Google, IBM and Dell. Often, full-time positions go unfilled and have to be augmented with contract employees. So hiring managers are constantly looking for ways to attract and retain new talent. Top hires have more than just technical chops learned at schools and coding bootcamps.
“One of the key elements hiring managers look for in a software engineer is the self-awareness and maturity to be honest about mistakes, and to learn from them,” said Ben Beasley, Systems Development Resource Director for the Texas Department of Family & Protective Services.
Beasley said the most telling question he asks when interviewing software engineers is, “What has been your greatest failure?”
“I like to see their reaction,” he said. “If you’re self-aware and you’re really honest, you won’t care how bad it (your mistake) was. How honest are you, and what did you learn from it?”
His other top tips for interview prep: Practice answering common questions with a friend, and make sure to answer the question that’s being asked.
“Don’t let me ask you what your greatest failure is, and you tell me about your greatest accomplishment,” Beasley said.
Here are 8 of the Most Common Interview Questions for Software Engineers:
Why do you want to work for this company/on this project?
What was your greatest failure? How did you learn from it?
What do you do when you experience a co-worker not pulling their weight?
Do you follow the Agile development process?
What do you know about multi-threading?
How familiar are you with OOP analysis and design?
What is your process for finding bugs and debugging? How much time do you typically spend?
How much are you coding on a daily basis? If you do not code on a daily basis, what is typical in your role? If needed, how would you go about designing scalable applications? Walk us through your process?
You’ll also be asked to take a highly technical skills test. Many employers use HackerRank, which also provides job candidates with practice tests to prep.
Check out these real-life questions software engineers were asked, provided by jobs platform, Glassdoor:
You have 100 coins lying flat on a table, each with a head side and a tail side. 10 of them are heads up, 90 are tails up. You can't feel, see or in any other way find out which side is up. Split the coins into two piles such that there are the same number of heads in each pile.
Dell Technologies asked:
Suppose you are writing a test script to test a function running in a process overnight. How do you make sure that if the process is halted, your test function will be able to detect that?
Given two words (beginWord and endWord), and a dictionary's word list, find the length of the shortest transformation sequence from beginWord to endWord, such that: 1. Only one letter can be changed at a time 2. Each intermediate word must exist in the word list.
What is the difference between AsyncTask and loaders?
Explain how you would organize metadata for a distributed database as it scales.
What was the project that you most enjoyed working on and why?
United Technologies Climate, Controls & Security asked:
What was one project/challenge you faced during your time on campus?
Select a software engineering technology or practice and explain in benefits and drawbacks.