Abaco Systems is looking for a Firmware Engineer to join our team. This position will join a dynamic team by developing and maintaining high-quality boot code and deploying test 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.
- 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
- Cover all aspects of software development following the Company’s Software Development procedures
- 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
- The role 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).
Skills & Competencies:
- Understanding of “C” and assembly programming.
- Experience of writing software to test computer systems,
- Experience with several compilers/cross compilers build environments, such as GCC
- Understanding of computer architectures and hardware design. With knowledge of one of the following: Intel Architecture (i7), NXP (Freescale) T-series, P-series, PowerPC or ARM.
- Problem-solving and creative, solution-building skills.
- Knowledge of modern Real-Time Operating Systems
- Knowledge of Linux, as a software development environment.
- Knowledge of backplane interconnect architectures VME, CPCI , VPX, IPMI.
Any experience with the following technologies would be advantageous: UEFI, U-Boot, NVIDIA CBoot, Slim Bootloader, Secure / Trusted Boot, Xilinx SDK, NXP K21
Previous experience 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
- Awareness of Agile / Scrum methodologies