Software Developer (FPGA/Systems)

We are seeking a highly skilled Software Developer to join our Hardware Engineering team. This role sits at the intersection of hardware and software, acting as a critical link between custom FPGA-based systems and our internal trading platform. You will design and build ultra-low-latency solutions, including high-performance APIs, kernel drivers, and diagnostic tooling, to support and enhance automated trading capabilities. The successful candidate will be a self-starter, have strong sense of ownership and be driven to provide technical and intellectual solutions to business problems.

Responsibilities:

  • Designing, developing, and maintaining high-performance APIs in C++ to integrate FPGA hardware with internal trading systems
  • Developing and optimizing Linux kernel drivers with a focus on PCIe communication, DMA transfers, interrupt handling, and memory management to achieve ultra low-latency
  • Partnering with FPGA engineers to support unit testing, lab bring-up, and validation of SystemVerilog/Verilog designs using software-driven test frameworks
  • Building and maintaining diagnostic tools and automation utilities in Python and C++ for FPGA configuration, monitoring, deployment, and troubleshooting
  • Conduct in-depth analysis of trading system performance using host logs, packet captures (PCAPs), and custom telemetry data to identify bottlenecks and optimize throughput and latency
  • Implementing, tuning, and optimizing TCP/UDP/IP stacks and Ethernet-based communication for high frequency trading (HFT) environments

Skills and Experience:

  • 5-7+ years of relevant experience
  • Experience in an HFT or proprietary trading environment preferred
  • Expert level proficiency in C++ 14/17 for systems programming; strong Python skills for automation and tooling
  • Advanced understanding of TCP/IP, UDP, Ethernet protocols, and the OSI model within low-latency systems
  • Strong knowledge of PCIe protocols and DMA engine architecture
  • Deep understanding of the Linux kernel, including driver development, kernel internals, interrupt handling, and kernel-bypass techniques
  • Experience with low-level system design concepts such as cache coherency, NUMA architectures, and memory-mapped I/O
  • Familiarity with SystemVerilog or Verilog, including the ability to read and interpret RTL
  • Experience with network capture and analysis tools (e.g., Wireshark, Corvil) and hardware debugging tools
  • Exposure to FPGA development toolchains such as Xilinx Vivado or Intel Quartus
  • Ability to work in a collaborative environment
  • Excellent written and verbal communication skills

Apply Now