Architecture
376 bites tagged Architecture — interview questions with model answers, and 60-second explainers.
Describe state hoisting in Jetpack Compose.
Tests your grasp of unidirectional data flow. Explain state hoisting is moving state up to make composables stateless. This improves reusability, testability, and creates a single source of truth. A red flag is defining it without explaining the benefits.
Bound Service Lifecycle: Config Changes and Multiple Clients
Tests deep knowledge of bound service lifecycles. A config change causes an unbind/rebind cycle, recreating the service. With multiple clients, the service isn't destroyed until the last one unbinds. Red flag: assuming the service survives the config change.
Hot vs. Cold Streams: StateFlow vs. Flow in Android
This tests your grasp of stream lifecycles. A great answer defines cold `Flow` (lazy, per-collector) vs. hot `StateFlow` (active, shared state) and uses a ViewModel UI state scenario. A red flag is mischaracterizing a `Flow` as a one-time operation.
When to use a sealed class instead of an enum?
Tests your grasp of Kotlin's type hierarchies. Use `sealed class` for states with associated data (e.g., `Success(data)`), as subclasses can have unique properties. Use `enum` for simple, constant states. A red flag is treating them as interchangeable.
Design a self-service analytics platform for non-technical users
Tests your ability to design a layered system for non-technical users. A great answer outlines a semantic layer for data modeling, a no-code UI for exploration, and a query generation engine.
Build a pipeline to load CSVs into a database
Tests your grasp of event-driven architecture and basic ETL. A good answer outlines a trigger (storage event), a processing function (serverless), and a destination (database), mentioning error handling. A red flag is describing a manual or cron-based process.
Build vs. Buy: Third-Party vs. In-House Analytics
Tests your grasp of the time-vs-control trade-off. A great answer weighs speed vs. customization and total cost of ownership. Advocating for 'build' without considering the massive, ongoing maintenance cost is a major red flag.
Atlassian Details its ML Studio Platform Design
Atlassian's ML Studio platform powers thousands of daily workflows for millions of Rovo users. It solves enterprise scaling issues with reusable modules, column-level data governance, and unified orchestration, offering a blueprint for building compliant…
How would you design an architecture for rapid product iteration?
Tests your grasp of evolutionary architecture for uncertain markets. A great answer outlines incremental change via modularity and CI/CD, fitness functions to guard qualities like security, and evolving across multiple dimensions (tech, data).
What is an Architectural Runway and how do you maintain it?
Tests balancing intentional architecture with emergent design in SAFe. Define it as the tech foundation for near-term features, built via Enabler stories. You contribute by identifying and implementing these enablers.
How to apply Conway's Law to design team structures?
Tests if you can use Conway's Law proactively (the 'Inverse Conway Maneuver'). Outline: define the target architecture, then align small, autonomous teams to its components. A red flag is seeing the law only as a constraint, not a tool for intentional design.
Decomposing a monolith for scaled agile teams
Tests your grasp of domain-driven design and data consistency in a microservice migration. A good answer identifies bounded contexts, defines versioned APIs, and uses event-based patterns for data.
Differentiating an MVP from a throwaway prototype
Tests your grasp of strategic technical investment. Differentiate by intent: an MVP is the first version, a prototype is disposable. A great answer introduces Minimum Viable Architecture (MVA) to support future needs.
Shared Solution vs. Duplication for Cross-Cutting Concerns
Tests your judgment on trade-offs between duplication, coupling, and velocity. A good answer weighs the cost of premature abstraction against future refactoring, using triggers like the 'Rule of Three' and evaluating the concern's volatility.
The Strangler Fig Pattern for Legacy System Refactoring
Tests your understanding of gradual legacy modernization and risk management. A great answer defines the pattern (new system grows over old), outlines the process (identify seams, build new, redirect traffic), and contrasts it with risky "big bang" rewrites.
Balancing Emergent Design with Long-Term Architectural Vision
This tests your grasp of scaling Agile. A strong answer defines emergent design and intentional architecture, explaining how an 'Architectural Runway' provides the technical foundation to balance them. A red flag is treating this as an 'either/or' choice.
Explain the Test Pyramid and its strategic use
Tests your grasp of balanced testing trade-offs. A good answer defines the Unit, Service, and UI layers, explains the cost/speed rationale, and applies it to a feature strategy. A red flag is describing the pyramid but not its strategic 'why'.
How does Agile's 'welcoming change' differ from chaos?
Tests if you know Agile flexibility requires engineering discipline. Answer by defining the difference (discipline vs. chaos), listing technical practices (TDD, CI/CD), and naming architectural patterns (modular design).
Container vs. Presentational: A Component Separation Pattern
Split components into 'smart' containers that handle data and logic, and 'dumb' presentational components that just render UI. This lets you reuse state across different views, like showing a product list in a grid or a table.
Vue Plugins: Add App-Wide Functionality
A Vue plugin packages reusable logic to add features across your entire app, like a global toolbox. Use them for routing, state management, or making custom functions globally available.
Angular Services: Your App's Shared Toolbox
An Angular service is a shared toolbox for your app. Instead of components building their own tools (like an HTTP client), they request a single instance from the dependency injector.
Vue Dynamic Components: Swap Components on the Fly
Use Vue's `<component :is="...">` element to render different components based on a state variable, like swapping views in a tabbed interface. The footgun: components are destroyed on switch; use `<KeepAlive>` to preserve their state and avoid losing user…
Angular's Hierarchical Dependency Injection
Angular's DI is a tree of injectors mirroring your components. When a component needs a service, Angular walks up the tree to find the first provider. Use it to scope services to UI branches, but beware: providing at a component level creates a new instance.
Real-time Collaboration: Figma's 'Multiplayer' Model
Real-time collaboration uses a central server as the single source of truth for a file. Instead of passing copies, users connect to the same live document, enabling simultaneous editing in tools like Figma.
Get Architecture bites daily.
Five a day, five minutes, offline. With quizzes so it sticks.
Open testing — you’ll join as an early tester.