Every September to December, Optiver threads on 1point3acres (the largest Chinese-speaking tech-jobs forum) surge. Unlike traditional tech companies, Optiver is an Amsterdam-based global market maker, and its OA centers on trading scenarios: order book matching, market-making quotes, trading-sequence profit maximization, plus mental math and probability for Traders. This article aggregates the 2026 1point3acres reports by question type and adds a realistic VO coaching / mock-interview plan.
Optiver OA at a Glance (2026)
| Dimension | SWE Track | Trader Track |
|---|---|---|
| Platform | HackerRank | Optiver in-house + HackerRank |
| Duration | 90 minutes | 60-80 minutes |
| Format | 2-3 coding problems | Mental math + probability + 1 coding |
| Focus | Simulation, greedy, heaps | Expectation, Sharpe, market-making intuition |
| Difficulty | LC Medium-Hard | Very fast arithmetic + strong probability |
Recurring feedback on 1point3acres: 90 minutes for 3 problems is tight. Solving 2 with full AC is already strong enough to clear the OA bar.
Question Type 1: Trading Sequences (Max Weighted Subarray)
Problem
Given price series prices[] and matching volumes[], pick a contiguous subarray [l, r] (length ≥ 2) maximizing the weighted profit.
Idea
- Compute step profit:
profit[i] = (prices[i+1] - prices[i]) * volumes[i] - Apply a Kadane variant
- Return 0 if every step is negative (no trade)
Python
def max_trading_window(prices, volumes):
n = len(prices)
if n < 2:
return 0
profits = [(prices[i + 1] - prices[i]) * volumes[i] for i in range(n - 1)]
best = cur = 0
for p in profits:
cur = max(p, cur + p)
best = max(best, cur)
return best
Time O(n) Space O(n)
Question Type 2: Order Book Matching
Problem
Implement ADD / CANCEL / MATCH:
ADD side price quantity— limit orderCANCEL order_id— withdrawMATCH— whenbest_bid ≥ best_ask, trade at the resting (counter) price
Idea
- Bids: max-heap by price
- Asks: min-heap by price
- Cancels via lazy deletion — skip removed ids when peeking
Python
import heapq
class OrderBook:
def __init__(self):
self.bids = [] # (-price, id, qty)
self.asks = [] # (price, id, qty)
self.cancelled = set()
self.next_id = 0
def add(self, side, price, qty):
self.next_id += 1
oid = self.next_id
if side == "BUY":
heapq.heappush(self.bids, (-price, oid, qty))
else:
heapq.heappush(self.asks, (price, oid, qty))
return oid
def cancel(self, oid):
self.cancelled.add(oid)
def _clean(self, heap):
while heap and heap[0][1] in self.cancelled:
heapq.heappop(heap)
def match(self):
trades = []
while True:
self._clean(self.bids)
self._clean(self.asks)
if not self.bids or not self.asks:
break
best_bid = -self.bids[0][0]
best_ask = self.asks[0][0]
if best_bid < best_ask:
break
bp, bid, bq = heapq.heappop(self.bids)
ap, aid, aq = heapq.heappop(self.asks)
qty = min(bq, aq)
trades.append((best_ask, qty))
if bq > qty:
heapq.heappush(self.bids, (bp, bid, bq - qty))
if aq > qty:
heapq.heappush(self.asks, (ap, aid, aq - qty))
return trades
Time ADD/CANCEL O(log n), MATCH O(k log n)
Question Type 3: Allocation under Capital / Risk Constraints
Problem
n traders (capital, risk tolerance) and m opportunities (required capital, risk level, expected profit). Assign each opportunity to at most one qualifying trader, maximizing total profit.
Idea
- Sort opportunities by expected profit descending
- For each, pick the trader who qualifies and has the least slack (capital − required) — saves high capital for big tickets later
- Classic greedy
Python
def allocate(traders, opps):
# traders: [(cap, risk_tol)]
# opps: [(need_cap, risk_lv, profit)]
opps.sort(key=lambda x: -x[2])
used = [False] * len(traders)
total = 0
for need, risk, profit in opps:
pick, slack = -1, float("inf")
for i, (cap, tol) in enumerate(traders):
if used[i] or cap < need or tol < risk:
continue
if cap - need < slack:
slack = cap - need
pick = i
if pick >= 0:
used[pick] = True
total += profit
return total
1point3acres Frequency Table
| Category | Frequency | Core prep |
|---|---|---|
| Order book matching | ★★★★★ | Heaps + lazy delete |
| Max weighted subarray | ★★★★ | Kadane variant |
| Capital/risk allocation | ★★★★ | Greedy + sort |
| Simplified market-making | ★★★ | bid/ask spread |
| Mental math (Trader only) | ★★★★★ | 4-digit math in 8s |
VO Coaching / Mock Interview Roadmap
Optiver onsites on 1point3acres are described as long and high-pressure: technical + Trading Game + mental math + behavioral + hiring manager. The real value of VO coaching is not losing what you already know when stress kicks in.
1) VO loop breakdown
- Round 1: Algorithms / system design (45 min)
- Round 2: Order book / matching engine discussion
- Round 3: Behavioral (collaboration, pressure)
- Round 4: Trading game / probability (Trader only)
- Round 5: Hiring manager / team fit
2) How VO coaching is typically used
- First pass: bucket the last 30 days of 1point3acres reports by topic; list 5 variants each for Order Book and Trading Sequences
- Shadow interviews: Zoom + screen share; mentor plays interviewer with a 45-minute timer
- Replay debrief: record the session; focus on "started coding without clarifying" and "missed edge case" patterns
3) oavoservice's combined VO Coaching + VO Proxy package
oavoservice offers both VO Proxy (live interview support) and VO Coaching (mocks + question bucketing + recorded debriefs) for the full Optiver SWE / Trader loop:
- Pre-interview: VO Coaching mocks at realistic 90-minute pacing; minute-by-minute debriefs
- During the interview: VO Proxy live support so stress doesn't wipe out what you already know
- Between rounds: targeted follow-up patches before the next round
Reach out on WeChat Coding0201 for the full plan and pricing.
7-Day Sprint
| Day | Task |
|---|---|
| D1 | Read last 90 days of Optiver 1point3acres reports, bucket by type |
| D2 | Implement Order Book (with lazy delete) once; 5 test cases |
| D3 | Trading Sequences + Allocation: 3 variants each |
| D4 | Probability/expectation: 20 problems (Trader only) |
| D5 | One full 90-minute HackerRank-style mock |
| D6 | System design: matching engine + low-latency queues |
| D7 | Behavioral: STAR debrief, 2 team-conflict stories |
FAQ
Is Optiver OA basically LeetCode Hard?
The surface reads Medium, but 90 minutes × 3 problems + long English prompts + many edge cases puts the overall pressure at LC Hard. On 1point3acres, candidates who solve 2 with full AC have the highest passthrough.
Can I just memorize 1point3acres reports?
No. Optiver rotates ≥ 30% of problems yearly, but themes (matching, greedy allocation, profit subarray) are stable. Memorize patterns and templates, not statements.
SWE or Trader track?
If you can do two-digit multiplication in 8 seconds and have probability intuition, try Trader. Otherwise SWE — better suited to ACM-style backgrounds with strong Python.
Failed the OA — can I reapply?
Usually a 12-month cooldown. A few 1point3acres reports describe successful re-applications after 9 months with a referral and a stronger resume.
Preparing for Optiver via 1point3acres reports?
oavoservice tracks Optiver SWE / Trader OA and VO updates and offers question bucketing, variant walkthroughs, timed mocks and behavioral debriefs. Our mentors come from Optiver, Citadel, Jane Street and Five Rings, and can build a 1-2 week sprint around your weak spots.
👉 Add WeChat: Coding0201 — get Optiver high-frequency questions + VO coaching.
Contact
Email: [email protected]
Telegram: @OAVOProxy