Job Description
Success to date has laid the foundation for the future and the business is now hiring an Embedded Firmware Engineer.
As part of the Electrical and Software team and part of the wider engineering division you will be develop Firmware for new features and enhancements.
From an operational and delivery perspective, the Firmware Engineer will:
- Develop commercial grade firmware to maximise product performance and reliability.
- deliver high-quality embedded C code within tight deadlines
- profile, test and debug new embedded functionality
- write unit test cases and simulations
- produce clear and concise documentation
- dive in and take ownership of critical design tasks
- actively participate in code reviews
- Knowledge of firmware development for embedded Linux systems
- device tree, u-boot, drivers and file systems
- resource and memory management
- inter-processor communications
- real-time capabilities and limitations
- Firmware support through full product life-cycle
- implementation and V&V
- debugging and troubleshooting existing products
- Collaborate with the hardware, software and production teams to:
- identify opportunities for product and system level enhancements.
- explore technical feasibility for future products, design optimizations and features.
- Degree qualified in computer science, software / electronics engineering or a related technology qualification
- Strong understanding on the operation of microprocessor hardware (ARM core, interrupts, DMA, clocks, power saving, SPI, I2C)
- Fluent in C for embedded systems (3+ years).
- Experience of communications/protocols – CAN, TCP/IP, HTTP, as well as hardware interfacing.
- Complete understanding of the operation of software tool chain (IDE, compiler, linker, makefile)
- Development on 32-bit ARM processors highly desirable
- Regression testing and code release processes.
- Strong debugging and problem-solving skills.
- Ability to read schematics, datasheets and use electronic test equipment.
- Experience in software engineering, embedded system engineering, release engineering, and/or configuration management.
- Experience in programming C++ for Linux
- Scripting or programming knowledge – Shell, Python, Ruby, Perl, Bash etc
- IoT experience
- Familiarity with software configuration management systems and/or source code version control systems, Git (GitHub/BitBucket/etc)
- Familiarity with Agile development processes and DevOps environments
- Document designs, processes and procedures
- Analytical mind with problem-solving aptitude
- Ability to work independently
- Ability to consistently work to a high standard with minimal supervision; self-motivated
To be considered, please submit your resume and cover letter (Word format) by selecting the “apply now” function. Confidential enquiries can be made to Peter Starling, Client Partner on 07 3305 5830.
All unsolicited and third party applications will be forward to Peter Starling at OnTalent.