Software Engineering Online Test
For jobseekers
Practice your skills and earn a certificate of achievement when you score in the top 25%.
Take a Practice TestFor companies
Screen real Software Engineering skills, flag human or AI assistance, and interview the right people.
About the test
The Software Engineering online test assesses knowledge of software development and engineering concepts, principles, and best practices through a series of multiple-choice and fill-in-the-blank questions.
The assessment includes work-sample tasks such as:
- Creating RESTful APIs.
- Using OOP principles and OOP design patterns to write reusable code.
- Selecting an appropriate solution and software architecture to satisfy specific business needs.
A good software engineer needs a solid understanding of how software systems work together, how to optimize them, and how to design systems to avoid potential issues.
Sample public questions
During sprint planning, one teammate proposed the following list of possible rate-limiting algorithms to manage incoming traffic, using the user ID as an identifier:
- Sliding Window
- Token Bucket (n tokens; 1 request for 1 token)
For the following requirements, specify and briefly explain the algorithm chosen, along with the reason for not selecting the alternative:
- Payment gateway attempts:
- Allow 10 attempts per 10 min per user.
- Prevents brute force attacks in short time periods.
- Social media feed API:
- On app open and focus, permit burst of ~100 requests.
- For steady updates, allow ~2 requests per second (sustained).
(An answer of 10 to 15 words is sufficient for each explanation)
You're designing an undo system for a text editor and need to choose a data structure to record user actions. Each action should be recorded so that the system can quickly reverse recent actions. The system has the following requirements:
- Every new user action must be recorded (for example, typing a character or deleting a line).
- The “undo” must retrieve and remove the most recent action in constant time O(1).
Your colleagues proposed using Stack or Queue based on the requirements. Write a short explanation on how the functionality of either data structure can or cannot fulfill the requirements.
(An answer up to 50 words is sufficient)
In a language that supports the OOP paradigm, we have the following code that serializes the content of a shopping cart to JSON format:
class ShoppingCart
private content : Dictionary<Int, String>
public function serialize() : String
return new JsonSerializer().serialize(content.clone())
end function
end class
class JsonSerializer
public function serialize(value : Dictionary<Int, String>) : String
// Code that serializes dictionary to JSON format and returns it as string
end function
end class
A client wants to allow loosely coupled plugins to be able to serialize the shopping cart content to their own formats (e.g., XML). Select lines of code that, together, would extend the code above to allow this.
A large library uses a REST API that integrates with the library's web page and mobile app.
The following graph contains the frequency of various HTTP status codes for the REST API:

What can be concluded from this?
For jobseekers: get certified
Earn a free certificate by achieving top 25% on the Software Engineering test with public questions.
Take a Certification TestSample silver certificate
Sunshine Caprio
Java and SQL TestDomeCertificate
For companies: premium questions
Buy TestDome to access premium questions that can't be practiced.
Ready to interview?
Use these and other questions from our library with our
Code Interview Platform.

37 more premium Software Engineering questions
Panel System, Sort Comprehension, Do Recursive, Collaborative Software, Spreadsheet App, Blame, Service Discovery, HTTP Post, Cookies, Tree Traversal, Sorted Array Search, Engine, Advertising Platform, Welcome Screen, Cloud Solution, Candidates REST API, Mock Configuration, Car Persistence, REST Communications, Web Protocol, Fair Contest Winner, Social Connections, Internet Provider, Find Element, List Traversal, Event Planning, Return Value, Max Heap, Product Versioning, Order API, Task List, Soccer API, UML Diagrams, Filtered Stock, Document Management, URL Shortener, Coding Contest.
Skills and topics tested
- OOP & Design Patterns
- Behavioral Patterns
- Creational Patterns
- Design Patterns
- Data Structures & Algorithms
- Algorithmic Thinking
- Complexity
- Recursion
- Solution & Software Architecture
- Software Architecture
- Software Architecture Patterns
- Cloud Computing
- Solution Architecture
- Collaborative Environment
- Microservices
- REST API & HTTP
- HTTP
- Tree Traversal
- Binary Search
- Inheritance
- Method Overriding
- REST
- Inversion of Control
- OOP
- Network Security
- Protocol
- Dynamic Programming
- Graphs
- Greedy Algorithm
- Iteration
- Breadth-first Search
- Searching
- Linked List
- Backtracking
- Heap
- Priority Scheduling
- Data Structures
- Dynamic Array
- UML
- Design Tradeoffs
- Data Modeling
- Queue
For job roles
- Back-End Developer
- Full-Stack Developer
- Mobile Developer
- Software Developer
- Web Developer
- Web Front-End Developer
Sample candidate report
Need it fast? AI-crafted tests for your job role
TestDome generates custom tests tailored to the specific skills you need for your job role.
Sign up now to try it out and see how AI can streamline your hiring process!
What others say
Simple, straight-forward technical testing
TestDome is simple, provides a reasonable (though not extensive) battery of tests to choose from, and doesn't take the candidate an inordinate amount of time. It also simulates working pressure with the time limits.
Jan Opperman, Grindrod Bank
Product reviews
Used by
Solve all your skill testing needs
150+ Pre-made tests
130+ skills
AI-ready assessments
How TestDome works
Choose a pre-made test
or create a custom test
Invite candidates via
email, URL, or your ATS
Candidates take
a test remotely
Sort candidates and
get individual reports



