Thursday, 2 January 2014

Architecture Interview Questions

I've written about architecture topics in the past, especially relating to the role of "Architect" in Digital TV Systems & Software projects. Though I'm no architect myself, although I could very well have become an architect if I chose to maintain on the purely technical path; I still have to be across the technical disciplines at the high level, when it comes to program or project managing large-scale technical projects. 

When I start or join a new project, one of the first things (apart from familiarizing myself with the product spec) I do is to seek out the architects, looking for any technical information in the form of design,
(document/wiki/etc) that scopes the high level system design or architecture that we're trying to implement & deliver. 

Failing that, having found no clearly defined architect role, I would go about setting up this role as a matter of urgency. No architect means no technical ownership, means flaky interfaces, chaotic system integration points, and a very bumpy project ride lays ahead!

In the past I have worked very closely with many great architects, both as an engineer as well as manager, that I've learnt from this experience enough to know what to look for when seeking out architects. If a project requires it, I do get involved with the interviewing architects, system integration managers, project managers and other roles. 

I thought I'd share a list of some of the questions I generally tend to ask when interviewing for the role of Architect in a Software/Systems project - hope you find it useful. If you read my other posts on architecture, you will get to understand I have a more holistic expectations from architects, rather than just answering this list of ~100 questions!

  1. Tell me something about you, who you are, talk me through the highlights of your CV, etc.
  2. What's the most complex project you worked on and what impact/role did you have/play?
  3. How many systems have you deployed? What kind of systems were they?
  4. What in your experience is the typical duration of a complex systems product development project?
  5. What do you think makes an ideal system architect?
  6. Explain how you would go about settling a dispute between differing solutions by two architects for a specific task?
  7. Can you find an example where you think the architect's have got it wrong? How would you influence this to an outcome more favourable?
  8. Explain how you would go about a task - for e.g. propose a technology potentially disruptive idea to a company's core business?
  9. Would you say you work best on your own, or in a team? Do you like to be left alone?
  10. Where do you see TV 5-10 years time?
  11. What are the challenges facing IPTV?
  12. What could be a potential interactive model for IPTV, for e.g. is there a red button equivalent?
  13. What STB model is suitable for broadband TV - thin client or thick client?
  14. Do you mind travelling often?
  15. Are you comfortable with the abstract model, high level design or do you like getting hands-on?
  16. What's your take on giving responsibility for design elements to component teams?
  17. Do you take criticism personally?
  18. Are you familiar with UML? How often do you use it?
  19. Do you think open solutions are beneficial to PayTV Operators or not?
  20. What is your understanding of Agile Architecture?
  21. What is your view on Scaled Agile Framework?
  22. What is your impression of Disciplined Agile Delivery?
  23. What are the challenges with "mile-wide, inch-thick" principles of architecture?
  24. Is there a difference between Design Patterns and Architecture?
  25. What is the starting point for any project that involves a complex architecture?
  26. Describe the components of a Set-Top-Box system?
  27. Describe an end-to-end solution for TV Search & Advertising?
  28. What are typical challenges in providing a rich user experience in an EPG?
  29. Where do you see the STB technology evolving in five years time?
  30. What is your view of Open Source technologies?
  31. What was the largest size team you've worked on as an architect?
  32. How would you deal with inheriting an architectural design, that is well established, but you've detected flaws in the design?
  33. What is your view of working with Project & Program managers?
  34. Describe your work ethic as an architect?
  35. Discuss a past experience where you had to start with a blank piece of paper?
  36. How do architects deal with conflicting design solutions - what is your preferred method?
  37. What level of documentation do you insist on as stock-standard requirements when starting out on a new system design?
  38. What are the essential topics you would include in a STB Architecture document?
  39. Have you ever created a STB system architecture document yourself?
  40. Describe some of the documentation you've created as systems / technical specification documents in the past.
  41. How do you feel about peer reviewing your design & architecture?
  42. Do you feel that POCs are deserving of design / architecture reviews?
  43. What level of detail or abstraction is recommended when it comes to architecture?
  44. In terms of software component design, what topics are mandatory?
  45. Describe a process for maintaining backwards compatibility of component interfaces?
  46. Do you believe architects should remain close to the code?
  47. What are the trends in technology convergence with Internet / server-side techniques for re-use in embedded systems?
  48. Describe the different types of Video On Demand solutions.
  49. How does Progressive Download work?
  50. How would you explain Adaptive Bitrate Streaming to a non-technical person?
  51. What is your view of the Android Software Stack?
  52. What is your preferred choice for Inter-Process Communication methods (IPC, dBus, COM, etc)?
  53. What is cloud computing and how does it apply to Digital TV systems?
  54. What factors are important when it comes to profiling performance of a system?
  55. To what level of detail should an architect be involved in specifying non functional & performance requirements?
  56. How much should an architect rely on Product Owners or Business Analysts for understanding work to be done?
  57. Is there a difference between an architect and a business analyst?
  58. Why are STBs so far apart from Smart phones, when STBs came into being long before smart phones??
  59. Some argue the STB software is not unique or novel, not solving any new problem domain - what are your views about this statement?
  60. How do you remain current as an architect?
  61. Are you involved in any open source development projects? If so, which one & what's sparked your interest?
  62. What's your understanding about IPv6 & what are the typical IPv4/v6 migration scenarios a system must support?
  63. Have you had any exposure to distributed systems development? If so, highlight some of the typical challenges one faces with federated systems?
  64. How does billing work in a typical PayTV setup, or similar telco setup?
  65. What benefits does MVC pattern bring to application component design?
  66. When was the last time you hacked some code together? What was it for?
  67. What is your take on the difference, if any, between great software engineering & great coding?
  68. Do you think that developers should own testing?
  69. Do you agree that an architect is also responsible for guiding testers on test scenarios?
  70. What is your view of Systems Integration versus Systems Architecture?
  71. In this role you will be working with people from diverse cultures - tell us about the multicultural / people experiences you've had in the past?
  72. How should companies go about iterating fast and delivering high quality systems at the same time to tight deadlines?
  73. What is a network-dvr or npvr? How does it work?
  74. How does the BBC iPlayer system work - what is so marvelous about that system?
  75. In terms of big data, data analytics, what scenarios from Digital TV features are relevant to leverage these technology areas?
  76. Personalised recommendations has been a topic of interest going on close to two decades. Some successes have been made with TiVo recommendations, yet not many PayTV operators have jumped at recommendations. Online, however, personalised recommendations has had more success, e.g. Amazon. Describe some of the challenges facing the Digital TV systems space with respect to implementing a recommendation scheme.
  77. Are you familiar with Brooks's "The Mythical Man-Month"? If so, can you please share with us any take-aways?
  78. Do you follow any blogs, podcasts, or do you maintain your own blog or podcast?
  79. What groups do you follow on LinkedIn?
  80. Is there any work or activities that bore you, you'd rather watch paint dry?
  81. If you were assigned as a mentor to junior engineers, what would be the one of the first discussions?
  82. Are you familiar with TOGAF or any other IEEE accreditation - what's your take on be accredited by a formal professional body?
  83. What is your view on specialisation versus generalisation in terms of architecture career paths?
  84. If I were to ask your colleagues how to describe you, what would they say?
  85. How do you feel about doing presentations at large (developer) conferences?
  86. How do you see multi-core platforms impacting STB software implementations?
  87. Describe the core elements of MPEG PSI/DVB SI specification.
  88. How would you go about scanning & building up a services list based on vanilla PSI & DVB Spec?
  89. What other challenges are involved with platform operators management of service & channel lists?
  90. A lot of new features in DTV involve aggregation of content from a variety of sources, but still require the user to access content information from any service - how does one go about designing unique events?
  91. Have you ever designed a custom private data table? If so, explain why it had to be done, and the layout of such a table?
  92. Please process the following hexadecimal dump [usually a table byte sequence from a transport stream].
  93. What is the difference between GStreamer and Microsoft DirectShow architecture, if any?
  94. Why has the unix file-descriptor based design stood the test of time for so long, what is unique about it?
  95. What are the various scenarios to consider when maintaining a common architecture that must support multiple paytv operator platforms in different markets?
  96. What is your understanding of configuration options for any software stack: build config, dynamic config, runtime config, system configuration, component configuration, etc? 


  1. "80.Is there any work or activities that bore you, you'd rather watch paint dry?"

    - Yes. This interview.

  2. This is the best set of questions Ive read for an enterprise architect. thanks

  3. Every one can write/find Qs but it will be nice to give brief answer from Employer's eye.