Annapolis Micro Systems, Inc. is seeking an intelligent and versatile Senior Software Engineer to work in a team that identifies customer problems and creates high-performance software solutions. Our team has built a reputation for products that incorporate image processing, image manipulation, large-scale disk and database access, fast and intuitive GUI design, and robust performance into highly productive applications.
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. You will be an integral part of the team, designing, implementing, and supporting client applications and services that enhance the efficiency of the system and the end-user.
Enjoy the benefits of working for a small privately-held company with on-site production test, manufacturing, hardware, and software design. The close coupling of all aspects of design and production under one roof allows us to create ultra-high performance products and systems at a rapid pace while maintaining the highest possible quality. Daily interaction with other departments provides a first-rate opportunity to further develop your career.
Join us and become part of the future of computing technology!
Develop, test, deploy, and maintain software products
Design and test Device Drivers for Windows and Linux
Design and test API, User Examples
Design interfaces to complicated ASICs
Design and test VxWorks BSPs and Applications
Embedded development and deploying operating systems on our products
Interpreting Hardware Schematic Diagrams
Design Object-Oriented Software Architectures
Capture requirements by interacting with customers
Automate build, test, and deployment of software products
Provide customer support of software products
Manage software releases
B.S. in Computer Engineering, Electrical Engineering, or Computer Science
Languages: C/C++, Java
Compilers: GCC, Microsoft Visual Studio,
Platforms: Linux, VxWorks, Windows, AIX
Tools: Make, PetaLinux, Subversion, Python, Perl, Eclipse
Sound understanding of Object-Oriented Principles and Design
Experience with real-time embedded environments (RTOS): VxWorks
Considered an expert in writing Device Drivers for supported operating systems:
Linux (ARM, PPC, and x86 architectures)
Windows
In-depth knowledge of supported Operating Systems and Hardware architectures
IPMC and Chassis Manager (ChMC) development:
Experience with Ethernet Protocols (Layer 2 and 3):
Marvell, Mellanox
SwitchDev
OpenFlow
High-speed networks:
1/10/40/100 Gigabit Ethernet
SDR, DDR, QDR, FDR IB
PCIe Gen 3 and Gen 4
NVME and NVMEoF
RDMA over Ethernet (RoCE and NFS over RDMA)
Debugging of Embedded Hardware and Software
Experience Developing Portable, Embedded, and High-Performance Software
Interrupt Handlers
MT Applications
High-Performance DMA
In compliance with local laws regarding pay transparency, the salary range for this role is $135,000/yr to $230,000/yr; however, Annapolis Micro Systems considers several factors when extending an offer, including but not limited to, the role and associated responsibilities, a candidate's work experience, education/training, and key skills.