About the job
Job Purpose
To lead, design, develop, test and maintain software to project cost, quality & timescales.
Estimating tasks and executing work packages within defined scope and budget.
Conduct process analysis; recommending changes in policies and procedures.
Responsibilities
- Design, Architect, Plan & estimate project work.
- Evaluating design options against technical & project criteria.
- Lead and report progress of all technical activities against target to stakeholders.
- Active participation in design reviews.
- Design, simulate, test & record results to verify requirements.
- Work with appropriate software development tools for source control, issue and task tracking applications as appropriate.
- Keep design records of software development in line with process requirements.
- Acquire an in-depth understanding of the product under development.
- Follows policies, processes and standards to achieve excellence the discipline.
- Organising personal workload including managing multiple tasks.
- Seek to improve the software development process
- Actively communicate with other members of the local software team, other disciplines and the wider Smiths Detection community.
- Responsible for personal health, safety of yourself & others.
- Attend training to develop relevant knowledge & skills.
- Ensures adherence to business policies, Legal requirements, Ethics.
- 1st or 2:1 degree in a relevant discipline
- 4+ years industrial experience
- Technical team leader experience
- Understanding of cybersecurity issues and security scan tool
- Experience in Linux application programming – multithreaded
- Strong understanding about Inter-process communication.
- Solid C++
- Experience in shell scripting
- Experience in UI programming using QT
- Experience in writing Documentation
- Experience of developing for RTOS, Bare Metal or Linux embedded target environments
- Experienced in following formal development processes
Technical Knowledge, Skills And Abilities
- Experience of RDBMS
- Experience of kernel configuration and driver development
- Experience of test-driven development
- Experience of object-oriented development
- Experience of networking technologies
- Experience of developing for Windows or Web applications
- Experience of UML
- Experience of other programming languages
- Knowledge of Artificial Intelligence or Machine Learning