Always Innovating

Successful strategies require analysis, creativity and focus, taking advantage of the latest technologies.

Join our Team

We believe our growth as a firm depends on the personal growth of everyone on our team. That's why we offer a range of opportunities for employees to develop new skills and gain expertise.

Mentorship

Every new hire is paired with a mentor who offers knowledge and guidance as well as assistance acclimating to the firm.

Training

All employees have access to internal classes on topics including options, trading and Volant's proprietary technology systems.

Tuition Reimbursement

Employees receive tuition reimbursement for external job-related classes and programs.

Health Coverage

All employees and their families receive health insurance, including medical, dental, and vision.

Bonuses

All employees are eligible for bonuses.

Time Off

All employees receive generous paid vacation.

Social Life

We enjoy a variety of happy hours, holiday parties, and family-friendly celebrations.

Daily Life

We provide lunch and stock our kitchen with healthy snacks and beverages.

Current Opening

We are looking for highly motivated individuals with strong quantitive skills who are ready to push themselves in an environment that fosters collaboration and rewards determination.

C++ Engineer

Volant Trading was founded in 2006, and is one of the elite High-Frequency Trading firms doing FPGA-hardware-accelerated ultra-low-latency trading, where a handful of nanoseconds (literally) can make the difference between being profitable and not. Our trading systems are written in C++ and run on Linux, interfacing with and controlling the FPGA designs written in System Verilog.

Being consistently successful is not the result of one or two systems working well – a plethora of things must be operating well concurrently, each with their own blend of optimisation criteria – for latency, throughput, developer productivity, maintainability, agility, testability, robustness, operational supportability, and all the properties that support those like concision, self-documenting expressiveness, modularity, and abstraction/encapsulation. This requires discerning, targeted application of modern C++ - and more generally software-engineering - best practices. We want people who understand – or have an aptitude for – Design Principles and Patterns, and modern C++ idioms and usage.

You might be expecting us to make the HFT-industry-standard disingenuous unsubstantiated waffling claims about innovation and a culture of excellence. Instead, here are some concrete, differentiating qualities that should actually help you decide if this is the job for you...

About the role
  • Architecting/design, development, testing, deployment, operation, support and trouble-shooting of our trading systems and all in-house libraries and tooling supporting them; everything's decided and done locally in Hong Kong by the small, tight-knit, in-office team of Linux/C++ and Verilog/FPGA engineers that you'll be joining; we are not current open to remote work
  • You'll not just have a spot at the table while the IT team and traders make key decisions - we hope you'll be helping set the agenda and in the thick of things, suggesting solutions for emerging business issues and opportunities
  • As engineers - tempered only by common sense and practicalities - we can empower ourselves with the latest tooling: compilers (we're using GCC 13.1), coding techniques, IDEs (most of us choose CLion), devops tooling (we've been an Atlassian shop, but will trial JetBrain's Space), hardware (from getting the latest Ryzens and core-i9s as we need them, to dual-AMD-EPYC 9684Xs), Linux Distros (RHEL 9.3), 3 rd party libraries (e.g. boost 1.81), and utilities; if you know a smarter way to work, we'll want to explore it and empower you and each other
  • Our existing team members and traders will help you develop an holistic understanding of how things fit together, as well as low level details, to make informed architecture, design, and implementation choices; you won't get the chance to develop this kind of understanding of a complete, mature, successful trading operation at many companies
  • You don't need to be self-dependent - collaboration and knowledge sharing help us perform optimally as a team - but you will need to be largely self-motivated and self-organising, and have confidence in the impact you're making; while someone (including you) might throw a task description into a JIRA or similar if organisationally helpful to the interested parties, or required for Compliance with regulatory, exchange- or broker-specific policy, there are no IT or project managers wanting to be between you and your users, or breaking down your tasks into week-sized chunks and JIRA subtasks that get ticked off like homework with a pat on the back
  • Similarly, there are no quants writing financial libraries; no testing teams, project managers, operations or N-th level support, database admins, approval committees or advisory boards, R&D or procurement teams; no other team responsible for fixing or enhancing library "X" that you'll have to wait for; we do everything, everywhere; you'll do everything; you'll need to want to, like us
  • This job requires actual shut-out-the-world old-fashioned thinking - sometimes systematically, sometimes creatively, and a practical ability to optimally model problem domains in code; stackoverflow and chatgpt won't carry anyone here
  • We have an unapologetically tough candidate process – we need to hire better people than our competitors to evolve faster than them, so we must screen and select more discerningly; feel free to be tough on us too - we want people who want good colleagues
Tasks / Duties

Maintaining and evolving parts of the trading systems and surrounding software ecosystem

  • 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 optimisation
  • Architecture/design review and evolution
  • Build and CICD
  • Monitoring and operations; automation, visualisation, statistics
  • Software & hardware research, evaluation, procurement & shipping, integration
  • Liaising with exchanges and brokers and remote-hands at data-centres for upgrades, maintenance etc.
  • Utilising our 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

If a trader shares a requirement, or you come up with an idea that you share with the IT team or traders, confirm the requirements and priority up-front as best you’re collectively able (bringing in other potentially-interested parties); then follow agile development best practice, showing progress as you go and re-examining plans in light of the business, system and operational context to make sure you’re working towards not just the asked-for or even hoped-for outcome, but the needed and optimal one

Test and deliver your components, and provide technical/trade support for them, particularly in production

Provide general technical support (in rotation with other team members)

Think about your workflows and the business, and spot opportunities to make things better

Share knowledge and tooling with your peers to lift everyone up

Skills / Experience

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 utilising variadic templates & parameter packs; move semantics / forwarding; concepts (SFINAE knowledge also valued); CRTP; traits, policies and tag-types; tuples/variants visit/apply etc.; the pImpl idiom; lambdas; custom streaming operators; constexpr; auto; lambdas and macro hackery. Additionally, thorough understanding of low-level/everyday C++ operation: sequencing, aliasing, global/namespace scope vs stack vs heap; smart pointers, virtual dispatch, translation units, ODR, extern/static/inline and anonymous namespaces, operator overloading, RAII etc..

Architecture / Design knowledge (especially for more senior candidates)

  • Hands-on ability to apply common Design Principles (SOLID, DRY, YAGNI, KISS, least surprise, minimising intellectual distance, cohesion / loose coupling etc.), Design Patterns, how to design for testability

General programming knowledge

  • Common data structures like lists, binary trees and hash tables, writing use-appropriate hash functions, IPC and threading/synchronisation mechanisms, testing methodologies

Bachelor’s degree or higher in a computing or quantitative field, or equivalent additional experience

Ability to learn on your feet

Proactive mindset and good organisational skills whilst multitasking

Strong verbal and written communication skills

Highly valued

Prior experience with trading systems and/or financial exchanges

Python (or ability to learn it, having learnt something similar e.g. ruby)

Experience in hands-on operations and troubleshooting in a real-time environment

UNIX scripting – bash, zsh

Experience with pcaps, Wireshark, tcpdump, solar_replay or similar

Get in Touch