Kotlin Android Developer (BLE IoT App Support)
- ~5 hours per month retainer to guarantee availability.
- Additional work billed hourly at an agreed rate.
- Hours tracked in 30-minute increments with detailed monthly invoices.
- Engagement begins with a trial period; either party may end the relationship with 30 days’ notice.
- We provide QA support and BLE hardware devices for testing.
Overview
We are seeking a highly skilled Kotlin Android Developer to provide part-time support, maintenance, and occasional enhancements for a native Android application used by technicians and healthcare personnel to configure IoT devices in hospital environments.
The app is mature and generally stable, but periodically requires bug fixes, SDK migrations, BLE-related troubleshooting, improvements for new Android OS versions, and small feature enhancements. This is not a staff-augmentation role—it's a long-term, low-volume support partnership with predictable monthly work and additional hours billed as needed.
While this is a part-time position, reliability, technical depth, and communication quality are essential. You’ll work asynchronously with our U.S.-based engineering team via Slack, independently diagnose complex issues, and be accountable for delivering high-quality updates.
Responsibilities
Core Maintenance & Support
- Provide technical troubleshooting, bug resolution, and support for a native Kotlin Android app used in the field to configure IoT devices.
- Maintain and improve Bluetooth Low Energy (BLE) communication flows, including GATT interactions, bonding/pairing flows, timeouts, scan failures, and device-specific quirks.
Diagnose and reproduce BLE behavior using example IoT devices that we will provide.
(No in-field/on-site debugging required; occasional remote troubleshooting collaboration possible.)
Enhancements & Upgrades
- Implement minor feature updates and UX improvements within the existing codebase.
- Maintain and upgrade the application to remain compatible with future Android SDK and AGP versions, including handling breaking changes and new permission models (especially for BLE).
Support the build & release process using Fastlane and Google Play Console (publishing preferred, preparing artifacts acceptable).
Architecture & Code Quality
- Maintain and refine existing Dagger 2 dependency injection structures.
(We are open to selective improvements but not full rewrites; long-term the app will eventually be replaced with a Flutter-based version.) - Update and maintain multi-module Gradle configurations, packaging rules, and build troubleshooting.
- Support JSON handling using Moshi, including codegen adapters and serialization logic for device configuration.
Ensure application stability during Android 12–16 migration cycles, especially around sensitive BLE permission changes.
Collaboration & Process
- Participate in an initial onboarding process to learn the codebase, BLE device workflows, build environment, and testing processes.
- Collaborate asynchronously with U.S.-based team members via Slack.
- Provide clear updates, communicate blockers early, and proactively identify potential issues.
- Track all non-retainer time in 30-minute increments and submit detailed monthly invoices.
Core Android Expertise
- Strong Kotlin skills with the ability to work alongside legacy Java components.
- Deep familiarity with BLE, including:
- GATT characteristics & descriptors
- Bonding/pairing flows
- Connection stability, reconnection logic, and timeout handling
- Common production BLE failure modes
Comfortable working with XML-based UI and/or fragments/activities (Compose experience a plus, but not required).
Dependency Injection (Dagger 2)
- Experience with component graphs, subcomponents, modules, and @ Inject usage.
Ability to safely update or restructure Dagger 2 where needed without large-scale rewrites.
JSON Serialization (Moshi)
- Experience with Moshi adapters and codegen (@ JsonClass(generateAdapter = true)).
- Ability to read/write JSON for BLE device configuration and backend interactions.
Jetpack Architecture Components
- Experience with:
- ViewModel
- LiveData
- Lifecycle-aware components
Structured logging (Timber)
- Build System & Project Structure
- Strong Gradle skills (Groovy or Kotlin DSL), including multi-module setups.
- Experience handling AGP migrations, permission changes, and target/min SDK updates.
Familiarity with Android packaging rules (packagingOptions), manifest merges, and build troubleshooting.
- Build & Deployment
- Experience with Fastlane for build automation and store uploads.
Comfortable preparing or publishing builds in Google Play Console internal/external tracks.
- Soft Skills & Working Style
- Strong English communication skills, both written and spoken.
- Consistent availability for asynchronous collaboration via Slack and email.
- Ability to work independently and diagnose issues without extensive guidance.
- Professional, reliable, and disciplined in reporting hours and meeting expectations.
Nice-to-Have Skills
- BLE tooling & sniffers (nRF Connect, SweynTooth knowledge, etc.)
- Experience with device provisioning, IoT workflows, or regulated healthcare environments.
- Familiarity with Flutter (eventual migration could surface collaboration opportunities).
- Experience with backend APIs, authentication flows, or local persistence strategies.
Required languages
| English | B2 - Upper Intermediate |