When it comes to the software engineering interview, recruiters and hiring managers look for a blend of technical acumen, collaboration skills and effective communication abilities. And, says Robert Half, they also want a cultural fit, a technical match and a good feeling that you're going to stay with them for a while.
Here's some of the questions you can expect during an interview.
Explain the life cycle of an application development process you worked on previously.
A similar question: Explain how you write a piece of code and bring it forth to requirement delivery.
Software engineers must clearly articulate the entire software development cycle.
"What I look for in an explanation of the software development cycle is communication, planning, modeling, construction and deployment on the back end," says Matt Allison, IT product manager for staffing firm Kelly Services. "I want to find out where their strengths may be, or do they seem to have strength in a particular area Â¿ This allows me to figure out where they're at pertaining to a customer's needs."
Here's a hypothetical project. Explain how you would go about it.
You'll often be asked to map out on a whiteboard a hypothetical software project. This reveals your thought process, technical abilities, knowledge and communication skills.
One question asked of software engineer candidates by Vasanthan Dasan, CTO and VP of Engineering for the Armada Group is: "We have a customer who has an SOA integration into a hardware that does business to business communication. How would you create software to enable this communication?"
Says Dasan: "I want to know how you would break your work down into tasks and how many weeks for each task. I'm really looking to find out about planning skills, how they break down tasks, their skill set and how quickly they can execute."
What software language have you used to design, develop and debug software applications?
Similar question: What languages do you use to create interfaces?
Software is all about the language and interviewers want to hear about your experience with C++, Java, .Net, PHP, XML, Perl, or any other languages you've worked with. You should explain how you used a particular language for different functions within the software development cycle.
How do you respond to requirement changes in the middle of a cycle?
"Engineers should display their understanding of the balance between requirements, requirement prioritization, different techniques for prioritization and methodology," says Kelly O'Connell, a branch manager for Robert Half International.
Follow up questions include: Define the user, customer and developer in the requirement process. Is requirement change good or bad? Why?
What type of methodology have you used in the past? What are its drawbacks?
A similar question: Give me an example of a time you used waterfall methodology in a project. What are its benefits and pitfalls?
A software engineer needs to be proficient in one or more methodologies and be prepared to explain them, as well as their benefits and drawbacks. "There's some drawback to each one of these models and if they can verbalize that, I have an idea of where their strengths lie," says Allison.
What are different techniques for prototyping an application?
Similar question: Do you feel there is value in wireframing an application? Why?
These are intended to understand your logical process control during the software development cycle.
How do you manage conflicts in Web applications when there are different people managing data?
Software engineers are typically parts of teams that can be multi-cultural and even multinational, which makes good communication skills essential. You should also be able to handle and resolve conflicts and differences of opinion effectively in a team environment.
A similar question: Tell me something you learned from a team member in the last year. This lets interviewers know how you'll adapt to new changes in style once you're part of a team.
Similar questions are: Which tools are essential to you for testing the quality of your code? What types of problems have you encountered most often in your products after deployment?
What software testing procedures have you used to perform a QA?
Can you tell me Different ways being able to design or program so complex features appear?
Can you name different techniques for prototyping an application? Explain the limitations of web environment vs. Windows environment.
-- Chandler Harris