Job Title: Embedded Firmware Engineer
Huntsville, AL, US, 35808
Abaco Systems is a global leader in modular, high performance, open architecture, standards-based rugged embedded computing for the most demanding applications in defense and industry. Our products and solutions are found in high-profile military/aerospace sea, land and air programs, plus commerical and industrial organizations in which rugged reliability is mission critical.
Role Summary:
An Embedded Software Engineer is required to join our Firmware Team, to develop and maintain high-quality boot code, deployed test and IPMI firmware used by our products.
Abaco Systems produces ruggedized embedded computing solutions for the rugged embedded COTS market.
These products require different types of firmware, including boot firmware such as BIOS or UEFI on our Intel products and U-Boot on NXP and ARM products. Our Firmware Team also provides a deployed test solution, known as Built in Test (BIT), which is a key software product that the customers in this market expect. The Intelligent Platform Management Interface (IPMI) is another element of firmware supported by the team, which provides management and monitoring capabilities independently of the host system's CPU, firmware (BIOS or UEFI) and operating system. Continuous Improvement is at the heart of our culture and everyone is encouraged to find new ways of pushing the boundaries and to innovate.
Key Responsibilities:
The Engineer’s responsibilities will cover all aspects of software development following the Company’s Software Development procedures. The scope of the firmware development work covers:
- Generating requirements for new products, porting and code development for new products
- Maintenance updates for existing products.
- Project documentation to comply with procedures, as well as customer documentation.
- Product support for customers and Manufacturing.
- Working closely with HW Engineering, other SW Engineering teams and other disciplines within Abaco.
- Develop and maintain embedded software, written in C and assembler.
- Follow company design procedures relating to the development of software
- Use Continuous Integration and Static Analysis tools to improve code quality, detect and correct bugs quicker.
- Provide customer support with documentation to support the software product.
- Communicate status to key stakeholders in a timely and professional fashion.
- Participate in the continuous improvement of Software Development Processes
- Requires both HW and SW capabilities. The HW capabilities require the engineer to fully understand the operation of the HW. This is achieved by analysis of schematics, component data sheets and discussions with HW engineers. The Boards typically form part of systems connected via Industry standard backplane interconnect technology (VME, VPX, CPCI).
Education and Experience:
- Bachelor’s Degree in Electrical or Computer Engineering from an accredited university or college
- 7+ years of related experience
- 3+ years of experience of electrical engineering design experience
- Ability and willingness to travel up to 10% as required.
Required Skills & Competencies:
- A strong understanding of C/C++ and assembly programming. Software is written in “C” language mainly. Several compilers/cross compilers are used to generate code for the appropriate platforms. Some assembly language is also required for low level operations.
- Experience with at least one of the following technologies: UEFI, U-Boot, NVIDIA CBoot, Slim Bootloader, Secure / Trusted Boot, Xilinx SDK, NXP K21.
- Experience of writing software to test computer systems.
- Experience with several compilers/cross compilers build environments, such as GCC.
- A strong understanding of computer architectures and hardware design. With knowledge of at least one of the following: Intel Architecture (i7), NXP (Freescale) T-series, P-series, PowerPC or ARM.
- Experience with source code which is managed via source code repository and is regularly verified using static code analysis tools and code peer reviews.
- Strong problem-solving and creative, solution-building skills.
- Working in an Agile environment where multi-discipline teams are operating in tight collaboration, you will be exposed to all aspects of the design, testing and validation of our products.
- Demonstrated ability and willingness to use AI tools to improve productivity, decision-making, work quality, and to reduce costs. The successful candidate must be able to identify appropriate AI use cases and critically evaluate AI-generated outputs.
- Ability to work successfully in a team environment with Strong verbal and written skills.
Desired Skills & Competencies:
Previous experience with using software tools such as:
- Source code repositories (Perforce, Git)
- Source code analysis tools (Klocwork)
- Collaborative tools (Atlassian toolset, JIRA, Confluence)
- Continuous integration server, like Jenkins
- Knowledge of modern Real-Time Operating Systems
- Knowledge of Linux, as a software development environment.
- Knowledge of backplane interconnect architectures VME, CPCI , VPX, IPMI.
- Awareness of Agile / Scrum methodologies.
- Awareness of DO-178B/C
Abaco is a Department of Defense (DoD) supplier and as such employees may work with or be exposed to export controlled information and/or information that has been designated as classified information. This information may only be seen or handled by US citizens or qualified permanent residents or those with proper clearances.
Nearest Major Market: Huntsville