Principal Software Engineer
Job Description and Skills
The role covers two main areas :
The design,development and maintenance of robust software for market leading cooledthermal imaging cores based upon a bespoke Android hardware platform.
Thesystem has been designed with power efficiency and performance in mind from theground up and as such makes use of a number of cutting edge technologies suchas GPU compute for real time image processing.
This role also includes thedesign and development of Android software to control external devices andother sensors to meet specific customer system requirements.
Additional tasksinclude software to monitor hardware performance in real time and to aid withsystem verification.
The design,development and maintenance of in-house test software. The candidate will be expectedto develop and code software to interface with custom-
built hardware to controlboth test equipment and test our range of detector products.
Key Responsibility Area
To developsoftware concepts and specifications working with product design authoritiesand customers.
To plansoftware development tasks
To developmodular, reusable and testable code.
To developsoftware to specification, cost and timescale estimates
To completesoftware verification tasks
To releaseand document software
To work todesign process and procedures
To workwith hardware engineers to debug and integrate software
To workwith suppliers of Android platform at a Kernel level.
Skills, Qualifications & Knowledge Required
Key Skills and Experience
Recognised 2.1. Degree or higher in Software Eng., Physics or ElectronicEng.
Experienced Java developerand experience of another language, e.g. C++ / C# / LabView
Experienced in writing multi-threaded applications.
Experienced in makingLinux kernel device tree modifications.
Experience of using version control systems, suchas Git.
Ability to assimilate and apply technicalinformation to design tasks and to problem solving
Ability toapply software engineering best practices throughout the development lifecycle
Evidence of good organisation, planning andexecution of work
Ability to work closely in a team with otherengineering and science disciplines
Effective communicator with attention to detail anda flexible approach.
Experience of working with customers to developrequirements into technical definitions and specifications
Certified qualifications in Software Development
Experience of writing unit tests
Knowledge of OpenGL / real time image processing
Experienced in writing software to communicate withperipheral hardware devices
Experience of other languages
Experience of using development environments, suchas Android Studio
Experienceof developing software in a product development environment
Knowledge of micro-electronics
Hands-on laboratory test and measurement experience
Office based, full time hours
Display Screen User Equipment
Tight deadlines working to achieve milestones andproject deadlines, whilst working on concurrent projects
Requirement for some travel on an occasional basis.