Software Design Engineer
A software design engineer is required to join a small 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 scientific and industrial customer base, via email/TeamViewer.
The position is full time, based in St Leonards on Sea, East Sussex, UK.
Job specification for Software Design Engineer
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 frame grabbers/GEV using commercial SDKs
Familiar with image processing techniques
Familiar with client-server techniques
Able to work in a small team
Reliable, organised, motivated and self-reliant
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
Please send your application to email@example.com