Software Engineer

Job Description

Annapolis Micro Systems, Inc. is seeking an intelligent versatile software engineer to expand our Software Design Team. Our accelerator products employ FPGA technology to provide computing capabilities far beyond what general purpose processors can provide. Our new Product line will offer unprecedented processor interconnection bandwidth and performance. 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. Your contributions will help us continue to lead our industry and expand our market.

Enjoy the benefits of working for a small privately-held company with on-site hardware and software design, as well as on-site manufacturing and test. The close coupling of all aspects of design and production under one roof allows us to create products and systems at a rapid pace while maintaining the highest possible quality. The opportunity to interact with other departments on a daily basis provides a first-rate opportunity to further develop your career as you diversify your experiences.

Our small company environment provides a friendly and exciting atmosphere. We are continually designing new and innovative products, which fosters an extremely fast paced environment. Annapolis Micro Systems, Inc. knows there is no substitute for engineering superiority, and prides itself on creating world class products.

 Essential Duties and Responsibilities

  • Develop, Maintain, Test, and Deploy 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 Hands-on Hardware Development Support
  • Automate Build, Test and Deploy Software Products
  • Provide Second-Tier Customer Support of Software Products
  • Manage Software Releases and Version Control
  • Produce Software Documentation

Requirements

  • B.S. in Computer Science, Electrical or Computer Engineering
  • Desired knowledge of languages: C/C++, Java
  • Desired knowledge of compilers: Microsoft Visual Studio, gcc
  • Desired knowledge of platforms: Microsoft Windows, Linux, Solaris, VxWorks, Cygwin
  • Desired knowledge of tools: make, Subversion, PERL, Python, Eclipse, SWIG, Ruby, Rails
  • Desired knowledge of: Object-Oriented Principles and Design, UML, XML, XSLT, HTML
  • Desired knowledge of: 1/10/40/100 Gigabit Ethernet, SDR/DDR/QDR/FDR Infiniband, PCIe Gen 3
  • Experience with real-time embedded environments (RTOS)
  • Experience with Interrupt Handlers and DMA
  • Experience with Device Drivers
  • Strong communication skills
  • U.S. Citizenship