What skills for C/C++ High Frequency Trading

Snapchat gqkO66
Mar 31 9 Comments

What skills should I develop to apply successfully for core HFT trading companies. Besides leetcoding. If you answer networking, be more specific

comments

Want to comment? LOG IN or SIGN UP
TOP 9 Comments
  • Datto, Inc. / R&D Klokov_v2
    Linux kernel internals dealing with concurrency, process scheduling, I/O handling, networking, memory allocators. Kernel bypass for userspace processing of packets.

    Computer Architecture- Pipelining, cache coherence, branching, vectorization.

    C++ - metaprogramming with templates and constexpr, CRTP to allow static polymorphism instead of dynamic, reducing virtual functions so that vtable lookups are reduced, RVO/NRVO, move semantics, reduced if statements to reduce branching and jumps, expression templates, placement new and using preallocated memory pools to avoid constantly using the memory allocator, cache friendly code using performant STL containers like vector over non performing ones like map, unordered map, avoid shared_ptr since reference counting is an expensive operation and use unique_ptr only when needed, reduce use of C++ exceptions.

    Userspace level in Linux you should know non blocking I/O , Interprocess Communication, shared memory.

    Resources-

    1) Linux Kernel Development, Robert Love
    2) Linux Programming Interface, Michael Kerrisk
    3) Understanding Linux Network Internals, Christian Benvenuti
    4) Richard Stevens TCP/IP books as a reference since it is 3 volumes.
    5) C++ Templates 2nd Edition by David Vandervoode,
    6) C++ Concurrency in Action 2nd Edition by Anthony Williams
    7) Modern Effective C++ by Scott Meyers
    8) Andrei Alexandrescu’s C++ book
    9) r/cpp on Reddit
    10) Sergey Zubkov’s answers on Quora
    11) Computer Systems, A Programmers Perspective, 3rd edition. Chapters 4,5,6,8,9 are important.
    12) Agner Fog’s C++ Optimization guide, freely available on his website.
    Mar 31 0
  • Dropbox systest
    Lock free data structures, kernel bypass for network, OSI model, write SQL query, concurrency, condition variables, locks, mutex, OOP.
    Mar 31 0
  • BlackRock xis
    HFT dev is very niche. Even at Hedge Funds that is less than 5 percent of all devs. And the way C is written at Hedge Funds is something you may not adjust to.
    But if you really want to start trying to code close to bare metal. Reddit has some good discussions around this.

    Also a lot of work is in OpenMPI and OpenCL and you know your hardware and its instruction set that you will program to and the cache coherence when accessing memory. If NUMA means a clothing brand to you then you won’t like it.
    Mar 31 4
    • Google / Eng jaylenb
      You mean OpenCL lol
      Mar 31
    • BlackRock xis
      Yeah good catch!
      Mar 31
    • Snapchat gqkO66
      OP
      What are good examples on Reddit?
      Mar 31
    • BlackRock xis
      Follow r/cpp r/programming etc search through their archive.
      Mar 31
  • Google
    tsukino

    Google

    BIO
    w
    tsukinomore
    less traditional databases
    more low-latency optimizations closer to the metal: OS, hardware, networking
    Mar 31 0
  • Yahoo Genius
    But does it really pay well as HFT dev? I assume there is a lot of stress that comes with it, simple bug could cost millions, just guessing
    Apr 1 0

Join verified employees in our anonymous social network! Download the app!

close