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.

9 modules93 graded labs~86 hoursBeginner → Expert

Syllabus

93 topics · opens soon
  1. Compilers and the build processNot started45 min
  2. CMake projectsNot started45 min
  3. SanitizersNot started40 min
  4. Fundamental types and initialisationNot started40 min
  5. ReferencesNot started40 min
  6. const-correctnessNot started40 min
  7. Functions and overloadingNot started40 min
  8. LambdasNot started40 min
  9. std::functionNot started40 min
  10. Classes and constructorsNot started45 min
  11. RAIINot started50 min
  12. The rule of zeroNot started45 min
  13. Raw pointersNot started40 min
  14. std::unique_ptrNot started45 min
  15. std::shared_ptr and weak_ptrNot started45 min
  16. Move semanticsNot started1 hr
  17. Value categoriesNot started50 min
  18. ExceptionsNot started45 min
  19. std::expectedNot started45 min
  1. std::vectorNot started45 min
  2. std::arrayNot started35 min
  3. std::mapNot started40 min
  4. std::unordered_mapNot started45 min
  5. IteratorsNot started40 min
  6. Ranges and viewsNot started45 min
  7. STL algorithmsNot started45 min
  8. std::stringNot started40 min
  9. std::string_viewNot started35 min
  10. std::spanNot started35 min
  11. Parsing CSV filesNot started50 min
  12. Reading binary data filesNot started50 min
  13. chrono durationsNot started40 min
  14. chrono time pointsNot started40 min
  1. Function templatesNot started55 min
  2. Class templatesNot started55 min
  3. ConceptsNot started1 hr
  4. constexpr functionsNot started50 min
  5. consteval and compile-time tablesNot started50 min
  6. CRTPNot started1 hr
  7. Policy-based designNot started1 hr
  8. Perfect forwardingNot started50 min
  9. std::variant and std::visitNot started55 min
  10. std::optionalNot started40 min
  1. Linear algebra with EigenNot started1 hr
  2. Random number enginesNot started50 min
  3. Monte Carlo pricingNot started1 hr
  4. Designing an option pricing libraryNot started1 hr 15 min
  5. Greeks by finite differencesNot started55 min
  6. Automatic differentiationNot started1 hr 10 min
  7. Root findingNot started50 min
  8. Numerical integrationNot started50 min
  1. Unit testing with GoogleTestNot started50 min
  2. Mocking dependenciesNot started45 min
  3. Benchmarking with Google BenchmarkNot started55 min
  4. Debugging with GDBNot started55 min
  5. Finding memory errors with ASanNot started45 min
  6. Finding undefined behaviour with UBSanNot started45 min
  1. The cache hierarchyNot started1 hr
  2. Data layout: AoS vs SoANot started1 hr
  3. Branch predictionNot started55 min
  4. Inlining and compiler optimisationNot started55 min
  5. Memory poolsNot started1 hr
  6. Custom allocatorsNot started1 hr
  7. Arena allocationNot started55 min
  8. Small-buffer optimisationNot started50 min
  9. Flat containersNot started50 min
  10. Profiling with perfNot started55 min
  11. Flame graphsNot started45 min
  12. SIMD intrinsicsNot started1 hr 10 min
  13. Auto-vectorisationNot started55 min
  1. ThreadsNot started50 min
  2. Mutexes and locksNot started50 min
  3. Condition variablesNot started50 min
  4. std::atomicNot started55 min
  5. The C++ memory modelNot started1 hr 15 min
  6. A lock-free SPSC ring bufferNot started1 hr 30 min
  7. False sharingNot started55 min
  8. NUMA and CPU pinningNot started1 hr
  9. Thread poolsNot started1 hr
  10. Task-based parallelism with futuresNot started55 min
  1. Order book data structuresNot started1 hr
  2. Price-time priorityNot started55 min
  3. A matching engineNot started1 hr 30 min
  4. UDP multicastNot started55 min
  5. Binary market data protocolsNot started1 hr
  6. Market data handlersNot started1 hr 15 min
  7. The FIX protocolNot started55 min
  8. Order-entry gatewaysNot started1 hr
  1. Kernel-bypass networkingNot started1 hr 30 min
  2. Measuring tail latencyNot started1 hr 15 min
  3. Python bindings with pybind11Not started1 hr 30 min
  4. A backtesting engine in C++Not started2 hr
  5. Capstone: a low-latency trading engineNot started4 hr