Job Description: Android Developer (Native, BLE / Connected Devices)
Android Developer (Native, BLE / Connected Devices)
| Location |
Technopark, Trivandrum |
| Experience |
8+ Years |
About the Role
We are looking for a Native Android Developer to build and maintain
mobile applications for a connected-device platform. The app connects to
smart hardware over Bluetooth Low Energy (BLE) and works closely with
cloud services that handle access and permissions. You will own feature
development, maintenance, and production support, working closely with
Cloud, Firmware, DevOps, and QA teams to deliver releases on time.
Key Responsibilities
- Native Android development using Kotlin and the Android SDK
- Implement new features based on product requirements
-
Maintain existing applications, including bug fixes and performance
optimization
-
Integrate with backend APIs (REST / GraphQL) and cloud services
(AWS-hosted)
-
Must have: Hands-on expertise with Android Bluetooth LE — BLE queue
management, scanning and scan filtering, ciphering, GATT
services/characteristics, and hardware communication protocols for
smart devices
-
Implement UI/UX following design specifications and Material Design
guidelines
- Manage app store submission, builds, and release management
-
Write unit and UI tests to minimize defects and reproduce intermittent
issues
-
Diagnose and resolve hard-to-reproduce production issues using
analytics and crash data
- Conduct code reviews and maintain technical documentation
- Collaborate closely with the Cloud/Web team on API integration
Required Skills & Experience
Core Android & Language
- Expert-level native Android development (Kotlin, Android SDK)
-
Strong command of both Jetpack Compose and the XML/View system, with
sound judgment on when to use each; Material Design
-
Concurrency: Coroutines and Flow (StateFlow / SharedFlow), structured
concurrency; thread-safety and race-condition handling; approaches
when coroutines are not available
Architecture & Design
-
MVVM and Clean Architecture in depth; MVC vs MVVM trade-offs; Use
Cases / domain layer and how to unit-test it
-
Dependency Injection (Hilt / Dagger); designing reusable UI and common
features shared across the project
Background Work & Performance
-
Long-running and background operations: WorkManager,
foreground/background services, Doze and app-standby behaviour;
surviving process death mid-operation
-
Efficient large-list rendering (RecyclerView, ListAdapter, Paging),
including poor-network scenarios; diagnosing image-recycling /
mismatch issues
-
Reliable bulk database writes (e.g., large dataset inserts); caching
strategies, eviction policies and TTL
APIs, Networking & Security
-
RESTful and GraphQL integration (incl. GraphQL configuration and
schema-change handling); awareness of SOAP trade-offs
-
Where and how to configure timeouts; optimizing multiple / parallel
API calls; response caching
-
Token-based auth: JWT (payload/claims), refresh tokens and expiry
handling, SSO, Cognito or similar
- Certificate / SSL pinning; secure credential storage
Data & Persistence
-
Room (Entity / DAO / Database) and other persistence mechanisms;
secure storage of sensitive data
- Handling data migration and integrity issues across app updates
BLE / Connected-Device Communication (core to the role)
-
Hands-on Android BLE: full flow (scanning → connection → service
discovery → communication → disconnection)
-
BLE operation queue management and prioritization (incl.
reprioritizing or discarding queued operations); scan filtering by
Service UUID, device name and manufacturer data; GATT/ATT, services
and characteristics
-
MTU handling (max size, dynamic negotiation) and packet-size limits;
Notify vs Indicate; response parsing; acknowledgements and reliable
byte-level transfer; exponential retry and reconnection (incl. why to
wait before reconnecting)
-
Ciphering and encrypted device communication; OTA firmware-update
considerations; awareness of vendor/OS differences (e.g., Pixel vs
Samsung, Android vs iOS, Android 12 Bluetooth changes) and
location-permission requirements (FINE vs COARSE)
Notifications, Analytics & Observability
-
Push notifications (FCM): data vs notification messages, triggering,
reliability trade-offs and use cases; payload structure / parsing and
resilience to backend payload changes
-
Firebase Analytics (custom events, event tracking) and Crashlytics;
which crash types go unreported and why; analytics- and log-driven
debugging of elusive production issues
-
Memory-leak detection (LeakCanary), including integration with CI/CD
Quality, Tooling & Delivery
-
CI/CD pipelines for mobile (Fastlane, Gradle); modules across multiple
repositories and multiple build types / flavors
- App distribution: Firebase App Distribution, Google Play Store
- Build / dependency tooling: Gradle, Android Studio, Maven
-
Testing: JUnit, Espresso, Kaspresso; a clear view of meaningful
coverage and which layers to test
-
Localization implementation and management (incl. tooling such as
Phrase); awareness of Android/iOS localization differences
Preferred / Nice to Have
-
Experience with IoT / connected-device companion apps (strongly
preferred)
- Experience with OTA firmware update flows
- A/B testing: implementation and rollout
- Google Maps integration; Fragments-based navigation
-
Practical use of AI-assisted development tools in day-to-day workflow
- Good to have: B1 visa
Technical Screening Focus Areas
-
Project walkthroughs — architecture decisions, individual
contributions, and real production challenges and how they were
resolved
-
BLE end-to-end — flow, GATT and characteristics, MTU and packet size,
Notify vs Indicate, reliable transfer and acknowledgements, queue
prioritization, retry and reconnection, max simultaneous device
connections
-
Concurrency & background work — coroutines / Flow, thread-safety, race
conditions, WorkManager, Doze, long-running operations that survive
process death
-
Architecture — MVC vs MVVM, Clean, Use Cases (and how to test them),
Dependency Injection, reusability
-
Performance — large-list efficiency, RecyclerView / ListAdapter, image
recycling, bulk DB inserts, caching / eviction / TTL
-
Networking & security — REST/GraphQL (config and schema changes,
optimization), JWT and refresh tokens, SSL pinning, timeouts
-
Persistence — Room, secure storage, data migration across app updates
-
Supporting areas — FCM payloads and reliability, Crashlytics gaps,
analytics-led debugging, code-review focus, localization, and
unit-testing strategy