Sr Java / Android Engineer - Legacy Modernization & Embedded Hardware Integration (Medical Imaging)
Role details
Job location
Tech stack
Job description
We build the HyperView handheld hyperspectral medical imaging camera - a clinical device that captures tissue oxygenation / hemoglobin maps and exports them as DICOM. We're hiring a Java/Android engineer to own and evolve the camera's on-device application across three fronts: (1) maintain and extend current functionality, (2) modernize a long-lived legacy Android/NDK stack to current versions, and (3) integrate new and upgraded hardware as the device platform advances. This is a hands-on, full-stack-on-the-edge role spanning the Android app layer, native (JNI/C/C++) imaging and device-control code, and the embedded hardware boundary - on a regulated medical device where correctness and traceability matter.
The platform you'll work on
-
Product: HyperView - handheld hyperspectral clinical imaging camera; DICOM output.
-
Compute board: NXP / Freescale i.MX6 (SABRE-SD class, ARM Cortex-A9; sabresd_6dq).
-
Operating system: Android 4.3 "Jelly Bean" (API level 18) - rooted, kiosk-locked.
-
Peripherals / hardware: Atmel UC3 capture/optics board (exposed to Android over USB mass storage), GPIO-driven illuminator / optics-power / capture trigger, IR/thermal sensor, and a calibrated optical path.
-
App stack (current / legacy): Java (JDK 8); Android SDK 23, build-tools 27.0.3; Gradle 4.6-4.10.1 + Android Gradle Plugin 3.1-3.3; NDK r16b; native C/C++ via JNI (imaging algorithm, libhm_client, libIRSensor, device-helper utilities); pre-AndroidX android.support libraries; SQLite; the Imebra DICOM toolkit; Timber.
-
Ecosystem: a companion Android app (DicomSaver) and a Windows .NET/WPF imaging suite that talks to the device over WPD/MTP.
What you'll do
-
Maintain, debug, and extend the on-device Android application (Java and the native JNI layer).
-
Lead the modernization: raise the Android API level, migrate android.support * AndroidX, upgrade Gradle/AGP/NDK and third-party libraries, replace deprecated APIs, and re-establish clean, reproducible builds - without regressing clinical behavior or calibration integrity.
-
Integrate new and upgraded hardware being added to the device: bring up sensors/boards/illumination/compute and write or adapt the Android*hardware glue (JNI, GPIO, USB, serial/I²C/SPI), validated end-to-end against the imaging pipeline.
-
Work fluently across the native boundary: read, debug, and modify performance- and hardware-sensitive C/C++; manage NDK toolchains and reproducible native builds.
-
Debug on real hardware: adb/logcat, root (su), filesystem mounts, kernel logs (dmesg), USB/storage enumeration.
-
Uphold medical-device rigor: verification, documentation, and change traceability.
Requirements
Do you have experience in Technical troubleshooting support?, Strong Java and Android engineering, genuinely comfortable across both legacy and modern Android.
-
Demonstrated experience working inside legacy Android codebases - Android 4.x / Jelly Bean era, android.support libraries, old Gradle/AGP, NDK r16-era toolchains. You can navigate, build, and debug an old stack, not just greenfield modern apps.
-
A proven track record modernizing legacy Android apps: API-level upgrades, AndroidX migration, Gradle/AGP/NDK upgrades, dependency and deprecation remediation - executed methodically and regression-safe.
-
Android NDK / native development: C/C++, JNI, ndk-build/CMake; ability to read and modify imaging and device-control native code.
-
Embedded / hardware integration: integrating peripherals over GPIO/USB/serial/I²C/SPI; running Android on custom ARM boards (i.MX6 / NXP a strong plus); comfort with rooted/AOSP devices and board bring-up.
-
Solid on-device debugging discipline (adb, logcat, dmesg, mounts) and reproducible-build hygiene.
Strongly preferred / bonus
-
Medical-device or other regulated / safety-critical software (IEC 62304, ISO 13485, FDA QSR / Design Controls).
-
DICOM and/or the Imebra toolkit; medical or scientific imaging, computer vision, or hyperspectral/multispectral imaging.
-
AOSP / BSP / custom-ROM work on NXP i.MX or similar SoCs; Linux kernel / device-driver familiarity.
-
Kotlin; modern Android architecture; CI for Android + NDK.
-
Windows/.NET interop experience (for the companion PC suite).
Benefits & conditions
$90,000 - $120,000 a year - Full-time, Contract