Senior Embedded Software Engineer

  • Embedded
  • Permanent
  • Worcester, Worcester, UK

A senior software engineer is required to join a team of 15+ engineers based at the company’s office in Worcester designing, implementing and configuring software for the roof support and conveyor control systems This is an ideal opportunity for an embedded software engineer to gain/build upon skills and experience working with low level software/hardware, low level SIL compliant software and applications software. This is a varied role encompassing systems development, systems deployment in harsh environments, software specification, software design, software validation and software development.

The skill set and technology areas our engineers are involved in includes: - Real-time embedded software - Low level Device drivers - Java - SQL Databases - Virtual Machines - Simulation - 3D Visualisation - TCP/IP - Data Archiving - RFID - WiFi - Ethernet Comms

The C&A depart utilises an Agile development methodology, with tasks assigned for completion within 4 week sprints. There are numerous exciting new developments in the pipeline where the successful candidate will be able to gain significant experience and make a major impact.

** Roof Support Control System** The roof support control system has in recent years seen the introduction of many new and innovative features and technologies. The kernel provides low-level hardware interface code interfaced to a custom operating system upon which mining object-oriented application software is developed in house on an ARM7 processor platform. To support the complexities of the system simulators and test tools, written in Visual C++, C#, ARM7 C, and Access Databases are needed to simulate mining and communication systems. The roof support control system also uses a TCP/IP gateway and WiFi technologies to connect the embedded system to network enabled resources, including sophisticated HMI systems developed in Java (Eclipse), Camera systems, RFID tracking systems and to the internet for data capture and analysis. ** Conveyor Control System** The AFC control system software is written in C/C++, Ladder Logic (RSLogix), simulation tools and databases written in house to test the systems. The front end to this control system is currently developed in the US using CITECT/SCADA. This product is due to undergo a major redesign within the next year with the intention being to utilise the Roof Support Control hardware platform and Kernel. This will be an extremely interesting, challenging and exciting opportunity for the successful candidate to make a significant impact and contribution.

** Candidate Profile**

The successful applicant’s key responsibilities will be the design, implementation, testing and deployment of embedded control software and associated PC programs using C, C# and C++.

Our products are safety-critical, and you should have a good understanding of the use of C and C++ subsets such as MISRA, and be aware of the benefits of static analysis tools.

** Ideal Required Experience**

- 5-10+ years of recent commercial programming experience & exposure to control of electronic circuits, industrial machinery or computer systems.

- Strong C programming skills

- Embedded software development experience

- Experience of control and automation systems

- An ability to appreciate and comprehend the overall systems perspective and the impact of changes over the system as a whole.

- Must be able to recognise and create solutions for physical problems.

- To be able to work under pressure to deadlines and must have good time manage skills.

- Willingness to work paid overtime on a regular basis.

** Additional Experience That Would Be an Advantage**

- Experience with the use of emulators, oscilloscopes and logic analysers.

- Bare Metal development experience

- BSP Experience

- Device Driver Development

- Appreciation of documentation and test procedures.

- Ability to adapt to software coding methods, quality and rationalisation.

- Appreciation of a commercially sensitive environment.

- Use of Version Control Tools such as PVCS & Git.

- Awareness of multitasking operating systems.

- Awareness of Visual C++ and Access Programming.

- Familiarity with ARM, x86, 8051, PIC and 68000 microprocessors.

- Experience of Real time operating systems, VxWorks would be of particular interest


It is expected that candidates applying for this position will have a good level of education with a scientific or engineering bias. For the right candidate there may be the opportunity for further study. Candidates with, HNC, HND or 1st degree will all be considered on merit.