Senior Software Developer Kotlin
Amdaris Group โ Romania ยท Posted ~1 day ago
๐ Log in to save this job, tailor your resume & track your apply process โ 7 days free, no card needed.
Log in to add to target listDescription
We fuse together exceptional talent who deliver outstanding software solutions.
Our approach has helped us grow 60% in 2021, 94% in 2022, while in 2023 we joined forces with Insight, a Fortune 500 company and a leading solutions and systems integrator.
With exciting growth plans and cutting-edge projects, there has never been a better time to join our incredible team.
About The Role
We are building the software that drone pilots actually look at.
The application runs on the aircraft's smart controller โ DJI RC Pro / RC Plus class hardware โ as an Android app with a Kotlin presentation layer, sitting on top of a shared Kotlin Multiplatform core that also powers our backend.
This role is front-end first.
You own the interface: live telemetry, video, mission state, and the controls a pilot uses in the field.
You will also co-own the shared KMP core with the rest of the team โ the domain model, protocol and sync logic that the UI renders and the backend serves.
We do not have a designer yet.
The right person here has opinions about interface design and can carry a screen from rough intent to something a pilot can use in bright sunlight with one hand โ working with a designer later, but not blocked without one today.
This is a senior individual contributor role.
You are not managing anyone; you are expected to make good calls independently and raise the quality bar by example.
What you will do
Build and own the Android presentation layer in Kotlin and Compose: flight UI, telemetry displays, video, mission planning and review.Shape the interface itself โ layout, interaction, information hierarchy โ in the absence of a dedicated designer.Co-own the shared Kotlin Multiplatform core alongside the rest of the team: domain model, protocol, persistence, sync.Render live telemetry and video streams smoothly on modest controller hardware.Design for the field: degraded links, stale data, gloves, sunlight, vibration, one-handed use.Work alongside the engineers handling the DJI SDK integration, and consume the flight state they expose โ growing into that layer yourself over time if it interests you.Validate on real hardware.
The emulator only gets you so far; expect to be part of field testing.
Requirements
Engineering fundamentals5+ years building and shipping production software.Expert-level Kotlin: coroutines, structured concurrency, Flow, generics.Sound architecture instincts: modularization, clear layer boundaries, domain logic kept out of framework and UI code.Comfortable with testing and CI/CD as part of normal work, not an afterthought.Able to work autonomously in a fully remote, distributed team, and to communicate clearly in writing.Professional working proficiency in English.
Android4+ years of Android development with applications shipped and maintained in production.Solid grasp of the application lifecycle, foreground and bound services, process death, and keeping a long-running session alive behind the UI.Performance work as a habit: profiling, memory, frame timing, battery and thermal behaviour on constrained devices.Comfortable targeting older API levels and non-standard hardware โ controller devices lag well behind mainstream Android and have no Play Services to lean on.
Presentation layer in Kotlin โ the core of this roleDeep Jetpack Compose: state hoisting, recomposition and stability, ,derivedStateOf, custom layouts, Canvas drawing, animation, gesture handling.Sound UI architecture: unidirectional data flow, a single source of truth, Flow-driven state, no business logic in composables.Rendering high-frequency streams without dropping frames: telemetry arriving many times a second, backpressure, conflation, throttling to what the eye can actually use.Composing UI over live video and map surfaces โSurfaceView/TextureView interop, overlays, correct layering and lifecycle.Custom visual components built from scratch: gauges, attitude and heading indicators, timelines, map overlays.
Off-the-shelf Material components will not cover this UI.Design judgment.
You can take a vague requirement and produce a defensible interface: information hierarchy under time pressure, dense but glanceable layouts, high contrast for direct sunlight, touch targets usable with gloves, no reliance on subtle colour cues.Designing for degraded states โ stale telemetry, lost link, unknown position โ so the screen never implies certainty the system does not have.Accessibility and internationalisation fundamentals; UI testing (Compose UI tests, screenshot tests).
Kotlin MultiplatformProduction experience with KMP, not just prototypes.Confident with expect / actual , source set layout, and Gradle multiplatform configuration โ version catalogs, convention plugins.The KMP ecosystem in practice: Ktor client, kotlinx-serialization, kotlinx-datetime, SQLDelight or Room KMP, coroutines across targets.Judgment about what belongs in shared code versus platform code, and the discipline to hold that line while working in a codebase you share with others.Offline-first patterns: local persistence, deferred sync, conflict handling when connectivity returns.
Real-time and hardware-facing UI
We do not expect drone experience.
We do expect that you have built an interface driven by something other than a REST response โ hardware, a device SDK, a sensor, a media pipeline.
Experience building UI on top of a device or hardware SDK: Bluetooth or USB peripherals, cameras, IoT devices, medical or industrial equipment, vehicles, robotics.Handling connection lifecycle in the UI: pairing, reconnection, link loss, and communicating all of it honestly to the user.Live video in an app: decoding, rendering, latency, and drawing on top of a moving frame.Comfort with a UI whose correctness matters โ where a misleading screen has consequences beyond a bad review.
Nice to have
DJI SDK experience โ Mobile SDK v5 especially, or Payload / Edge SDK.
A significant plus, not a requirement.Any drone or autopilot exposure: MAVLink, PX4, ArduPilot, Skydio, Parrot; or hands-on flying.Compose Multiplatform.Geospatial and map UI: coordinate systems, tiling, offline map data, flight-path overlays.Video transport: RTMP, WebRTC, RTSP, hardware codecs.Design tooling and vocabulary โ Figma, design systems, prototyping โ given we have no designer yet.Server-side Kotlin (Ktor or Spring Boot), useful for the shared core.Android on vendor-locked or rugged hardware: device owner mode, sideloaded distribution, OTA updates for fielded units.A drone pilot certificate, or genuine willingness to obtain one.
To see more roles, click here.
We have 91,923 jobs that might be an even better fit for you
DontApply's real value goes far beyond a single job link or company name. Just upload your resume โ in under a minute we'll analyze all 91,923 jobs and tell you exactly which ones you should apply to right now.
Upload My Resume