Responsibilities
Develop and maintain runtime software and services for managing FPGA resources
Integrate and optimize middleware layers for workload scheduling, resource allocation, and device management
Build interfaces between hardware, drivers, and higher-level orchestration layers
Enable and validate cloud-based deployment of FPGA workloads (e.g., containers, VM images)
Collaborate closely with hardware, system software, and DevOps teams
Profile performance bottlenecks and implement optimizations for latency, throughput, and power efficiency
Develop tools for runtime monitoring, diagnostics, and recovery
Required Qualifications
BS/MS in Computer Science, Computer Engineering, or a related field
5+ years of software development experience in systems or embedded environments
Strong proficiency in C/C++, Python. Must have object-oriented programming experience
Experience in working with runtime layers for FPGAs or custom accelerators
Understanding of low-level hardware/software interactions, device drivers, memory-mapped I/O
Familiarity with Linux systems, system calls, and performance profiling tools
Experience deploying software in cloud environments (e.g., AWS, Azure, GCP) using containers or infrastructure-as-code tools (Git, Perforce)
Understanding of PCIe, DMA, and high-speed interconnects
Experience in developing EDA tools is a plus