Architecture interview questions
Questions
-
Difference between the role of the Architect and the Tech Lead
- Main concerns
- What’s the most difficult aspect of the switch from TL to Sln Arch
- Do you follow any particular mentoring strategy?
- Do you establish guidelines, best practices? How? How to make sure they are followed?
- How do you relate with Tech Leads in terms of the design/development process?
-
Mention a couple of web Architecture Styles and describe them => check this (https://docs.microsoft.com/en-us/dotnet/architecture/modern-web-apps-azure/common-web-application-architectures)
- Monolithic
- N-layers
- Onion/Hexagonal/Clean Architecture (DDD/Dep Inv)
- Vertical Slice Architecture (https://jimmybogard.com/vertical-slice-architecture/)
-
Do you know Clean Architecture?
- Formerly known as Onion, Hexagonal
- A domain-centric approach to organizing dependencies
- https://www.freecodecamp.org/news/a-quick-introduction-to-clean-architecture-990c014448d2/
-
What’s Event Driven Arch and it’s benefits (as opposed to request-driven)
- Event vs Message
- What’s Eventual Consistency? Have you been exposed to a situation where you have needed it, or considered it?
- BASE (Basically Available, Soft-state, Eventually-consistent) as opposed to ACID (Atomic, consistent, isolated, durable)
- Azure ServiceBus/RabbitMQ (or message broker) vs Kafka (Azure event hub), and where would you use each?
- Any experience with Kafka? From your experience, any warning in its adoption?
- How it relates to Microservices architecture?
- Kafka experience?
- describe a Kafka setup
- environments approach
- throughput
- any cost-control strategy?
- any scaling out strategy, ?
- describe a Kafka setup
-
What’s DDD?
- Do you know DDD? How is it related to uServices. => Entity vs Value Object vs Aggregates
-
What is uServices?
- Difference with SOA?
- Which are the benefits and trade offs?
- How is data managed?
- Have you been involved in migrating a monolith into microservice
- any patterns, experiences?
- Benefits of monolithic architecture
-
Team Topologies
-
Exercise: Authentication and Authorization in microservices * what’s your approach? * Relation between OAuth and OIDC * diferent scenarios covered by the OAuth flows => Authorization Code flow: server-server => Authorization Code Flow with PKCE(proof key for code exchange) => Resource Owner Password Flow
-
Azure web app High Availability
- Availability Zones (Zone redundant), Regions
- Active-Active, Active-Passive
- RPO
- RTO
- Deployment strategies
- Canary deployment vs Blue/Green
- How to implement it in Azure
-
What is Cache
- Difference with a DDBB
- In Memory (not persisted) vs Persisted: trade offs
- If cache is so fast, why not just use it as the ddbb storage directly?
-
K8s/Docker
- AKS: any experience?
- Explain the setup: general pieces/responsibilities
- service mesh?
- security?
- packaging (helm)
-
Patterns
- Refactoring patterns
- e.g. refactoring monolith into uServices
- Any anecdote with a particularly helpfull pattern in your personal experience?
- Refactoring patterns
-
CI/CD
- CI vs C Delivery vs C Deployment
- Favorit branching strategy
-
Non Functional Requirements
- what are NFRs? Quality Attributes? Architecturally Significant requirements?
- How do you manage them, govern them, document them in the process?
- https://iso25000.com/index.php/en/iso-25000-standards/iso-25010
- https://www.scaledagileframework.com/nonfunctional-requirements/
- https://en.wikipedia.org/wiki/Architecturally_significant_requirements
-
Technical Governance
- Documentation, how do you approach documentation?
- What sort of diagrams do you use if any, and why? How do you organize them?
-
Methodology
- What’s agile methodology about? Can you resume in one sentence?
- Your favorite/most important SCRUM ceremony?
- In a project where there’s a PO, SM, Tech Lead and Dev Team, how would the life cycle or a requirement would be and how does the Architect comes into the picture
-
Describe your favorite architecture design project
Mobile - react native
- Explain why react native vs native?
- Explain react native
- Por qué te gusta más react qeu angular?
- Who would you setup a SDLC
○ branches
○ environments (Android and iOS)
○ tests
- Process wise
○ setup agile process: from reqs to implementation
○ how to ensure quality?
○ design?
- How would you approach mobile and web? 5/5
○ Sharing level
○ How close/apart would the projects be?
○ Similarity of solutions?
○ => was in a project where sharing between web and mobile worked well
○ Define the platform is KEY
- App design:
○ How to decouple modules in a mobile app?
- Cómo estructuras una solución?
- Microfrontends?