Software Engineer Co-op

We are the leader in COTS FPGA-based high-performance computing. Our accelerator products employ the latest FPGA and SoC technology to provide computing capabilities far beyond what general purpose processors can provide.

Our software design team works in all layers of the embedded software stack from boot loaders to application development. Most of our products include at least one processing element, whether an MPSoC integrated with FPGA fabric or a standalone processor, which are responsible for initializing the baseboard, the mezzanine card, and its many on and off board interfaces including high speed pathways such as PCIe, Aurora, and Ethernet (up to 100GbE!). The software provides for reducing the burden to customers to fully utilizing the card’s capabilities, getting them to market sooner. The product catalog has grown over time to cover more than just FPGA-based cards, including very high-speed protocol network switch cards, storage cards, and peripheral cards.

Unique to the Annapolis experience, all Software Engineering Co-ops who work two semester terms back-to-back are offered an opportunity to work one semester with the Software team and the other with the Firmware team.

 Essential Duties and Responsibilities

  • Develop embedded software using C, C++, Java
  • Develop support tooling/utilities using Python and Bash
  • Design user APIs and user examples for new product platforms
  • Design interfaces to feature-rich ASICs, such as cutting-edge ADCs and DACs, leveraging schematics and datasheets while working alongside firmware and hardware engineers
  • Test and debug designs in the lab on actual hardware with test equipment
  • Deploy designs using object-oriented software principles
  • Manage and improve automated testing of products
  • Strive to continuously improve the quality and reliability of our products
  • Design for the latest and future Xilinx and Intel SoCs
  • Work alongside leading embedded software engineers!