C++ Software Engineer- Hong Kong

Location Hong Kong
Discipline: Financial Technology
Job type: Permanent
Contact name: Lewis Piper

Contact email: lewis.piper@venturesearch.com
Job ref: 2204
Published: about 2 months ago
Software Engineer 
Hong Kong 

Our client is an elite High-Frequency Trading firm, specializing in FPGA-hardware-accelerated ultra-low-latency trading, where a handful of nanoseconds can make the difference between profitability and loss. Their trading systems are primarily developed in C++ and operate on Linux, interfacing with and controlling the FPGA designs written in System Verilog.

  • Market connectivity, instrument metadata, book building, trading signal generation, order management, position management, trading algo strategy implementation, pricing, risk calculations, hedging, volatility curves, historic trade reporting or analysis, messaging, GUIs
  • Low-level peripheral (FPGA, Solarflare) interfacing
  • Performance profiling and optimization
  • Architecture/design review and evolution
  • Build and CICD
  • Monitoring and operations; automation, visualization, statistics
  • Software & hardware research, evaluation, procurement & shipping, integration
  • Liaising with exchanges and brokers and remote-hands at data-centers for upgrades, maintenance, etc.
  • Utilizing networking, Linux, Windows, and Systems engineering support as helpful, but also configuring and cabling switches, servers, GPS grandmaster clocks, and other devices ourselves at times
  • Great systematic problem-solving and investigatory skills, including algorithmic thinking
  • Demonstrated ability to deliver C++ systems with an emphasis on reliability, maintainability, productivity, scalability, and performance
  • Knowledge of modern C++ best practices for utilizing variadic templates & parameter packs; move semantics / forwarding; concepts; CRTP; traits, policies, and tag-types; tuples/variants visit/apply etc.; the pImpl idiom; lambdas; custom streaming operators; constexpr; auto; lambdas, and macro hackery.
  • Architecture / Design knowledge (especially for more senior candidates)
  • Hands-on ability to apply common Design Principles, Design Patterns, how to design for testability
  • Bachelor’s degree or higher in a computing or quantitative field, or equivalent additional experience