Company: Abaco Systems
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.
Job & Responsibilities:
- 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, and 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 understand the operation of the HW fully. 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 for Job
- Understanding of “C” and assembly programming.
- Experience in 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.
- Ability to work successfully in a team environment with Strong verbal and written skills
- Knowledge of modern Real-Time Operating Systems
- Knowledge of Linux, as a software development environment.
- Knowledge of backplane interconnects 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