InterviewStack.io LogoInterviewStack.io

Architectural Decision Making Questions

Assess how a candidate thinks through major system and technical decisions, including selecting architectures, technologies, and technical strategies. Expect discussion of evaluation criteria such as performance, reliability, scalability, complexity, cost, development velocity, team capability, maintenance burden, and long term evolution. Candidates should explain specific past decisions with clear articulation of the options considered, trade offs accepted, risk mitigation, observed consequences over time, what they would change with current knowledge, and evidence of nuanced judgment when balancing competing priorities. For senior and staff levels, this includes demonstrating influence across teams when making architecture calls, recognizing organization level costs of choices, and surfacing hidden operational or people costs.

EasyTechnical
26 practiced
Explain eventual consistency and strong consistency in distributed systems. For each model provide two concrete feature or system examples where that model is appropriate and explain the visible trade-offs to end users and engineers.
MediumTechnical
29 practiced
Implement a single-process token-bucket rate limiter class in Python that supports per-user limits and is safe for multithreaded use. The class should expose: __init__(max_tokens, refill_rate_per_second), and allow_request(user_id, now_timestamp) returning True/False. After coding, briefly describe how you'd extend this design to a distributed environment.
HardTechnical
28 practiced
Propose a framework to quantify technical debt across a codebase and prioritize remediation tasks. Identify measurable KPIs (e.g., defect rate, build time, test coverage), explain how to attribute impact to business outcomes, and describe a decision process balancing feature development with debt repayment.
MediumSystem Design
32 practiced
Design a feature-flagging strategy to safely roll out an architecture-changing feature (for example, splitting a read/write path). Include flag types (boolean, gradual rollout), kill switches, rollback plan, monitoring, and how to avoid flag proliferation.
HardTechnical
28 practiced
You need to introduce a behavioral change in an API that affects event ordering and several clients rely on the old ordering. Design a backward-compatible rollout plan that prevents client breakage, including contract changes, compatibility shims, migration windows, and a communication strategy with clients.

Unlock Full Question Bank

Get access to hundreds of Architectural Decision Making interview questions and detailed answers.

Sign in to Continue

Join thousands of developers preparing for their dream job.