When it comes to a job interview, software architects must display the right mix of technical knowledge, project management experience and effective communication skills. Because of this, the conversations are generally divided into three parts: how the architect displays knowledge and skills in a hypothetical situation, past projects and how he or she communicates. Yet above all, software architects should be a good cultural fit who can understand the specific needs of a business and work successfully with all the people involved in software projects.
The following are commonly asked interview questions:
Show me how you would go about architecting this software solution.
Interviewers will often give you a hypothetical software design solution to sketch out on a white board, or simply explain. One such question asked by Vasanthan Dasan, CTO and vice president of engineering for staffing firm the Armada Group, is: architect a software solution for a platform as a service for the state of California's vehicle registration records.
"The candidate should explain not only the technology aspect of the problem - such as the front and back end of the Web technology, tables, databases and the like - but also reveal good communication skills," says Dasan. "They should explain how they gather and translate client and user requirements to a team of software engineers that is developing the solution."
Explain a project you worked on previously.
This is the blanket interview question intended to gauge experience and communication skills. You should explain in depth previous work including the planning, problems, team building with engineers, time spent and obstacles you faced. A common follow up question: Did the project work the way you originally designed or intended it too? Why?
Talk about one of your successful projects and why it was successful.
This question is used to find out what you value in the software development process and to help the interviewer see if you'll fit the needs of a particular organization.
What kind of atmosphere do you like to work in?
This is designed to ascertain whether you're the right cultural match at a company or project
"I try to really have a genuine and sincere discussion about what they like and don't like," says Matt Allison, It product manager for Kelly IT. Another question Allison likes to ask: What do you think the best way for software to be architected?
How would you define a database table for information to be stored and why did you choose that database?
Similar questions: What database management systems have you worked with? Can you work with MySQL and/or Oracle Database?
'This gives me a good understanding of how this person thinks and their familiarity with the latest technology," explains Dasan.
How do you manage conflicts in Web applications when different people are managing and working on data?
Similar question: How do you help identify who is responsible for changes in a software project?
You'll need to explain how you manage a team, including how the team documents a project in order to avoid design conflicts. You should give examples of how you've used effective communication for successful results in a team environment.
"Just because somebody can architect software doesn't make them a successful software architect, which is why I ask project management questions," explains Kelly O'Connell, a branch manager for Robert Half International.
Which tools have you used for testing code?
Similar question: Tell me something you know about testing or QA?
You should know the difference between functional or exploratory testing and explain how you've used it in the past.
How do you find a middle item in a linked list?
"I ask simple algorithm questions, since any programmer, engineer or software architect should be comfortable talking about algorithms," says O'Connell.
Name the differences between object-oriented design and component-based design>
This question is not only intended to test your knowledge, but also to find out your design expertise.
Give an example of when you were innovative with software architecture.
Similar question: When did you think creatively and create software that wasn't seen before?
What do you think is the best way for software to be architected?
Similar questions: What methodologies have worked with? Which do you prefer? Why?
-- Chandler Harris