- Compilers and the build processNot started45 min
- CMake projectsNot started45 min
- SanitizersNot started40 min
- Fundamental types and initialisationNot started40 min
- ReferencesNot started40 min
- const-correctnessNot started40 min
- Functions and overloadingNot started40 min
- LambdasNot started40 min
- std::functionNot started40 min
- Classes and constructorsNot started45 min
- RAIINot started50 min
- The rule of zeroNot started45 min
- Raw pointersNot started40 min
- std::unique_ptrNot started45 min
- std::shared_ptr and weak_ptrNot started45 min
- Move semanticsNot started1 hr
- Value categoriesNot started50 min
- ExceptionsNot started45 min
- std::expectedNot started45 min

C++ Roadmap
Coming soon
Modern C++ for low-latency trading systems: memory, templates, concurrency and the tooling desks rely on. Each topic is a short lecture followed by a lab you code in the browser.
Syllabus
93 topics · opens soon- std::vectorNot started45 min
- std::arrayNot started35 min
- std::mapNot started40 min
- std::unordered_mapNot started45 min
- IteratorsNot started40 min
- Ranges and viewsNot started45 min
- STL algorithmsNot started45 min
- std::stringNot started40 min
- std::string_viewNot started35 min
- std::spanNot started35 min
- Parsing CSV filesNot started50 min
- Reading binary data filesNot started50 min
- chrono durationsNot started40 min
- chrono time pointsNot started40 min
- Function templatesNot started55 min
- Class templatesNot started55 min
- ConceptsNot started1 hr
- constexpr functionsNot started50 min
- consteval and compile-time tablesNot started50 min
- CRTPNot started1 hr
- Policy-based designNot started1 hr
- Perfect forwardingNot started50 min
- std::variant and std::visitNot started55 min
- std::optionalNot started40 min
- Linear algebra with EigenNot started1 hr
- Random number enginesNot started50 min
- Monte Carlo pricingNot started1 hr
- Designing an option pricing libraryNot started1 hr 15 min
- Greeks by finite differencesNot started55 min
- Automatic differentiationNot started1 hr 10 min
- Root findingNot started50 min
- Numerical integrationNot started50 min
- Unit testing with GoogleTestNot started50 min
- Mocking dependenciesNot started45 min
- Benchmarking with Google BenchmarkNot started55 min
- Debugging with GDBNot started55 min
- Finding memory errors with ASanNot started45 min
- Finding undefined behaviour with UBSanNot started45 min
- The cache hierarchyNot started1 hr
- Data layout: AoS vs SoANot started1 hr
- Branch predictionNot started55 min
- Inlining and compiler optimisationNot started55 min
- Memory poolsNot started1 hr
- Custom allocatorsNot started1 hr
- Arena allocationNot started55 min
- Small-buffer optimisationNot started50 min
- Flat containersNot started50 min
- Profiling with perfNot started55 min
- Flame graphsNot started45 min
- SIMD intrinsicsNot started1 hr 10 min
- Auto-vectorisationNot started55 min
- ThreadsNot started50 min
- Mutexes and locksNot started50 min
- Condition variablesNot started50 min
- std::atomicNot started55 min
- The C++ memory modelNot started1 hr 15 min
- A lock-free SPSC ring bufferNot started1 hr 30 min
- False sharingNot started55 min
- NUMA and CPU pinningNot started1 hr
- Thread poolsNot started1 hr
- Task-based parallelism with futuresNot started55 min
- Order book data structuresNot started1 hr
- Price-time priorityNot started55 min
- A matching engineNot started1 hr 30 min
- UDP multicastNot started55 min
- Binary market data protocolsNot started1 hr
- Market data handlersNot started1 hr 15 min
- The FIX protocolNot started55 min
- Order-entry gatewaysNot started1 hr
- Kernel-bypass networkingNot started1 hr 30 min
- Measuring tail latencyNot started1 hr 15 min
- Python bindings with pybind11Not started1 hr 30 min
- A backtesting engine in C++Not started2 hr
- Capstone: a low-latency trading engineNot started4 hr