💻
Programming Hard

Software Engineering and System Design

The toughest programming quiz questions online — 20 tough questions spanning software engineering and system design.

20 Questions
35s Per Question
0+ Plays
← All Programming Quizzes 📚 Study Guide for this category →
💡 Create account to save scores & earn XP
📋 View All 20 Questions & Answers

1. What is 'technical debt'?

  • A. The implied cost of additional rework caused by choosing an easy solution now instead of a better approach that would take longer ✓
  • B. A monetary loan for a software project
  • C. A type of bug
  • D. A software license fee

💡 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?

  • A. The ability of a system to continue operating properly in the event of a failure of some of its components ✓
  • B. The complete absence of bugs
  • C. The speed of a system
  • D. The visual design of a system

💡 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?

  • A. Model-View-Controller ✓
  • B. Multiple-Version-Control
  • C. Modular-Variable-Class
  • D. Managed-Virtual-Component

💡 MVC stands for Model-View-Controller, a design pattern separating an application's data, UI, and control logic.

4. What is a 'microservices architecture'?

  • A. An approach where an application is built as a collection of small, independently deployable services ✓
  • B. A single monolithic application
  • C. A type of database
  • D. A programming language

💡 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. Enabling asynchronous communication between different parts of a system ✓
  • B. Storing user passwords
  • C. Styling web pages
  • D. Compiling code

💡 A message queue enables asynchronous, decoupled communication between different components of a distributed system.

6. What is 'eventual consistency' in distributed systems?

  • A. A consistency model where, given enough time, all replicas will converge to the same value ✓
  • B. A guarantee of immediate consistency across all nodes
  • C. A type of database index
  • D. A type of encryption

💡 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?

  • A. The time delay between a request and its corresponding response ✓
  • B. The total amount of data processed
  • C. The number of users on a system
  • D. The visual design quality

💡 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?

  • A. Storing frequently accessed data temporarily for faster retrieval ✓
  • B. Permanently storing all data
  • C. Encrypting sensitive data
  • D. Compiling code

💡 Caching temporarily stores frequently accessed data closer to where it's needed, improving retrieval speed.

9. What is 'horizontal scaling'?

  • A. Adding more machines or nodes to a system to handle increased load ✓
  • B. Increasing the power of a single machine
  • C. Reducing the number of servers
  • D. Compressing data

💡 Horizontal scaling increases capacity by adding more machines or nodes to a distributed system.

10. What is 'REST' in the context of web APIs?

  • A. An architectural style for designing networked applications using standard HTTP methods ✓
  • B. A programming language
  • C. A database type
  • D. A security protocol

💡 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?

  • A. Five design principles intended to make software more understandable, flexible, and maintainable ✓
  • B. A type of database
  • C. A sorting algorithm
  • D. A testing framework

💡 SOLID represents five key object-oriented design principles that promote maintainable, understandable, and flexible software.

12. What does 'throughput' measure in system performance?

  • A. The amount of work a system can handle in a given period of time ✓
  • B. The visual quality of an application
  • C. The security level of a system
  • D. The number of bugs

💡 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. A reusable solution to a commonly occurring problem in software design ✓
  • B. A specific piece of code
  • C. A programming language
  • D. A testing framework

💡 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?

  • A. Acting as a single entry point that routes requests to the appropriate microservices ✓
  • B. Storing all application data
  • C. Styling the user interface
  • D. Compiling the application code

💡 An API gateway serves as a single entry point, routing incoming requests to the appropriate underlying microservices.

15. What does 'CI/CD' stand for?

  • A. Continuous Integration/Continuous Deployment (or Delivery) ✓
  • B. Central Interface/Central Design
  • C. Code Inspection/Code Debugging
  • D. Component Integration/Component Design

💡 CI/CD stands for Continuous Integration and Continuous Deployment (or Delivery), automating software build, test, and release processes.

16. What is 'vertical scaling'?

  • A. Increasing the resources (CPU, RAM) of an existing machine ✓
  • B. Adding more machines to a system
  • C. Reducing server load
  • D. Distributing traffic

💡 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?

  • A. The ability of a system to handle increased load by adding resources ✓
  • B. The speed of a single request
  • C. The security of a system
  • D. The visual design of an application

💡 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?

  • A. Distributes incoming network traffic across multiple servers ✓
  • B. Compresses data
  • C. Encrypts data
  • D. Sorts data

💡 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?

  • A. A distributed system can only guarantee two out of three: Consistency, Availability, and Partition tolerance ✓
  • B. All distributed systems are always consistent
  • C. Distributed systems cannot fail
  • D. All distributed systems are equally fast

💡 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?

  • A. Performing the operation multiple times has the same effect as performing it once ✓
  • B. The operation always fails
  • C. The operation is always slow
  • D. The operation cannot be repeated

💡 An idempotent operation produces the same result whether performed once or multiple times.

More Programming Quizzes

View all Programming quizzes →