Software Developer (FPGA/Systems)
OP Recruiting · Chicago, IL · 1 mo ago
EngineeringFull-time
Responsibilities
- Architect and maintain high-speed C++ interfaces that integrate hardware acceleration components with internal core execution platforms.
- Write and refine custom Linux device drivers, focusing on DMA operations, PCIe protocols, memory mapping, and interrupt management to achieve minimal latency.
- Collaborate closely with hardware designers during lab bring-up, unit validation, and testing of hardware description language modules using automated software frameworks.
- Engineer custom diagnostic utilities, deployment tools, and automation suites using systems-level C++ and Python.
- Analyze overall system performance using host logs, network packet captures, and internal telemetry to isolate bottlenecks and optimize throughput.
- Fine-tune low-latency network communication stacks (TCP/UDP/IP) and custom Ethernet protocols tailored for high-frequency execution environments.
Requirements
- (must-have) 5+ years of hands-on software development experience with a focus on systems programming and low-level performance tuning.
- Advanced proficiency in C++ (C++14/17 standards) alongside strong Python scripting capabilities for tooling and automation.
- Deep knowledge of Linux kernel architecture, including driver creation, interrupt handling, kernel-bypass mechanisms, and memory management.
- Mastery of network protocol mechanics (TCP/IP, UDP, Ethernet) and the OSI model within high-throughput systems.
- Practical understanding of hardware-level optimization concepts such as NUMA topology, cache coherency, and memory-mapped I/O.
- Familiarity with hardware description languages (SystemVerilog/Verilog) and the ability to interpret RTL code.
- Experience using network capture tools (e.g., Wireshark) and hardware-level debugging utilities.
- Exposure to vendor FPGA development toolchains (such as Xilinx or Intel suites).
- Excellent verbal and written communication skills with a collaborative, ownership-oriented mindset.
Qualifications
(optional - not specified)
Skills
(optional - not specified)
Benefits
(optional - not specified)
Pay
(optional - not specified)
Schedule
(optional - not specified)