Senior Mobile Software Engineer with Kotlin

๐Ÿข Accesa & RaRo ยท all Accesa & RaRo jobs
๐Ÿ“ Canada
๐Ÿ“… Posted 2026-07-11 ยท via Himalayas
๐Ÿท Software-Engineer,Mobile-Development,Android-Development,Kotlin-Multiplatform-Development,Senior-Mobile-Engineer-(Android),Senior-Android-Engineer,Senior-Mobile-Developer-(Android),Senior-Mobile-Engineer,Senior-Mobile-App-Developer,Kotlin
Apply on original site โ†—

Our client is modernizing its retail platform, transitioning from a legacy POS solution to a modular, offline-first architecture that supports POS terminals, self-checkout kiosks, and self-scanning devices. The platform is built around a shared Kotlin Multiplatform (KMP) core, powering key retail processes such as checkout, payments, customer management, and promotions across Android and Desktop applications.

We are looking for a Senior Kotlin Developer who is experienced in Kotlin Multiplatform delivery, comfortable owning complex shared modules in a layered architecture, and motivated by the challenge of building the reliable, platform-agnostic foundation that modern retail operations depend on.
Responsibilities:

-
Technical delivery: Design, implement, and maintain shared KMP modules for POS business capabilities, ensuring code is high-quality, maintainable, and performant across JVM/Desktop and Android targets.

-
Architecture ownership: Define clean repository, service, facade, DTO, and bridge contracts between Kotlin, platform-specific code, and the VueJS/TypeScript UI layer.

-
Platform integration: Implement platform-specific code for desktop and Android targets using expect/actual patterns, without leaking platform concerns into shared business logic.

-
Offline-first delivery: Build offline-capable flows with local persistence, caching, synchronization readiness, and explicit failure handling.

-
Code quality: Write clean, well-structured code, participate in reviews, and improve existing modules through refactoring where needed.

-
Testing: Write automated tests for domain rules, use cases, repositories, bridge contracts, and coroutine-based flows.

-
Collaboration: Work closely with frontend engineers, QA, product owners, and architects to align on contracts, requirements, and feature delivery.

-
Knowledge sharing: Support teammates by sharing knowledge and mentoring less experienced Kotlin developers when appropriate.

-
Team alignment: Respect team agreements and processes, while providing regular updates on progress, trade-offs, and technical decisions.

Qualifications:
Must Have

- 5+ years of experience with Kotlin, including strong hands-on KMP delivery to at least two targets (preferably Android and JVM/Desktop)

- Solid understanding of Clean Architecture: domain, use-case, infrastructure, and platform layers with dependency inversion and repository abstractions

- Practical experience with Kotlin Coroutines and Flow: structured concurrency, suspend APIs, Flow-based state and events, cancellation, and error propagation

- Experience with offline-first or local-first client architecture: local persistence, caching, synchronization concepts, and conflict handling

- Familiarity with dependency injection patterns, preferably Koin: constructor injection, module composition, and test overrides

- Strong testing discipline: unit and integration tests using Kotlin Test or equivalent, test doubles, and coroutine testing utilities

- Experience integrating REST/OpenAPI-style services: typed DTO mapping, serialization, and resilient client-side communication

- Comfortable with Gradle Kotlin DSL, modular builds, and CI-friendly project structures

- Effective communication skills for collaboration with frontend developers, QA, and product stakeholders

Nice to Have

- Android application development experience, including lifecycle awareness and platform integration

- Desktop JVM client experience, especially Electron sidecar or local service integration patterns

- Understanding of VueJS 3 and TypeScript to collaborate effectively on Kotlin-to-UI bridge contract design

- Experience with plugin or extensibility architecture: extension points, lifecycle management, and isolation

- Performance engineering experience for latency-sensitive client operations (e.g., fast item scan, payment flows)

- POS, retail, payment, promotion, or hardware peripheral integration experience

- Familiarity wit

โ† All remote jobs