Job Description Summary
Working in an Agile Scrum environment, the Firmware Developer will be reporting to the Firmware Manager. The role will require working with the Scrum development team to create and execute code for product releases.
You will work among a talented and motivated R&D team, applying technologies such as On-line Dissolved Gas Measurement (DGA), Bushing Measurement (Tan Delta and Capacitance), Partial Discharge (PD) detection (UHF & Electrical) and Fast Transient measurement.
Essential Responsibilities :
Design and implement firmware of embedded devices and systems from requirements to production release, through to post release support
Design, code, test and debug embedded firmware across a range of micro-control architectures, from simple 16 bit standalone, through to complex multi-processor solutions.
Work collaboratively with the hardware designers to optimize software / hardware partitioning.
Assist in bridging the gap between remote firmware development and localized testing and debug.
Contribute to the hardware and firmware roadmap, to achieve convergence of a complex product portfolio, to a cost optimized platform solution
Qualifications / Requirements :
Bachelor’s Degree in an Engineering or Computer Science discipline or equivalent.
Preferably 4+ years of experience as a firmware developer.
Proven working experience in real time, embedded software engineering.
Demonstrated experience defining and implementing complex firmware / hardware architectures.
Solid programming experience in C or C++, familiarity with software configuration management tools, defect tracking tools, and peer review.
Experience with TI DSP, FPGA’s and ARM architectures.
Demonstrated ability to get complex projects across the line, to budget and quality targets
Ability to work independently and be self-motivated.
Understanding and practical application of System Design and System Architecture; i.e. hardware / software portioning, hardware abstraction etc.
Desired Characteristics :
Understanding of RTOS concepts, from simple round robin to layered pre-emptive.
Ability to understand and minimally modify assembler.
Experience of Embedded Linux implementations and environments.
Experience of industrial communication protocols (eg. MODBUS, TCP, DNP3, IEC61850, CAN)
Experience of modern programming languages (for example C#)
Strong communications skills, with a proven ability to work successfully within a geographically distributed team.
Ability to demonstrate delivery to time, quality and budget within an Agile programming environment.
Experience in secure code development cyber security
Experience of reading schematics and data sheets to assist in software / hardware debug