Search test library by skills or roles
⌘ K

System Design Online Test

The Software System Design Online Test uses scenario-based MCQs to evaluate candidates on their proficiency in designing software systems that meet functional and non-functional requirements. The test assesses candidates' ability to identify system requirements, choose appropriate architectures and design patterns, and create high-level design specifications. It focuses on database design, data modeling, system integration, security, performance optimization, and quality assurance.

Get started for free
Preview questions

Screen candidates with a 45 mins test

Test duration:  45 mins
Difficulty level:  Moderate
Availability:  Ready to use
Questions:
  • 7 System Design MCQs
  • 5 Technical Aptitude MCQs
  • 5 Data Structures MCQs
Covered skills:
System Design
Algorithm and Data Structures
Network Protocols
Database Design
Distributed Systems
Cloud Computing
Performance Optimization
Microservices Architecture
Get started for free
Preview questions

Use Adaface tests trusted by recruitment teams globally

Adaface is used by 1500+ businesses in 80 countries.

Adaface skill assessments measure on-the-job skills of candidates, providing employers with an accurate tool for screening potential hires.

Amazon Morgan Stanley Vodafone United Nations HCL PayPal Bosch WeWork Optimum Solutions Deloitte NCS Sokrati J&T Express Capegemini

Use the System Design Test to shortlist qualified candidates

The System Design Online Test helps recruiters and hiring managers identify qualified candidates from a pool of resumes, and helps in taking objective hiring decisions. It reduces the administrative overhead of interviewing too many candidates and saves time by filtering out unqualified candidates at the first step of the hiring process.

The test screens for the following skills that hiring managers look for in candidates:

  • Able to design scalable and efficient system architectures
  • Capable of analyzing and optimizing performance in distributed systems
  • Proficient in designing and implementing database schemas
  • Skilled in understanding and utilizing network protocols
  • Expertise in cloud computing technologies and concepts
  • Knowledgeable in microservices architecture principles
  • Able to apply algorithms and data structures to solve complex problems
  • Capable of optimizing performance in system design
  • Experienced in working with large-scale distributed systems
  • Proficient in designing fault-tolerant and highly available systems
Get started for free
Preview questions

Screen candidates with the highest quality questions

We have a very high focus on the quality of questions that test for on-the-job skills. Every question is non-googleable and we have a very high bar for the level of subject matter experts we onboard to create these questions. We have crawlers to check if any of the questions are leaked online. If/ when a question gets leaked, we get an alert. We change the question for you & let you know.

How we design questions

These are just a small sample from our library of 15,000+ questions. The actual questions on this Software System Design Online Test will be non-googleable.

🧐 Question

Medium

Optimal Data Replication and Consistency in Distributed Systems
Data Consistency
Load Balancing
Fault Tolerance
Solve
Consider a distributed e-commerce platform designed to handle high traffic volumes and ensure data consistency across its services. The platform uses a distributed database that replicates data across multiple nodes to increase availability and performance. To balance the load, it employs a load balancer that distributes user requests evenly across these nodes. The system is designed to tolerate the failure of up to two nodes without affecting the platform's overall availability.

Given the critical requirement for strong consistency to prevent issues such as overselling of products, the system uses a consensus algorithm for replication. The database is configured with a replication factor of 5, meaning each piece of data is stored on 5 nodes. For read and write operations to be considered successful, they must be acknowledged by a majority of the nodes involved in the operation.

Assuming all nodes have equal hardware resources and network latency between nodes is negligible, which of the following configurations would best meet the platform's requirements for high availability, performance, and strong consistency?
A: Reads require acknowledgment from 2 nodes, and writes require acknowledgment from 4 nodes.
B: Reads and writes both require acknowledgment from 3 nodes.
C: Reads require acknowledgment from 3 nodes, and writes require acknowledgment from 2 nodes.
D: Reads and writes both require acknowledgment from 4 nodes.
E: Reads require acknowledgment from 1 node, and writes require acknowledgment from 5 nodes.
F: Reads and writes both require acknowledgment from 5 nodes.

Easy

Real-time Vehicle Tracking for Logistics Company
Data Storage
Scalability
Real-time Updates
NoSQL
Solve
TransitTrack is a logistics company that needs to store real-time location data (latitude, longitude) of their vehicles as they move across the city. The system should be optimized for fast read and write operations to provide real-time tracking. TransitTrack can tolerate occasional data loss since the vehicle locations are updated frequently. Which of the following data storage solutions should TransitTrack implement for their vehicle tracking system?
A: Utilize a relational database management system (RDBMS) like PostgreSQL with a table indexed on the vehicle_id column for efficient data insertion and retrieval.
B: Implement an in-memory cache like Redis to store the vehicle location data, with the vehicle_id as the key and the latitude-longitude pair as the value.
C: Use a document-oriented database like MongoDB to store the vehicle location data as GeoJSON documents, enabling geospatial querying capabilities.
D: Develop a custom in-memory data structure using a spatial indexing technique like an R-tree to store and query the vehicle location data efficiently.
E: Use a time-series database like InfluxDB to store the vehicle location data along with timestamps, allowing for efficient querying and analysis of historical location data.

Medium

Session stickiness with ELB
Cookies
Solve
Johnny Bravo is setting up a new e-commerce store for men's clothing. He set up session stickiness with ELB. But he does not want ELB to manage the cookie, he wants the application to manage the cookie. When the server instance, which is bound to a cookie, crashes what do you expect will happen?
A: ELB will throw an error due to cookie unavailability
B: The response will have a cookie but stickiness will be deleted
C: The session will be sticky and ELB will route requests to another server as ELB keeps replicating the Cookie
D: The session will not be sticky until a new cookie is inserted

Medium

Updating UI after Encoding
UI Design
Decoupling
Solve
Imagine you’re a developer at Songbird Inc, working on a music editing app for mobile devices. The app allows users to edit audio clips and export them in various audio formats. Once a user finishes editing a clip, they can choose an output format and initiate the encoding process. This encoding process can take a while depending on the chosen format and the length of the clip. Because it’s a mobile app, you want to avoid freezing the UI while encoding is in progress.

What’s the most appropriate approach to notify the user when the encoding is complete and the exported file is ready?
A: Directly modify the UI elements from within the encoding logic. When encoding finishes, the encoding system can directly tell the UI components to update themselves with the new information (e.g., change a button text to “Export Complete”).
B: Separate the UI update logic from the encoding process. The encoding system should trigger a custom event (e.g., “EncodingFinishedEvent”) upon completion. UI components can listen for this event and update themselves accordingly when it’s received.
C:  Have the UI code continuously check on the encoding status with a loop (often referred to as busy waiting or polling). The loop would keep checking a flag or variable set by the encoding system until the encoding is complete. Once complete, the UI can update itself.
D:  Introduce a central message queue or event bus. The encoding system can publish a message to the message queue upon finishing the task. Separate UI update logic would be subscribed to the queue, listening for relevant messages. When it receives the message about encoding completion, it can update the UI.
E: Let the encoding logic return a callback function to the UI layer when it’s initiated. Once encoding is finished, the encoding system calls back this function, allowing the UI to update itself.

Medium

Decryptor
Strings
Solve
What does the following pseudo code print?
 image

Hard

Fibonacci codes
Time Complexity
Pseudo Code
Solve
Here are three pseudocodes for calculating the Nth Fibonacci number. Which of the following statements about these codes are true?
 image
A: Time complexity/efficiency of CODE 1, CODE 2, CODE 3 is the same.
B: CODE 2 is more space-efficient than CODE 3.
C: CODE 3 is more space-efficient than CODE 2.
D: CODE 2 is more time-efficient than CODE 1.
E: CODE 3 is more time-efficient than CODE 1.

Hard

Palindrome Test cases
Strings
Solve
Go through the following faulty palindrome detection pseudocode and test cases. For which of the test cases would the code return true?
 image
Testcases
A: a
B: aba
C: aaa
D: aac

Medium

Rewards Activities Order
Database Connection
Solve
A new popular app tracks the activities performed by its users and grants them rewards based on each individual's total activities performed in a year. This data is maintained in a database table (activitesinfo), with the following columns: userid, totalactivities, reward. This year, due to fundraising activity, the company has decided to further reward its users by enhancing the reward as per the following formula: If reward < = 4000, increase it by 2%, If 4000 < reward <= 8000, increase it by 4%, If reward > 8000, increase it by 6%.
The tech team has written three different scripts to calculate increment for each slab, each script is to run as a separate transaction. Here are the three scripts:
Script 1:
For users with reward <= 4000, set reward = reward * 1.02

Script 2:
For users with reward > 4000 and reward <= 8000, set reward = reward * 1.04

Script 3:
For users with reward > 8000, set reward = reward * 1.06
Each script is to be executed separately. Which of the following options will update the rewards as expected:
A: Execute Script 1 followed by Script 2 followed by Script 3
B: Execute Script 2 followed by Script 3; Script 1 running concurrently throughout
C: Execute Script 3 followed by Script 2; Script 1 running concurrently throughout
D: Execute Script 3 followed by Script 2 followed by Script 1
E: Execute Script 2 followed by Script 3 followed by Script 1

Hard

Graph Traversal and Data Storage
Graph Theory
Algorithm Analysis
Solve
Consider the following pseudo code implementing a specific graph traversal algorithm:
 image
What is the order in which the nodes are processed, and which data structure best represents the graph `G` for efficient traversal?

Medium

Implementing a Browser's Back Button
Stack
Data Handling
Solve
You are tasked with implementing the "Back" button functionality in a web browser. This feature allows users to return to previously visited web pages in the order they were viewed. The browser maintains a history of URLs in a data structure. Considering the nature of web browsing, where users can go back multiple steps and then navigate to a new page (at which point the future history should be cleared), which data structure and algorithm would best implement this functionality?
A: Use a heap, add the current URL when navigating to a new page, and remove the top element when the back button is used.
B: Use a queue, enqueue the current URL when navigating to a new page, and dequeue when the back button is used.
C: Use a single stack, push the current URL when navigating to a new page, and pop when the back button is used.
D: Use an array, add the current URL to the end when navigating to a new page, and remove the last URL when the back button is used.
E: Use a linked list, add the current URL to the head when navigating to a new page, and move backwards when the back button is used.
F: Use two stacks, push the current URL to the first stack when navigating to a new page, and use the second stack to store the pages when the back button is used.

Easy

Linked List Element Removal
Linked Lists
Element Removal
Solve
Consider a singly linked list where each node contains an integer value. Write a function `removeElement` that removes all occurrences of a specific value from the linked list. The function should return the head of the modified linked list.

Pseudo code:
 image
What will be the content of the linked list referred to by `result` after executing the above pseudo code?
🧐 Question🔧 Skill

Medium

Optimal Data Replication and Consistency in Distributed Systems
Data Consistency
Load Balancing
Fault Tolerance

2 mins

System Design
Solve

Easy

Real-time Vehicle Tracking for Logistics Company
Data Storage
Scalability
Real-time Updates
NoSQL

2 mins

System Design
Solve

Medium

Session stickiness with ELB
Cookies

2 mins

System Design
Solve

Medium

Updating UI after Encoding
UI Design
Decoupling

2 mins

System Design
Solve

Medium

Decryptor
Strings

2 mins

Technical Aptitude
Solve

Hard

Fibonacci codes
Time Complexity
Pseudo Code

2 mins

Technical Aptitude
Solve

Hard

Palindrome Test cases
Strings

2 mins

Technical Aptitude
Solve

Medium

Rewards Activities Order
Database Connection

3 mins

Technical Aptitude
Solve

Hard

Graph Traversal and Data Storage
Graph Theory
Algorithm Analysis

3 mins

Data Structures
Solve

Medium

Implementing a Browser's Back Button
Stack
Data Handling

2 mins

Data Structures
Solve

Easy

Linked List Element Removal
Linked Lists
Element Removal

2 mins

Data Structures
Solve
🧐 Question🔧 Skill💪 Difficulty⌛ Time
Optimal Data Replication and Consistency in Distributed Systems
Data Consistency
Load Balancing
Fault Tolerance
System Design
Medium2 mins
Solve
Real-time Vehicle Tracking for Logistics Company
Data Storage
Scalability
Real-time Updates
NoSQL
System Design
Easy2 mins
Solve
Session stickiness with ELB
Cookies
System Design
Medium2 mins
Solve
Updating UI after Encoding
UI Design
Decoupling
System Design
Medium2 mins
Solve
Decryptor
Strings
Technical Aptitude
Medium2 mins
Solve
Fibonacci codes
Time Complexity
Pseudo Code
Technical Aptitude
Hard2 mins
Solve
Palindrome Test cases
Strings
Technical Aptitude
Hard2 mins
Solve
Rewards Activities Order
Database Connection
Technical Aptitude
Medium3 mins
Solve
Graph Traversal and Data Storage
Graph Theory
Algorithm Analysis
Data Structures
Hard3 mins
Solve
Implementing a Browser's Back Button
Stack
Data Handling
Data Structures
Medium2 mins
Solve
Linked List Element Removal
Linked Lists
Element Removal
Data Structures
Easy2 mins
Solve

Test candidates on core System Design Hiring Test topics

System Design: System Design involves the process of defining the architecture, components, and interfaces of a system to satisfy specific requirements. It focuses on designing scalable, reliable, and maintainable systems that can efficiently handle high volumes of data and user traffic.

Algorithm and Data Structures: Algorithm and Data Structures deal with designing and analyzing efficient algorithms and organizing data for optimal storage and retrieval. Proficiency in this skill is crucial as it enhances problem-solving abilities and aids in writing code that performs optimally with minimal resources.

Network Protocols: Network Protocols are a set of rules that govern the communication between devices in a network. Understanding network protocols is essential for designing systems that can effectively exchange data, ensuring secure and reliable communication.

Database Design: Database Design is the process of creating a structured representation of data and defining the relationships between different entities. It involves creating efficient schemas that support data integrity, querying, and indexing for optimized storage and retrieval.

Distributed Systems: Distributed Systems consist of multiple interconnected components that work together to achieve a common goal. Measuring proficiency in this skill is important as it ensures understanding of concepts like consistency, fault tolerance, and load balancing, which are fundamental in building scalable and resilient applications.

Cloud Computing: Cloud Computing involves delivering on-demand computing resources over the internet. Proficiency in this skill enables efficient utilization of cloud-based services and infrastructure, leading to scalability, cost optimization, and enhanced performance of applications.

Performance Optimization: Performance Optimization focuses on improving the speed and efficiency of systems. Proficiency in this skill helps in identifying and resolving bottlenecks, optimizing algorithms, and eliminating redundant operations, leading to faster execution and reduced resource consumption.

Microservices Architecture: Microservices Architecture is an architectural approach where applications are built as a collection of small, loosely coupled services. Proficiency in this skill allows for scalability, fault tolerance, and flexibility in deploying, modifying, and scaling different components independently.

Get started for free
Preview questions

Make informed decisions with actionable reports and benchmarks

View sample scorecard

Screen candidates in 3 easy steps

Pick a test from over 500+ tests

The Adaface test library features 500+ tests to enable you to test candidates on all popular skills- everything from programming languages, software frameworks, devops, logical reasoning, abstract reasoning, critical thinking, fluid intelligence, content marketing, talent acquisition, customer service, accounting, product management, sales and more.

Invite your candidates with 2-clicks

Make informed hiring decisions

Get started for free
Preview questions

Try the most advanced candidate assessment platform

ChatGPT Protection

Non-googleable Questions

Web Proctoring

IP Proctoring

Webcam Proctoring

MCQ Questions

Coding Questions

Typing Questions

Personality Questions

Custom Questions

Ready-to-use Tests

Custom Tests

Custom Branding

Bulk Invites

Public Links

ATS Integrations

Multiple Question Sets

Custom API integrations

Role-based Access

Priority Support

GDPR Compliance


Pick a plan based on your hiring needs

The most advanced candidate screening platform.
14-day free trial. No credit card required.

From
$15
per month (paid annually)
love bonito

With Adaface, we were able to optimise our initial screening process by upwards of 75%, freeing up precious time for both hiring managers and our talent acquisition team alike!

Brandon Lee, Head of People, Love, Bonito

Brandon
love bonito

It's very easy to share assessments with candidates and for candidates to use. We get good feedback from candidates about completing the tests. Adaface are very responsive and friendly to deal with.

Kirsty Wood, Human Resources, WillyWeather

Brandon
love bonito

We were able to close 106 positions in a record time of 45 days! Adaface enables us to conduct aptitude and psychometric assessments seamlessly. My hiring managers have never been happier with the quality of candidates shortlisted.

Amit Kataria, CHRO, Hanu

Brandon
love bonito

We evaluated several of their competitors and found Adaface to be the most compelling. Great library of questions that are designed to test for fit rather than memorization of algorithms.

Swayam Narain, CTO, Affable

Brandon

Have questions about the System Design Hiring Test?

How does pricing work?

You can check out our pricing plans.

Can I customize the test?

Yes, absolutely. Custom assessments are set up within 48 hours based on your job description, and will include questions on all must-have skills you specify. Here's a quick guide on how you can request a custom test. You can also customize a test by uploading your own questions.

Can I combine multiple skills into one test?

Yes, absolutely. Custom assessments are set up based on your job description, and will include questions on all must-have skills you specify. Here's a quick guide on how you can request a custom test.

What roles can I use the System Design Test for?

Here are few roles for which we recommend this test:

  • Software Engineer
  • System Architect
  • Technical Lead
  • Full Stack Developer
  • DevOps Engineer
  • Database Administrator
  • Network Administrator
  • Cloud Engineer
  • Security Analyst
  • Performance Engineer
Can I see a sample test, or do you have a free trial?

Yes!

The free trial includes one sample technical test (Java/ JavaScript) and one sample aptitude test that you will find in your dashboard when you sign up. You can use it to review the quality of questions and the candidate experience of giving a test on Adaface.

You can preview any of the 500+ tests and see the sample questions to decide if it would be a good fit for your requirements.

How do I interpret test scores?

The primary thing to keep in mind is that an assessment is an elimination tool, not a selection tool. A skills assessment is optimized to help you eliminate candidates who are not technically qualified for the role, it is not optimized to help you find the best candidate for the role. So the ideal way to use an assessment is to decide a threshold score (typically 55%, we help you benchmark) and invite all candidates who score above the threshold for the next rounds of interview.

I'm a candidate. Can I try a practice test?

No. Unfortunately, we do not support practice tests at the moment. However, you can use our sample questions for practice.

customers across world
Join 1500+ companies in 80+ countries.
Try the most candidate friendly skills assessment tool today.
g2 badges
Ready to use the Adaface Software System Design Online Test?
Ready to use the Adaface Software System Design Online Test?
logo
40 min tests.
No trick questions.
Accurate shortlisting.
Terms Privacy Trust Guide
ada
Ada
● Online
Previous
Score: NA
Next
✖️