Reporting to the Device Driver Team Leader, the role will focus on the development of low level embedded software components for digital radio products and their accessories.
The candidate will have a good understanding of embedded telecommunications environment and mobile technology. They will possess strong communication skills and are comfortable discussing ideas and solutions with others in order to successfully design new components and resolve issues in legacy components. The candidate will be able to apply initiative when required and will take ownership for achievement of their own activities. Previous Low Level Embedded Software development experience of a released commercial product is essential.
Specific responsibilities include:
- Design, implementation and testing of the low level embedded software within the Sepura digital radio product range
- Definition and planning of software tasks at software component level.
- The production of architectural, design and test specifications.
- Implementation and testing of the low level embedded software within the Sepura digital radio product range.
- Participation in project planning and technical reviews.
- Integration testing, investigation and resolution of issues.
Technical skills and experience:
- Experience in the complete software development lifecycle within commercially released embedded products.
- Excellent knowledge of the C programming language in real time systems, with related experience of s/w design, debugging of hardware/software interaction, implementation and test.
- Exceptional debugging capability employing a methodical approach to resolving complex software problems using debug tools and techniques appropriate for low level target software, including JTAG emulators (Lauterbach), Debug Trace and Core dumps.
- Developing product quality real time embedded software for low level device drivers.
- Familiar with real-time multi-processor, multi-threaded, event-driven software.
- Familiarity with working with a hardware development team (interpretation of schematics, experience debugging using logic analysers and oscilloscopes)
- Thorough understanding of the complete software development lifecycle within an embedded software based product.
- Experience of using configuration management and fault tracking tools.
- Development of Embedded Linux user space software components and Linux Kernel modules.
- Experience working in an Agile SCRUM development environment.
- Experience with management and configuration of an Embedded Linux Kernel distribution.
- Software development for a DSP.
- Experience of using tools for measuring code coverage, profiling and memory leak detection.
- Experience of (automated) software testing.
- Wireless telecoms experience.
- Experience planning and estimating software development effort.
Personal attributes (essential)
- Structured in his/her working practices with a practical understanding of quality software development processes
- Enthusiastic, communicative and inquisitive individual
- Excellent analysis, numerical, written and verbal communications skills.
- Flexible approach and willing to work on a variety of projects.
- Experience of working in a small/medium size ‘high tech’ company
- Tenacity and an ability to probe issues and understand their root causes.
- Determination to succeed.
- Passionate about quality and uncovering defects as early in the development process as possible.