HFT University
Benchmark. Compete. Prove.
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.
| 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 |