The toughest programming quiz questions online — 20 tough questions spanning software engineering and system design.
1. What is 'technical debt'?
💡 Technical debt describes the future cost of extra work caused by choosing a quicker, easier solution now rather than a better one.
2. What does 'fault tolerance' mean in system design?
💡 Fault tolerance describes a system's ability to keep functioning correctly even when some of its components fail.
3. What does 'MVC' stand for in software architecture?
💡 MVC stands for Model-View-Controller, a design pattern separating an application's data, UI, and control logic.
4. What is a 'microservices architecture'?
💡 Microservices architecture structures an application as a collection of small, independently deployable services.
5. What is a 'message queue' used for in distributed systems?
💡 A message queue enables asynchronous, decoupled communication between different components of a distributed system.
6. What is 'eventual consistency' in distributed systems?
💡 Eventual consistency guarantees that, given enough time without new updates, all replicas will converge to the same value.
7. What is 'latency' in system performance?
💡 Latency measures the time delay between when a request is made and when a response is received.
8. What is 'caching' used for in system design?
💡 Caching temporarily stores frequently accessed data closer to where it's needed, improving retrieval speed.
9. What is 'horizontal scaling'?
💡 Horizontal scaling increases capacity by adding more machines or nodes to a distributed system.
10. What is 'REST' in the context of web APIs?
💡 REST (Representational State Transfer) is an architectural style for designing networked applications using standard HTTP methods.
11. What does 'SOLID' represent in object-oriented design principles?
💡 SOLID represents five key object-oriented design principles that promote maintainable, understandable, and flexible software.
12. What does 'throughput' measure in system performance?
💡 Throughput measures the amount of work or data a system can process within a given period of time.
13. What is the purpose of a 'design pattern' in software engineering?
💡 A design pattern provides a general, reusable solution template to a commonly occurring software design problem.
14. What is the purpose of an 'API gateway' in a microservices architecture?
💡 An API gateway serves as a single entry point, routing incoming requests to the appropriate underlying microservices.
15. What does 'CI/CD' stand for?
💡 CI/CD stands for Continuous Integration and Continuous Deployment (or Delivery), automating software build, test, and release processes.
16. What is 'vertical scaling'?
💡 Vertical scaling increases a system's capacity by adding more resources, like CPU or RAM, to an existing machine.
17. What is 'scalability' in system design?
💡 Scalability refers to a system's ability to handle growing amounts of work by adding resources.
18. What does 'load balancing' do in system design?
💡 Load balancing distributes incoming network traffic across multiple servers to optimize resource use and prevent overload.
19. What does the 'CAP theorem' state about distributed systems?
💡 The CAP theorem states a distributed system can only fully guarantee two of three properties: Consistency, Availability, and Partition tolerance.
20. What does 'idempotent' mean in the context of an API operation?
💡 An idempotent operation produces the same result whether performed once or multiple times.