Annapolis Micro Systems, Inc. is seeking an intelligent, versatile software engineer to join our Software Design Team.
Our accelerator products employ FPGA technology to provide computing capabilities far beyond what general-purpose processors can provide. Members of our Software Design Team work as part of a group to create interfaces between conventional processor platforms and our FPGA based accelerators, develop and support IP product development of High-Speed Protocols using FPGAs, such as PCIe, Infiniband, and 100Gbit Ethernet, as well as develop very high-speed protocol switch products. In addition, you will work with and develop on various microprocessor platforms.
Our new Product line will offer unprecedented processor interconnection bandwidth and performance. Your contributions will help us continue to lead our industry and expand our market!
Responsibilities:
Develop, Maintain, Test, and Deploy Embedded Software Products
Design Object-Oriented Software Architectures
Design and Test API and User Level Examples
Design and Test Device Drivers for Linux Kernel
Design Interfaces to Supportive ASICs including, but not limited to: ADCs and DACs; SPI, I2C, USB, DP devices; RS232, RS485
Configure and Deploy Operating Systems
Design and Test VxWorks BSPs and Applications
Interpret Hardware Schematic Diagrams
Manage Software Releases and Version Control
Produce Software Documentation
Facilitate New Product Development through Requirements Review
Automate Build, Test and Deploy Software Products
Provide Second-Tier Customer Support of Software Products
Requirements:
Bachelors degree in Computer Engineering, Computer Science, or a related field
Have received, or are willing to receive, a government-mandated vaccine
U.S. Citizenship
Languages: C/C++, Java, Python, Bash
Compilers: gcc, meson, cmake
Platforms: Linux, VxWorks, Petalinux, Windows
Tools: make, Eclipse, Yocto, gdb, Matlab™
Object-Oriented Principles and Design
Markup Language: XML/YAML/JSON
Jama - requirements capture tooling
Experience with real-time embedded environments (RTOS)
Strong communication skills
In depth knowledge of Supported Operating Systems and Hardware architectures
Interrupt Handlers
High Performance DMA
Multi Thread Safe Software
High Performance Portable Software supported between multiple OS's.
Experience with High-speed networks: 1/10/40/100 Gigabit Ethernet; PCIe Gen 3 and Gen 4; NVME
Expertise in writing drivers for supported operating systems - Linux (ARM, PPC and x86 architectures)
Debugging of embedded Hardware and Software
Desired Technical Background:
ASIC experience including: AMD/Xilinx Zynq MPSoC, RFSoC, and Versal ASoC; Intel Agilex SoC Series experience; Microcontrollers; Intel processors including UEFI BIOS
Additional Tool Knowledge: AMD/Xilinx XSDK™ and VITIS™ Software; TensorFlow with Versal™ AI Engine; Network APIs: REST and gRPC; Real-time embedded environments (RTOS) including VxWorks
Expertise in writing drivers for supported operating systems - Windows
Expertise in Writing Bootloaders: FSBL, UBOOT, UEFI BIOS, Slimbootloader
IPMC and Chassis Manager (ChMC) development: VITA 46.11 compliance; SOSA alignment; IPMI Tier 1, 2, and 3 support
Experience with Ethernet Protocols (Layer 2 and 3): Marvell, Mellanox; SwitchDev; OpenFlow; RDMA over Ethernet (RoCE and NFS over RDMA)
Strong communication skills both internal and customer facing
Understanding of issues from technical and business point of views