29 Aug
|
Douglas Online Technologies Canada
|
Toronto
29 Aug
Douglas Online Technologies Canada
Toronto
About the role
Douglas Online Technologies Canada is hiring one Native Android Developer to build and maintain a fully native Kotlin and Jetpack Compose client for a production online platform.
Job scope The Android application targets Android 8.0/API 26 through current Android releases and uses Kotlin, Jetpack Compose, Coroutines, Flow, ViewModel, Gradle Kotlin DSL, platform HTTP/JSON, private cookie-backed sessions, offline snapshots, protected-media caching, image and video processing, deep links, custom gestures, and Media3 ExoPlayer/HLS playback. The role owns native product delivery and parity with the existing web and API contracts.
Responsibilities
- Build native Compose screens, reusable components, themes, overlays, navigation, accessibility states, and responsive phone layouts that follow the established product contract.
- Own ViewModel-driven state, Coroutines and Flow orchestration, cancellation, session isolation, optimistic mutations, stale-content recovery, and lifecycle-safe refresh behaviour.
- Maintain typed REST/JSON integration, signed cookie storage, protected media requests, upload streams, retry/cancel flows, deep links, and offline or disk-backed snapshots.
- Implement and tune horizontal and vertical pagers, swipe-back, pull-to-refresh, crop and overlay tools, and child-first gesture arbitration over long scrollable feeds.
- Own Media3 ExoPlayer and HLS behaviour, audio focus, captions, single-player lifecycle, thumbnails, replay, a bounded SimpleCache/CacheDataSource LRU cache, and next-item preloading.
- Maintain image loading and processing, system media pickers, portrait-video validation, streaming uploads, progress, processing status, and error recovery.
- Write JUnit, Robolectric, and Compose UI tests for networking, caching, configuration, gestures, visual geometry, media contracts, and navigation.
- Maintain Gradle Kotlin DSL, Android Gradle Plugin configuration, lint, ProGuard/R8, SDK compatibility, debug/release builds, and release documentation.
- Coordinate API and visual parity decisions with backend, web, and iOS engineers and document every behaviour-changing update.
Required qualifications
- At least 4 years of professional Android development experience.
- At least 2 years of production Kotlin development experience.
- Production experience building substantial user-facing features with Jetpack Compose.
- Strong Kotlin, Compose, Coroutines, Flow, ViewModel, lifecycle, state-management, REST/JSON, and Android platform skills.
- Experience with secure cookie or token sessions, disk caching, offline recovery, image or video processing, and system media pickers.
- Experience implementing custom gestures, pagers, nested scrolling, accessibility, and responsive UI without relying on a WebView.
- Experience with JUnit, Robolectric or Compose UI tests, Gradle Kotlin DSL, Android Studio, lint, and release build workflows.
- Ability to work on-site in Toronto, Ontario on the regular schedule described below.
Preferred qualifications
- Media3 ExoPlayer, HLS, SimpleCache, CacheDataSource, preload management, captions, audio focus, or media-performance experience.
- Experience supporting API 26 and later while adopting current Android SDK and Compose capabilities.
- Experience with large stateful applications, custom crop or overlay editors, deep links, direct video uploads, or private media caches.
- Experience validating native behaviour against an existing web product and fixed backend contract.
What success looks like
- The Android client feels native, remains visually and behaviourally aligned with the product contract, and does not fall back to web-backed screens.
- Media, gestures, caching, authentication, refresh, and lifecycle recovery remain smooth and testable across API 26 and a current-device test matrix.
- Releases pass unit tests, Compose or Robolectric checks, Android lint, and a reproducible debug or release build gate.
Pay: $100,000.00-$130,000.00 per year
Perks
- Casual dress
Experience:
- Android development: 4 years (preferred)
- Kotlin: 2 years (preferred)
Work Location: In person
📌 Android Developer (Toronto)
🏢 Douglas Online Technologies Canada
📍 Toronto