We are looking for an enthusiastic and motivated mid-level embedded firmware engineer to help lead our software development to the next level. With a solid background understanding of electronics combined with lots of experience of modern software practices they will be able to bring innovative designs and quality processes to the team. The candidate will need a degree in engineering, electronics, computer science or similar and have 3-5 years’ experience of embedded firmware development using C or C++, preferably with GCC, git and Linux. A familiarity with Continuous Integration and Deployment, automated build and release processes will be valuable in ensuring that we continue delivering quality products and software on time.
We develop custom ASICs, for both internal projects and external customers. These ultralow-power dedicated devices rely on firmware for their initial development, testing and verification, and for operation in customer applications in the field. During development, a full range of software is required to automat e test harnesses and run scripts on Linux based systems. After production of the chip (tapeout), development focuses on the final product lifecycle with hardware-in-the-loop and unit testing being managed by CI/CD.
As part of our expansion, we are investing in ever-increasingly powerful tools and development kits for the creation of this firmware, integrating industry standard development environments with customised back end compilers and tools.
The successful candidate will be able to apply themselves to all aspects of this process with professionalism, enthusiasm, and a desire for quality.
- 3-5 yrs professional experience coding embedded C on bare-metal / RTOS CPUs to production readiness.
- Some experience using C++ in any capacity, professional or personal / hobby use.
- Skilled with scripting methods, such as Python, bash, shell, perl etc.
- Understanding of register maps and memory spaces within SoCs.
- Experience analysing waveforms from oscilloscopes.
- Knowledge of interfaces such as SPI, I2C, parallel busses etc..
- Confidence with Linux.
- GCC, makefiles, linker scripts, GDB, git, gitlab or github, CI/CD, automated build systems.
- Development of simple applications on PCs, (Linux or Windows), for internal test purposes.
- MISRA / quality-assurance techniques.
- Ability read and understand schematics.
- Configuring IDEs such as Eclipse, VSCode, UltraEdit etc
- Experience of VHDL / Verilog for ASIC / FPGA design.
- Unit test and HIL test frameworks.
Essential Qualification and Soft Skills
- A university degree required (i.e. Bachelors degree) or equivalent relevant work experience.
- Must be a team player able to work in a fast-paced environment with demonstrated ability to handle multiple competing tasks and demands.
- Strong communication skills; oral, written and presentation.
- Strong organisation, planning and time management skills to achieve results.
- Strong personal and professional ethical values and integrity.
- Holds self-accountable for achieving goals and standards.
- Proficient in Microsoft Office programs (Outlook, Word, PowerPoint, and Excel).
- Strong interpersonal & collaboration skills to work effectively with all levels of the organisation including suppliers and/or external customers.