Photonic Science
Professional Imaging


Job desription: Full time, Software Engineer.

Location: St Leonards on Sea, East Sussex, UK.

A software design engineer is required to join our engineering design team developing cameras and imaging systems for scientific, industrial, and defence markets. The role will require the development in C/C++ of DLLs and drivers to control cameras and other associated hardware. This typically requires the use of third party SDKs for the interface to the PC. The drivers will also include functions for image processing and image manipulation. It is expected that a common library of functions will be created to harmonise these drivers across a broad existing product range. A comprehensive and fully documented SDK will be needed that is regularly updated to cover new additions to the product ranges.

In addition, the software design engineer will be required to update and maintain a GUI application coded in Python. This application provides the user interface to the  drivers above, and also provides a wide range of additional features for image processing, image analysis, crystal orientation, computed tomography, etc. New hardware products will need to be integrated into this application as they are developed. This application provides remote client-server control, control of various other external hardware such as motorised stages, and includes a macro language for scripting and automation.

This design work will involve working closely with the in-house hardware design and test engineers. Hands-on testing of code with appropriate hardware will be needed.

The successful candidate will also be expected to provide customer support on software issues to a worldwide customer base, via email/TeamViewer.

Necessary requirements

Proficient at coding in C/C++

Proficient at coding in Python

Experienced at creating DLLs in C and GUIs in Python

Familiar with image acquisition from framegrabbers/GEV using commercial SDKs

Familiar with image processing techniques

Familiar with client-server techniques

Personable, adaptable

Able to work in a small team

Reliable, organised, motivated and self-reliant


Desirable requirements

Experience with coding for Labview

Experience with coding for Matlab

Experience with Linux

Competent at VB

Competent at testing code using real world hardware

Competent at providing customer support for software issues via phone/email/TeamViewer