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