Today, I happened to take an interview of a 9 years experienced guy in java technologies working as a senior tech lead in one of the global software services companies. Following are some of the questions that were discussed:
1. Define reliability and its different attributes.
2. If customer mentions reliability as one of the most important non functional requirements, what architecture and design strategy would you recommend to the team to achieve a high state of reliability?
3. If given a set of business requirements, what are done of the key steps you would undertake to reach uppity lowest most level of designing classes, interface etc? How would you identify and design data model?
4. What are key steps for putting architecture and design around application security requirements?
5. What is difference between performance and scalability? What is linear scalability and how could you achieve the state of linear scalability?
6. What are code smells?
7. What are test smells?