Skip to content

Ten Interview Questions Every Solution Architect Should Know

Originally published on Developer.com, November 11, 2016.

Building software isn’t like building bridges. Building software doesn’t mean an understanding of material strength, but it does mean understanding how different approaches are capable of coping with today’s emerging needs. Solutions architects have some of the greatest experience requirements of any role in the software development cycle. These ten questions may be how the interviewer quickly can assess the experiences of a candidate. You can find out more about the critical role in “Anatomy of a Software Development Role: Solutions Architect“.

Q1: What’s the most innovative solution you’ve ever come up with?

A: The answer will vary, but a candidate should discuss a solution that is non-obvious.  The candidate should be able to describe using something that works perfectly (or nearly perfectly) for the problem.  The question is trying to assess how imaginative and innovative the candidate will be.

Q2: How do you approach security in your solutions?

A: A candidate’s answer should refer to at least authentication as well as authorization.  If forms are mentioned, the candidate should include solutions for password management.  Though answers will vary, having a clear approach to security is crucial for a solutions architect.  The need for a security design and architecture is a fact of today’s world.

Q3: How do you protect against injection attacks?

A: There are multiple different ways of approaching this question, but a candidate should include discussions of SQL injection and cross site scripting (XSS).  Any mentioned approaches should include cleaning and screening the input.  SQL injection conversations should include a conversation about parameterized queries and stored procedures.

Q4: How do you diagnose performance issues?

A: The candidate’s answer should include a discussion about latencies, as well as the capacities/bottlenecks of CPU, memory, disk, and network.  Solutions architects are often confronted with the most difficult problems and an understanding of isolating bottlenecks and resolving them.

Q5: What tools do you use for communicating architecture?

A: A candidate’s answer should include mechanisms for creating and distributing pictures of the solution with an appropriate number of boxes and arrows.  Any solutions architect will recognize the need for both written communication and pictures.  Lots of solution architects can draw pictures but they’re often not enough to convey a complete understanding.

Q6: How do you support the functional analysts (FA)?

A: The answer to this question should explain how the candidate would work with the FA and answer their questions – as well as reflect clarifying questions.  A successful solution architect is happy to help the FA however they can, and should show a readiness to cooperate.  Ultimately the solutions architect is the technical leader of the team and needs to support teamwork.

Q7: How do you support the development leads?

A: Similar to supporting the functional analysts, solution architects are resources for the development leads to help them solve the problems that are occurring while development is actually taking place.  A good candidate will recognize their importance in helping the development leads find solutions to their problems.

Q8: How do you address cache coherency?

A: A candidate’s answer will vary, but should at least mention the use of multi-server in memory caches, and caches that may be quasi-memory such as a SQL server database.  They should understand that a SQL server database is where the data gets maintained in memory by the SQL server predictive caching.  The candidate should be aware of problems with cached objects not being in-sync across multiple servers, and the need to clear cached objects when cache coherency is critical.

Q9: How do you address scalability?

A: Scalability can be addressed vertically (increasing the resources on the same server) or horizontally (across multiple servers).  Scalability is limited by single threaded operations, so a candidate should know to give them special consideration when considering how to scale an application.

Q10: How do you address fault tolerance?

A: The candidate should recognize the need to eliminate single points of failure as much as is possible.  It’s also important for candidates to be aware of the ability to ensure that sessions can be switched to a new server at any point — even if there’s a performance impact to this switch.  Modeling failures – and testing with simulated failures – are important for any solutions architect.