Android Developer

Properfood, LLC
Lake Forest, United States of America
yesterday

Role details

Contract type
Permanent contract
Employment type
Full-time (> 32 hours)
Working hours
Regular working hours
Languages
English

Job location

Remote
Lake Forest, United States of America

Tech stack

Multitier Architecture
API
Amazon Web Services (AWS)
Android
App Store (IOS)
Unit Testing
Bluetooth Low Energy (Bluetooth)
Bluetooth
Software Bug Management
Cipher
Cloud Computing
Code Review
Communications Protocols
Databases
Data Migration
Dependency Injection
DevOps
Firmware
Design of User Interfaces
Mobile Application Software
Network Security
MVC
Model View ViewModel
Performance Tuning
Queue Management Systems
Release Management
Cloud Services
Material Design
Service Discovery
Simple Object Access Protocol (SOAP)
Smart Devices
Stateflow
XML
JavaScript Pagination Plugin
Data Processing
Transport Layer Security
Concurrency
Caching
Kotlin
Jetpack Compose
GraphQL
Asynchronous Programming
REST
Web Api

Job description

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., 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, 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)

Candidates should be prepared to go deep, with real implementation detail rather than theory, on the following:

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

Requirements

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

Apply for this position