Software Developer exam: what is tested and how to prepare
Written tests for developer posts check whether you can reason about code, not whether you have memorised a language's syntax. Expect to predict the output of a short program, choose the right data structure for a problem, spot a bug, estimate how an algorithm scales, or pick the safe way to query a database. Some employers add a practical coding task, but the written paper usually rewards clear thinking about how software behaves.
How this guide was made
Written for this site with AI assistance, then checked automatically before publishing. The topic table, sample questions, worked examples and study plan are generated from this site’s question bank: each worked example is recalculated by separate code, and each sample answer says where it came from.
The guide deliberately states no salaries, grades, pass marks or exam dates. Those change, and they could not be checked here, so take them from the advert itself.
This site is independent and is not affiliated with MIFOTRA or any employer.
What the questions draw on
- Programming fundamentals: variables, types, conditions, loops, functions and scope.
- Object-oriented concepts: classes, objects, encapsulation, inheritance, polymorphism and abstraction.
- Data structures: arrays, lists, stacks, queues, hash tables and trees, and when to use each.
- Algorithms: searching, sorting, recursion, and describing efficiency with Big O notation.
- Databases: tables, keys, relationships, SQL queries, normalisation and indexes.
- Web development: HTTP methods and status codes, APIs, and the roles of client and server.
- Development practice: version control with Git, levels of testing, and agile methods such as Scrum.
- Secure coding: input validation, SQL injection, authentication and handling secrets safely.
Where to spend your study time
The suggested emphasis reflects what this position works with day to day. It is a study guide, not a published exam blueprint.
| Area | Suggested emphasis | Questions in the bank | Practise |
|---|---|---|---|
| Software development | 56% | 378 | In the full bank |
| Cloud and emerging technology | 22% | 188 | In the full bank |
| Cybersecurity | 11% | 541 | Security |
| Linux command line | 11% | 360 | In the full bank |
Reading code without running it
Many questions show a few lines of code and ask for the output or the final value of a variable. Trace them by hand: write down each variable and update it line by line as the loop runs. Candidates who guess the pattern often miss an off-by-one error or a condition that ends the loop early. Tracing slowly is faster than guessing and being wrong.
Choosing data structures and judging efficiency
A question may describe a task, such as checking whether a username already exists among millions, and ask for the best structure. A hash-based set or map gives near-constant lookup, while searching an unsorted list takes longer with every item added. Learn the common Big O classes, from O(1) and O(log n) to O(n), O(n log n) and O(n²), and connect each to a familiar operation, such as binary search for O(log n).
Databases and security together
Database questions often hide a security question. Building a query by joining user input into an SQL string invites SQL injection; parameterised queries prevent it. Passwords should be stored as salted hashes, never in plain text or with reversible encryption. When a question asks for the best way to handle user data, the secure answer is usually the expected one.
How to prepare
Write code every day, even briefly, in the language the advert names or in one you know well. Practise tracing programs on paper, because the test will not give you a debugger. Review the fundamentals of data structures, SQL and HTTP, and build one small project that uses a database and an API, so the concepts connect. Finish with timed practice papers to build pace. If the advert mentions a practical test, spend part of that time writing complete small programs against a clock rather than only answering questions.
Try a few now
An employee unknowingly downloads a malicious browser extension that records every keystroke made on banking websites and sends the text to an external server. This malware is a...
- Keylogger
- Worm
- Adware
- Rootkit
Show the answer
A. Keylogger
A keylogger records user keystrokes, often to steal credentials, credit card numbers, or other sensitive information.
Original practice question, written against published exam objectives. Open this question
An end-user downloads what appears to be a legitimate free PDF editor from a third-party site. Once installed, it edits PDFs but also silently installs a backdoor. This is an example of a...
- Ransomware
- Worm
- Trojan
- Keylogger
Show the answer
C. Trojan
A Trojan horse disguises itself as legitimate or desirable software to trick users into installing it, while hiding malicious functionality.
Original practice question, written against published exam objectives. Open this question
An endpoint detection system flags unusual PowerShell activity. Investigation reveals a malicious script running entirely in RAM, heavily obfuscated, leaving no executable footprint on the hard drive. This is...
- Rootkit
- Logic bomb
- Fileless malware
- Trojan
Show the answer
C. Fileless malware
Fileless malware operates in memory (RAM) and abuses native legitimate tools (like PowerShell or WMI) rather than dropping an executable file on the disk.
Original practice question, written against published exam objectives. Open this question
A receptionist receives a call from someone claiming to be the CEO, demanding a password reset immediately because they are about to start a critical board meeting. This BEST describes which attack?
- Tailgating
- Whaling
- Vishing
- Phishing
Show the answer
C. Vishing
Vishing (voice phishing) uses a telephone call to socially engineer a victim. The urgency and authority are classic elements of this attack.
Original practice question, written against published exam objectives. Open this question
More from the full bank
- An API returns "the resource has a new permanent URL". Which status code is that? · Software Development
- Which term describes an operation that produces the same result whether applied once or many times? · Software Development
- What does `git branch` do? · Software Development
- What does `git merge` do? · Software Development
- Which term describes an isolated process sharing the host kernel rather than virtualising hardware? · Emerging Technology
- In emerging technology, what is SaaS? · Emerging Technology
Anyone can read these questions. Their answers and explanations open with an access code.
Common questions
Which programming language will the test use?
Adverts often name the languages the employer uses. Where they do not, questions tend to use pseudocode or a widely known language. Focus on concepts that transfer between languages, and be comfortable in at least one.
Is there usually a practical coding test?
Many employers add one, either on a computer or on paper. Practise solving small problems end to end: reading input, processing it and producing correct output, with tidy, readable code.
How much mathematics do I need?
Mostly logic, basic arithmetic and an understanding of how algorithms grow with the size of their input. Some roles, such as data or graphics work, need more, and their adverts usually say so.
More Software Developer guides
- Software Developer practice questions with answers
- Software Developer calculations with worked answers
- Software Developer interview questions and answers
- 30-day Software Developer exam study plan
- Software Developer skills and qualifications
- Software Developer job description and duties
- How to become a Software Developer in Rwanda
- Software Developer exam mistakes to avoid
- Software Developer key topics and quick reference
- Software Developer CV: what to include
- Certifications worth getting as a Software Developer