JOBSEARCHER

Sr Java / Android Engineer — Legacy Modernization & Embedded Hardware Integration (Medical Imaging)

About the role 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. Required qualifications - 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). Pay: $90,000.00 - $120,000.00 per year Work Location: Remote