> Markdown version of [/jobs/ext/730582-sr-java-android-engineer-legacy-modernization-embedded-hardware-integration-medical-imaging](https://www.wearedevelopers.com/jobs/ext/730582-sr-java-android-engineer-legacy-modernization-embedded-hardware-integration-medical-imaging). Every page supports `.md` or `Accept: text/markdown`. Links point to the HTML versions so they work for humans too. Agent guide: [/agents.md](https://www.wearedevelopers.com/agents.md). --- # Sr Java / Android Engineer - Legacy Modernization & Embedded Hardware Integration (Medical Imaging) - **Company:** SafetySpect Inc. - **Location:** Seattle, WA, United States (Remote available) - **Experience:** Expert - **Salary:** $90,000.0 - $120,000.0 - **Contract:** Permanent contract - **Skills:** Board Bringup, Java (Programming Language), .NET Framework, Microsoft Windows, Application Programming Interfaces (APIs), Android Software Development, Android NDK, ARM Architecture, Computer Vision, C++ (Programming Language), Mobile Application Development, CMake, Software Debugging, Dicom, Gradle, Hardware Design, Java Development Kit, Java Native Interface, Linux Kernel, Windows Presentation Foundation, Sabre (Computer System), SAP Sales and Distribution, SQLite, Systems Integration, Toolchain, Peripherals, Kotlin - **Published:** June 29, 2026 - **Apply:** https://www.indeed.com/viewjob?jk=9e62a5fc94b3fff3 ## About the Role 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). ## 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. ## Related Videos - [ZEISS & Microsoft - Building the Next Generation Medical Ecosystem in the Cloud](https://www.wearedevelopers.com/videos/424-zeiss-microsoft-building-the-next-generation-medical-ecosystem-in-the-cloud) - [Code to Road in < 12 hours](https://www.wearedevelopers.com/videos/1082-code-to-road-in-12-hours) - [Kotlin Multiplatform - True power of native code reuse](https://www.wearedevelopers.com/videos/4-kotlin-multiplatform-true-power-of-native-code-reuse) - [For the Cars and the Curious: Android Drift](https://www.wearedevelopers.com/videos/499-for-the-cars-and-the-curious-android-drift) - [Grappling With Clunky Old Software? Start by Understanding What’s Inside!](https://www.wearedevelopers.com/videos/1189-grappling-with-clunky-old-software-start-by-understanding-what-s-inside) - [Why Kotlin is the better Java and how you can start using it](https://www.wearedevelopers.com/videos/661-why-kotlin-is-the-better-java-and-how-you-can-start-using-it) ## Related Articles - [Is Software Engineering Over-Saturated?](https://www.wearedevelopers.com/magazine/418-is-software-engineering-over-saturated) - [Dev Digest 121 - AI goes offline](https://www.wearedevelopers.com/magazine/456-dev-digest-121-ai-goes-offline) - [Dev Digest 120 - Apple and peers](https://www.wearedevelopers.com/magazine/455-dev-digest-120-apple-and-peers) - [Why Upskilling And Reskilling is Important For Developers](https://www.wearedevelopers.com/magazine/428-why-upskilling-and-reskilling-is-important-for-developers) - [93 Java Interview Questions You Should Prepare For](https://www.wearedevelopers.com/magazine/14-93-java-interview-questions-you-should-prepare-for) - [Fully Remote Software Engineer Jobs](https://www.wearedevelopers.com/magazine/447-fully-remote-software-engineer-jobs)