Role Overview
We are seeking an experienced Linux Software Engineer to contribute to the development of software for a passport scanning device. The role will involve C++ and Python programming, working closely with cameras, smart cards, and human interface devices. You’ll play a key part in designing and implementing functionality for scanning, image capture, user interfaces, and peripheral communications.
Key Responsibilities
*
Develop and maintain Linux-based software for passport scanning devices
*
Implement image acquisition and processing functionality using Video4Linux (V4L2)
*
Integrate with human interface devices such as buttons, LEDs, and sensors
*
Manage smart card interactions with PCSC for e-passport data reading
*
Design and implement GUI components using GTK
*
Optimise performance for real-time image capture and processing
*
Troubleshoot hardware and software integration issues in a Linux environment
*
Document technical designs, APIs, and user guides
*
Work collaboratively with hardware, QA, and support teams
Required Skills & Experience
*
Strong C++ and Python development skills in Linux environments
*
Hands-on experience with Video4Linux (V4L2) for camera and image capture
*
Knowledge of HID integration for input and output hardware
*
Experience using PCSC for smart card communication, ideally with e-passports
*
Practical experience with OpenCV for image processing and computer vision
*
GUI development experience with GTK
*
Strong debugging and profiling skills in Linux
*
Familiarity with device drivers, USB interfaces, and low-level hardware interactions
*
Comfortable using Git and build systems such as Make or CMake
Desirable Skills & Experience
*
Previous experience developing software for passport readers, ID scanners, or similar embedded devices
*
Knowledge of ICAO standards and e-passport technologies such as MRZ and RFID chip access