IDEMIA Public Security, a division of IDEMIA Group, is the leading provider of secure and trusted biometric-based solutions, transforming public and private organizations across the globe. Our industry-enabled and client-specific solutions draw upon decades of expertise in biometrics to revolutionize the fields of public security, justice and public safety, travel and transport, identity, and access control. Built on privacy and trust, our market-leading iris, fingerprint and facial recognition solutions top independent benchmarking for accuracy, fairness and scalability. These exacting standards enable our clients to build safer, fairer societies where people can live, interact, and move about freely. With 4000+ employees around the world and 150+ partners worldwide, we offer more than just a job - we provide a dynamic environment where innovation thrives, opportunities abound, and your talents are valued. Be part of a global leader shaping the future of biometric based technology. Learn more here.
Do you enjoy making hardware work—plugging in devices, wiring up SDKs, and building smooth UI experiences around them? Join us to help integrate scanners, cameras, and peripherals into real applications, from low-level libraries to user-facing interfaces.
Connect devices using vendor SDKs and system APIs (USB/Serial/HID), then expose clean app interfaces.
Build small services, libraries, and sample apps in Java, JavaScript/TypeScript, C#, and C++ (you won’t use all at once—expect guided tasks).
Create simple UI flows for capture/preview/feedback (web or desktop) and handle edge cases (timeouts, errors, reconnect).
Contribute to a Hardware Abstraction Layer (HAL) so multiple apps can use devices consistently.
Write integration tests, logs, and diagnostics to reproduce and fix issues across environments.
Document setup steps, device quirks, and best practices for future teammates.
How to integrate real hardware into production-adjacent apps—end-to-end.
Designing a HAL to make device usage consistent across products.
Cross-language interop patterns (Java↔C++ via JNI, C#↔native via P/Invoke, JS/TS↔native via Node-API).
Building resilient UI flows for capture and validation with solid error handling.
Mentorship from engineers shipping device workflows at scale.
Enrolled in CS/Engineering (or similar).
Comfortable with at least two of: Java, JS/TS, C#, C++; willingness to learn the others with guidance.
Basic understanding of how apps talk to devices (SDKs, drivers, permissions) and how to read API docs.
Familiar with Git, debugging, and writing small, clean functions.
Curious, hands-on, and persistent when troubleshooting hardware/software issues.
Desktop or web UI basics (React/Angular/WinForms/WPF/JavaFX) and event-driven programming.
Experience with one of: JNI, P/Invoke, Node-API/Native Addons, or gRPC/REST service wrappers.
Build tools (CMake, Gradle/Maven, npm/pnpm, .NET SDK) and packaging basics.
Knowledge of USB/HID/Serial concepts, threading/async patterns, or state machines.
Familiarity with logging/diagnostics tools (Device Manager, usbmon/USBView, Process Monitor), Postman, or protocol analyzers.
Exposure to barcode readers, signature pads, cameras, or biometric peripherals is a plus.
Important Dates:
Start Date: May 18, 2026
End Date: Aug 7, 2026
Note: This is a hybrid role, you must be able to travel to the office.
The Canadian hourly rate for this position is $25.
Software Powered by iCIMS
www.icims.com