LIVE SUBMISSIONS — 3 DAYS

Challenges

Write fast code. Get certified benchmark results.

Your submissions are private. Submit as often as you like — only your best score appears on the leaderboard.

Subscription required. Challenge access is available for $5/month, or included with a HFT University subscription. Preview Challenge 01 before subscribing. Log in if you already have access.
Challenge 1st 2nd 3rd
Challenge 01: Best Price Tracker
Build a high-performance limit order book that supports:
Jikan
14 cycles/op
Stefan P.
15 cycles/op
Suntae L.
15 cycles/op
Challenge 01: Best Price Tracker (Rust)
Build a high-performance limit order book in Rust that supports:
Emmanuel M.
36 cycles/op
Roman Sztergbaum
36 cycles/op
Pavel Baikov
37 cycles/op
Challenge 02: Multi-Symbol Order Book
Build a multi-symbol order book with queue position tracking, venue interaction,
Suntae L.
730 cycles/op
agherghesanu
974 cycles/op
Pavel Baikov
1008 cycles/op
Challenge 02: Multi-Symbol Order Book (Rust)
Build a multi-symbol order book in Rust with queue position tracking, venue interaction,
Pavel Baikov
1252 cycles/op
Emmanuel M.
1843 cycles/op
Malacarne
1843 cycles/op
Challenge 03: Event Scheduler
Build a high-performance event scheduler that can handle millions of pending
Suntae L.
682 cycles/op
Roman Sztergbaum
768 cycles/op
Przemek S.
868 cycles/op
Challenge 03: Event Scheduler (Rust)
Rust version of the challenge. See C++ challenge page(/challenge/event-scheduler) for full problem description.
Pavel Baikov
1178 cycles/op
Hang
1426 cycles/op
Roman Sztergbaum
5952 cycles/op
Challenge 04: Event Scheduler (No Cancel)
## Event Scheduler — No Cancel
h3isenberg
310 cycles/op
Suntae L.
310 cycles/op
bdcbqa
310 cycles/op
Challenge 04: Event Scheduler — No Cancel (Rust)
Implement a high-performance event scheduler (no cancel support).
Hang
1488 cycles/op
Roman Sztergbaum
1798 cycles/op
Baseline (reference solution)
4340 cycles/op
Challenge 05: Ring Buffer
Build a high-performance SPSC (Single-Producer Single-Consumer) ring buffer for passing market data messages between...
kkhan
155 cycles/op
K. Reznik
248 cycles/op
Suntae L.
279 cycles/op
Challenge 06: Seqlock
Build a high-performance sequence lock (seqlock) that allows one writer and multiple readers to share data without blocking.
Suntae L.
352 cycles/op
kkhan
353 cycles/op
Noah
354 cycles/op
Challenge 07: String Map
Build a high-performance hash map with string keys (up to 16 characters) and `uint32_t` values.
Przemek S.
16 cycles/op
kkhan
17 cycles/op
Stephane D.
17 cycles/op
Challenge 07: String Map (Rust)
Implement a fast string-keyed hash map. Insert 100K key-value pairs, then look them all up.
Siddharth Singh
63 cycles/op
Malacarne
89 cycles/op
Abdulkadir Poyraz
128 cycles/op
Challenge 08: Ticker Lookup
Build the fastest possible ticker symbol lookup table.
Michael Ostapenko
10 cycles/op
Fatih Karaoğlu
13 cycles/op
Przemek S.
14 cycles/op
Challenge 08: Ticker Lookup (Rust)
Build a lookup table for ticker symbols. `build()` is called once (not timed),
Malacarne
16 cycles/op
Siddharth Singh
17 cycles/op
Abdulkadir Poyraz
18 cycles/op
Challenge 09: FIX Parser
Build a high-performance FIX protocol parser for order messages.
Przemek S.
696 cycles/KB
Malacarne
760 cycles/KB
blumper m.
761 cycles/KB
Challenge 09: FIX Parser (Rust)
Rust version of the challenge. See C++ challenge page(/challenge/fix-parser) for full problem description.
Jakub Koszuliński
741 cycles/op
Baseline (reference solution)
743 cycles/op
Challenge 10: FIX Encoder
Build a high-performance FIX message encoder for order entry.
blumper m.
107 cycles/msg
Przemek S.
118 cycles/msg
Malacarne
161 cycles/msg
Challenge 10: FIX Encoder (Rust)
Rust version of the challenge. See C++ challenge page(/challenge/fix-builder) for full problem description.
Baseline (reference solution)
3831 cycles/op
Jakub Koszuliński
3909 cycles/op
Challenge 11: Rolling Counter
Build a high-performance rolling window event counter.
blumper m.
14 cycles/op
Przemek S.
17 cycles/op
bdcbqa
18 cycles/op
Challenge 11: Rolling Counter (Rust)
Maintain a sliding window count of events. Update time, add events, query count.
Malacarne
23 cycles/op
Baseline (reference solution)
24 cycles/op
Jakub Koszuliński
24 cycles/op
Challenge 12: Feed Arbiter
## Feed Arbitration
blumper m.
17 cycles/op
Malacarne
20 cycles/op
Przemek S.
20 cycles/op
Challenge 12: Feed Arbiter (Rust)
Rust version of the challenge. See C++ challenge page(/challenge/feed-arbiter) for full problem description.
Jakub Koszuliński
925 cycles/op
Baseline (reference solution)
933 cycles/op
Challenge 13: Implied Book
## Implied Order Book
blumper m.
92 cycles/op
Przemek S.
95 cycles/op
Hang
189 cycles/op
Challenge 13: Implied Book (Rust)
Rust version of the challenge. See C++ challenge page(/challenge/implied-book) for full problem description.
Malacarne
131 cycles/op
Jakub Koszuliński
597 cycles/op
Baseline (reference solution)
597 cycles/op
Challenge 14: Build Optimization
This challenge is different. The code is frozen — you cannot modify it.
Przemek S.
2278 cycles/kop
blumper m.
2290 cycles/kop
K. Reznik
2299 cycles/kop
Challenge 15: Implied Volatility
## Implied Volatility Solver
Malacarne
23 cycles/op
bdcbqa
53 cycles/op
blumper m.
63 cycles/op
Challenge 15: Implied Volatility (Rust)
Rust version of the challenge. See C++ challenge page(/challenge/implied-vol) for full problem description.
Malacarne
32 cycles/op
Baseline (reference solution)
731 cycles/op
Jakub Koszuliński
732 cycles/op
Challenge 16: Monte Carlo Pricer
## Monte Carlo Option Pricer
Davide Spataro
206809 cycles/op
frfx
324035 cycles/op
Hang
790484 cycles/op
Challenge 16: Monte Carlo Pricer (Rust)
Rust version of the challenge. See C++ challenge page(/challenge/monte-carlo) for full problem description.
Siddharth Singh
17585588 cycles/op
Jakub Koszuliński
131927651 cycles/op
Baseline (reference solution)
132753483 cycles/op
Challenge 17: Cross-CCX Ring Buffer
Same interface as Challenge 05(/challenge/ring-buffer) — but the producer
kkhan
310 cycles/op
K. Reznik
682 cycles/op
Przemek S.
930 cycles/op
Challenge 18: Build Optimization II
A second flags-only challenge. The code is frozen — your only lever is the
Przemek S.
5 cycles/op
K. Reznik
6 cycles/op
Baseline (reference solution)
11 cycles/op