0
0
LLDsystem_design~20 mins

KISS (Keep It Simple) in LLD - Practice Problems & Coding Challenges

Choose your learning style9 modes available
Challenge - 5 Problems
🎖️
KISS Mastery Badge
Get all challenges correct to earn this badge!
Test your skills under time pressure!
🧠 Conceptual
intermediate
2:00remaining
Why is simplicity important in system design?

Consider a system designed with many complex components and dependencies. What is the main benefit of keeping the design simple?

AIt reduces the chance of bugs and makes the system easier to maintain.
BIt allows the system to use the most advanced technologies regardless of complexity.
CIt makes the system design look more impressive to stakeholders.
DIt ensures the system has the maximum number of features from the start.
Attempts:
2 left
💡 Hint

Think about how complexity affects maintenance and errors.

Architecture
intermediate
2:00remaining
Choosing between a simple and complex architecture

You need to design a user authentication system. Which design follows the KISS principle best?

AImplement a complex multi-layered security system with many encryption steps and fallback mechanisms.
BBuild a system that integrates multiple third-party authentication providers with custom adapters for each.
CCreate separate microservices for login, logout, session, token refresh, and user profile management from the start.
DUse a single service that handles login, logout, and session management with clear, simple APIs.
Attempts:
2 left
💡 Hint

Focus on simplicity and avoiding unnecessary complexity early on.

scaling
advanced
2:00remaining
Scaling a simple design without breaking KISS

You have a simple web service that handles 100 requests per second. Traffic is expected to grow to 10,000 requests per second. Which approach best scales the system while keeping it simple?

AAdd a load balancer and replicate the existing service instances horizontally without changing the core logic.
BRewrite the service using multiple complex caching layers and distributed databases immediately.
CSplit the service into many microservices handling small parts of the logic before traffic increases.
DAdd a message queue and asynchronous processing for all requests regardless of current load.
Attempts:
2 left
💡 Hint

Think about scaling by adding more of the same simple components first.

tradeoff
advanced
2:00remaining
Tradeoff between simplicity and feature richness

You are designing a messaging app. Adding end-to-end encryption increases complexity. What is a good KISS-based approach?

ASkip encryption entirely to keep the system as simple as possible forever.
BAdd end-to-end encryption from the start to avoid redesigning later, even if it complicates the initial design.
CStart with a simple messaging system without encryption, then add encryption later once the core works well.
DBuild two separate apps: one simple without encryption and one complex with encryption.
Attempts:
2 left
💡 Hint

Consider starting simple and adding complexity only when needed.

estimation
expert
3:00remaining
Estimating system complexity impact on maintenance effort

A simple system has 5 components and requires 10 hours of maintenance per month. A complex system has 15 components with many dependencies. Assuming maintenance effort grows quadratically with component count, estimate the monthly maintenance hours for the complex system.

A30 hours
B90 hours
C45 hours
D150 hours
Attempts:
2 left
💡 Hint

Use the formula: effort ∝ (number of components)^2.