Description
An established Australian technology manufacturer that designs and builds its own control and power systems for demanding commercial applications is now hiring an Embedded Software Engineer to develop the software inside its control products, along with the PC based tools used to test, configure, and operate them.
Experience with control software for motors, power systems, or industrial machinery is highly respected for this role and a genuine advantage, but it is by no means an absolute must.
Solid embedded engineering on real hardware matters more than a particular sector.
In this role you will write firmware in C and C++ for microcontroller based controllers, working on new designs as well as products already in service.
Much of the work starts before any code is written: you will take what the system needs to do and pin it down as a software design, with clear boundaries between modules and measurable conditions for when it passes.
That code then runs on 16 bit and 32 bit targets that talk to the rest of the system over CAN, SPI, I2C, and serial links.
You will also build the desktop tools engineers and customers use to exercise, tune, and monitor the products.
Proving the software is a big part of the role, from automated module tests through to hardware in the loop (HIL) rigs.
You will study logs from the bench and from units in service to find where the control behaviour and the code can be improved.
You will bring a software view to failure mode analysis (DFMEA) and technical reviews, and when something goes wrong you will follow a disciplined root cause process until it is properly closed out.
This role suits an engineer with a few solid years of embedded experience who works well within a formal engineering process, documents properly, and enjoys seeing software run on real hardware in tough conditions.
It is a small, capable engineering team, so you will work closely with hardware, systems, and test engineers every day.
This is a full time, permanent role based in Perth.
Due to the nature of the work, Australian Citizenship is required.
Key Responsibilities:
Write, debug, and release C and C++ firmware for controllers built around 16 bit and 32 bit microcontrollers.Build and maintain desktop applications used to exercise, tune, and monitor the products in the lab and in the field.Bring up and troubleshoot the links between controllers and the wider system over CAN, SPI, I2C, and serial.Chase down faults found on the bench or in service, working through to root cause with a formal method such as 8D.Work with systems engineers on how the products regulate power and respond to changing conditions, then turn those decisions into software.Break high level product needs down into software designs with defined behaviour, clean module boundaries, and measurable pass conditions.Build automated test coverage at module and system level, including HIL rigs where real controllers run against simulated hardware, and rerun it on every release.Study logs from test rigs and deployed units to find where tuning and code can be improved.Bring a software perspective to DFMEA, cost reduction work, and technical reviews.Keep code under version control, review colleagues' changes, and keep documentation in step with the engineering process and customer commitments.
Requirements:
An engineering degree with a strong software component, such as Mechatronics, Computer, Electrical, Software, or Control Systems Engineering.5+ years writing software that runs on embedded hardware in a commercial setting.Confidence working in C and C++ close to the hardware, including peripherals, interrupts, and memory constraints on 16 bit and 32 bit microcontrollers.A track record of carrying firmware from requirements through testing and into release.Experience working inside a formal development process, including planning how software will be proven and recording the evidence.Practical experience with embedded communication buses, particularly CAN, along with SPI, I2C, and UART.Everyday use of Git or SVN in a team that reviews code before it is merged.A methodical approach to troubleshooting, and the ability to explain technical issues clearly to hardware and systems colleagues.
Desirable but not essential:
Control software experience for motors, power systems, or industrial machinery is highly respected and a genuine plus, though by no means an absolute must.Experience working to formal development processes in an industrial, energy, medical, or other regulated industry.Hands-on experience with hardware in the loop test systems or building test rigs.PC application development for engineering tools, for example in C#, Qt, or Python.Familiarity with control theory and tuning control strategies from test and field data.
Please reach out to harold@profoundpeople.com.au for more info