The Optiver OA is the online assessment Optiver sends after you apply to a campus role. It is not a single test. Software candidates take a HackerRank coding assessment; trading and research candidates take timed reasoning tests on the Optiver Assessment Portal. Before you plan anything, find out which version your invitation names, because you only get one attempt every eight months.
This guide separates three kinds of information: what Optiver states on its own pages, what candidates report online, and original practice we wrote for this article. The exercises are teaching material, not Optiver questions.
Research note: Sources were checked on November 5, 2026. We read Optiver's careers pages and recruitment FAQs, plus candidate reports on Reddit, Glassdoor and Taro. We did not take the assessment. SkillCopilotAI publishes this guide and offers an AI interview assistant; the preparation advice does not depend on our product.
What Optiver officially says about the OA
Optiver publishes rules about the assessment, but not its contents, timing per section or pass mark. These points come from Optiver's own pages:
| Rule | What Optiver says | Source |
|---|---|---|
| One attempt per 8 months | Assessments can be completed once every 8 months. If you took the tests for a similar role in that window, your earlier results are reused and no new invitation is sent. | Optiver Europe recruitment FAQ |
| No resets | Optiver says it cannot offer resets or retakes within 8 months once an attempt has started, including after technical issues. | Europe FAQ |
| Scores carry across offices | The 8-month limit applies "across all offices and roles" with the same assessment components. | Optiver Sydney campus FAQ |
| No calculators | "The use of calculators is not permitted during our assessment." | Sydney FAQ |
| Software languages | "You can complete the Software HackerRank assessment in C++, Java and Python." | Sydney FAQ |
| FPGA roles | The FPGA HackerRank assessment covers digital circuit design, FPGAs and code comprehension in VHDL and Verilog. | Sydney FAQ |
| Time to complete | The Graduate Software Engineer (Amsterdam) posting asks you to confirm you can take the assessment within 7 days of being selected. | Graduate Software Engineer posting |
| Feedback | Optiver says it cannot give specific feedback on applications or assessments in the early stages. | Europe FAQ |
Two practical consequences follow. First, apply to your top-choice role first: the Sydney FAQ accepts one application at a time, and a test taken for a lower-priority role can be reused for a later one. Second, fix your setup before you click start. The Europe FAQ suggests syncing your device clock, turning off any VPN, and using the authenticator-app option if the one-time login code does not arrive.
Official public FAQ excerpt, captured November 5, 2026. Source: Optiver Europe recruitment FAQ. This is a recruitment-policy screenshot, not an assessment screen. Open the image to read it at full size.
Where the OA sits in the process
The Sydney FAQ lists different paths by role:
- Software Developer: application, online assessment, behavioural interview, technical interview, final day with two technical interviews and one behavioural interview.
- Quantitative Trading: application, online assessment, behavioural interview, final interview day.
- Quantitative Research and Market Risk: application, online assessment, behavioural interview, technical assignment, final interview.
Other offices may differ. The Amsterdam Career Kickstarter Tech page, for example, lists just two stages: an online assessment with 7 days to complete it, then a technical interview.
Software engineer OA: what candidates report
Optiver confirms that a Software HackerRank assessment exists. The format details below come from candidates, so the cycle and office matter:
- A Reddit user applying for the 2026 new-grad SWE role in Amsterdam listed the components in their invitation email: one coding question of about 75 minutes in C++, Java or Python; a "Coding Knowledge" section of about 20 minutes on programming and computer systems; and Zap-N, a set of short neuro-assessment games.
- A July 2026 r/csMajors thread on the 2027 internship describes a proctored test in the HackerRank desktop app with one hard low-level or object-oriented design problem in 90 minutes, few test cases and little starter code.
- A Taro report from a 2025 US graduate candidate describes two medium OOP coding questions in two hours, 20 multiple-choice CS questions, and Zap-N. Their example task was writing OOP methods with a priority heap.
The common thread is that the coding part rewards building a small, correct stateful system rather than recalling a trick. Your own invitation decides the question count and timing.
Trading and research OA: what candidates report
Optiver does not publish the contents of its trading assessments. A 2026 r/quantfinance post quotes module descriptions that the poster says appeared in their assessment:
- Beat The Odds: probability questions, limited time per question, about 25 minutes overall.
- NumberLogic: a numerical reasoning test of 25 minutes.
- Likelihood-list: ranking outcomes from most to least likely, about 25 minutes.
- Intervals: estimating numbers with upper and lower bounds, about 15 minutes.
- Orderbooks: finding trades where buying and selling combinations produces a profit, about 15 minutes.
Prep sites also describe a fast mental-arithmetic test, often called "80 in 8". We could not find that format on an Optiver page, so treat it as a candidate report. What is official is the no-calculator rule, which makes mental arithmetic worth practicing for any quantitative track.
Original practice: a software OA style exercise
Original practice problem, not an Optiver question. Build a limit order book for a single instrument.
submit(order_id, side, price, qty)adds a buy or sell limit order and returns the trades it causes.- A buy matches resting sells priced at or below its limit; a sell matches resting buys at or above its limit.
- Better prices fill first. At the same price, the older order fills first.
- Each trade executes at the resting order's price. Return trades as
(resting_id, incoming_id, price, qty). - Any unfilled quantity rests in the book.
cancel(order_id)removes a resting order and returns whether it existed.
Before writing code, write one hand-checked case. Resting sells: s1 5 at 101, then s2 3 at 100, then s3 2 at 100. A buy b2 for 7 at 101 should fill s2 (3 at 100), then s3 (2 at 100), then 2 of s1 at 101, leaving 3 on s1.
import heapq
class OrderBook:
def __init__(self):
self.bids = [] # heap of (-price, seq, order_id)
self.asks = [] # heap of (price, seq, order_id)
self.live = {} # order_id -> [side, price, remaining_qty]
self.seq = 0
def _best(self, heap):
# Skip orders that were cancelled; they are removed lazily.
while heap and heap[0][2] not in self.live:
heapq.heappop(heap)
return heap[0] if heap else None
def submit(self, order_id, side, price, qty):
if qty <= 0 or order_id in self.live:
raise ValueError("invalid order")
trades = []
book = self.asks if side == "buy" else self.bids
while qty > 0:
top = self._best(book)
if top is None:
break
resting_id = top[2]
resting_price = self.live[resting_id][1]
crosses = price >= resting_price if side == "buy" else price <= resting_price
if not crosses:
break
fill = min(qty, self.live[resting_id][2])
trades.append((resting_id, order_id, resting_price, fill))
qty -= fill
self.live[resting_id][2] -= fill
if self.live[resting_id][2] == 0:
del self.live[resting_id]
heapq.heappop(book)
if qty > 0:
self.seq += 1
self.live[order_id] = [side, price, qty]
if side == "buy":
heapq.heappush(self.bids, (-price, self.seq, order_id))
else:
heapq.heappush(self.asks, (price, self.seq, order_id))
return trades
def cancel(self, order_id):
return self.live.pop(order_id, None) is not NoneWhy it works. Each heap orders by price, then by an increasing sequence number, so the top is always the best price and, within it, the oldest order. Cancelling deletes the order from live only; _best discards stale heap entries when they reach the top. That keeps cancel at O(1) and each submit at O(k log n) for k fills, with each order pushed and popped at most once.
Edge cases we tested (Python 3, locally): a full sweep across two price levels with a partial fill on the third, cancelling the same order twice (second call returns False), a buy resting on an empty ask side, and an aggressive sell that fills against two bids before resting its remainder.
Our original practice exercise, run locally with Python on November 5, 2026: four checks passed. The image typesets the actual execution log for readability; it is not a terminal screenshot, an Optiver question or an assessment result. Open the image for the full-size output.
Follow-ups to expect from yourself or an interviewer: support order amendments that lose time priority, report the best bid and ask, and explain what changes if prices are floats. A common answer to the last one is to store prices as integer ticks.
Original practice: quantitative warm-ups
These are original drills in the style candidates describe. Work them without a calculator, then check.
- Probability. Two fair dice are rolled. What is the chance the sum is at least 10? Answer: 6 of 36 outcomes (4-6, 5-5, 6-4, 5-6, 6-5, 6-6), so 1/6.
- Expected value. You roll one die and may reroll once, keeping the second roll. When should you reroll, and what is the game worth? Answer: reroll on 1, 2 or 3, since a fresh roll averages 3.5. Value = (4 + 5 + 6)/6 + (3/6)(3.5) = 2.5 + 1.75 = 4.25.
- Sequence. 3, 7, 15, 31, ? Answer: 63. Each term is double the last plus one.
- Order book. Venue A shows a bid of 101 for a share; venue B shows an ask of 100 for the same share. What do you do? Answer: buy at 100 on B and sell at 101 on A, for 1 per share, limited by the smaller displayed size.
- Mental math. 0.125 × 64. Answer: 8, because 0.125 is 1/8.
For scoring, a QuantVault prep page says some modules subtract a point for wrong answers. Optiver does not confirm this. If your instructions mention negative marking, skipping a question you can't estimate may beat guessing.
A two-week preparation plan
| Days | Software track | Trading or research track |
|---|---|---|
| 1–3 | Confirm language and assessment name; rebuild the order book above from memory | Daily no-calculator arithmetic: fractions, percentages, multiplication |
| 4–7 | Two more stateful designs: a rate limiter and an LRU cache, each with your own tests | Probability and expected value drills; timed sets with a skip rule |
| 8–10 | OS, memory, concurrency and complexity review for a knowledge section | Number sequences and range estimates with honest upper and lower bounds |
| 11–13 | One timed 75–90 minute session in the HackerRank environment | Mixed timed sets; practise order-book profit spotting |
| 14 | Check device time, VPN and login method; rest | Same setup checks; rest |
The job posting is also a guide to the knowledge section. Optiver's Graduate Software Engineer listing asks for "a solid grasp of algorithms, memory and concurrency models, CPU-architecture, operating systems and relational databases."
Checklist before you start
- The assessment name and components in your invitation match the role you applied for.
- You know your deadline. If you cannot meet it, the Sydney FAQ asks you to email the recruitment team.
- You have a quiet slot long enough for every component. An attempt cannot be reset once started.
- Device clock is synced, VPN is off, and you can log in to the Assessment Portal.
- No calculator on the desk for quantitative sections.
- If you need a reasonable adjustment, request it through Optiver's contact form before starting.
FAQ
Can I retake the Optiver OA? Not within 8 months of starting an attempt, according to Optiver's Europe FAQ.
Is the Optiver OA on HackerRank? Optiver names HackerRank for its Software and FPGA assessments. Its FAQs refer to trading assessments on the Optiver Assessment Portal.
Do software engineers take the mental math test? Candidate reports for SWE describe coding, a CS knowledge section and Zap-N games, not an arithmetic sprint. Check your invitation.
Do I need finance knowledge? Optiver's job pages do not list it as a requirement for campus software roles. The order-book exercise here is useful practice for stateful design either way.
For general platform preparation, see our HackerRank OA preparation guide the Citadel HackerRank guide, and, if a later invitation uses CodeSignal instead, our CodeSignal OA guide.
Continue preparing
Editor selected
Citadel HackerRank: SWE OA Preparation and Original Practice
Prepare for the Citadel HackerRank SWE assessment with two original coding exercises, tested Python solutions, a focused study plan, and official process guidance.
Editor selected
HackerRank OA Preparation Guide 2026: Question Types, Practice Plan, and Tips
Prepare for a HackerRank OA in 2026 with current question types, coding and SQL patterns, a focused 7-day practice plan, timing tactics, and test-day tips.
Editor selected
CodeSignal OA Guide 2026: Score, Questions & Practice
Prepare for CodeSignal online assessments in 2026 with common question types, scoring expectations, coding patterns, and an ethical AI-assisted practice plan.
Same content type
Jane Street OA HackerRank: Format, Reported Questions and Probability Practice
Prepare for a Jane Street HackerRank OA with official interview guidance, a clearly dated candidate account, and four probability exercises with checked answers.
Ready to ace your next technical interview?
Practice interview questions, review your explanations, and explore SkillCopilotAI for interview preparation.
