Kotlin developer job description template (2026)
A complete Kotlin developer job description you can copy, focused on coroutines and Flow, Kotlin backends with Ktor or Spring, and Kotlin Multiplatform.
By the Ryz Labs team · Updated October 2026
A Kotlin developer job description should say where your Kotlin runs. Kotlin powers Android apps, but it is also a common choice for JVM backend services in Spring Boot or Ktor and for shared business logic through Kotlin Multiplatform. A post titled "Kotlin developer" that is really an Android UI role, or a Spring role that never mentions Spring, wastes everyone's time. The template below targets a senior Kotlin developer building backend services and shared Kotlin libraries, with deep coroutine and Flow knowledge. If the job is mainly an Android app, use an Android developer job description instead. Copy it, adjust and cut what does not apply.
Kotlin developer job description template
Job title
Senior Kotlin Developer (Backend Services and Shared Libraries)
Employment type: full-time or contract. Location: remote, with at least four hours of overlap with US Eastern time.
About the role
We are looking for a senior Kotlin developer to design, build and run the services behind [product name], and to own the shared Kotlin code used by our [backend / Android / iOS] teams. Our backend runs on [Ktor / Spring Boot] on the JVM in [AWS / Azure / GCP], with Postgres and Kafka. You will set standards for coroutine usage, error handling and testing across our Kotlin codebase. You will join a team of [number] engineers and report to [title].
Responsibilities
- Design and build HTTP and gRPC services in Ktor or Spring Boot with Kotlin coroutines, including structured timeouts and cancellation.
- Use Flow, StateFlow and SharedFlow correctly for streaming data, with attention to backpressure, buffering and cold versus hot semantics.
- Choose coroutine dispatchers and scopes deliberately, keep blocking JDBC or file I/O off the wrong threads and avoid leaked scopes like GlobalScope.
- Model domains with sealed interfaces, data and value classes, and explicit error types rather than exceptions everywhere.
- Work with Postgres through Exposed, jOOQ or Spring Data, and plan safe migrations with Flyway or Liquibase.
- Build event-driven flows with Kafka or a cloud queue, with idempotent consumers and clear retry and dead-letter handling.
- Maintain Kotlin Multiplatform modules that share models, validation or networking between backend, Android and iOS.
- Write tests with JUnit 5 or Kotest, MockK, kotlinx-coroutines-test and Testcontainers, and keep them fast and deterministic.
- Tune JVM services: heap and GC settings, startup time, thread usage and profiling with async-profiler or JFR.
- Own the Gradle build: Kotlin DSL, version catalogs, convention plugins and compiler upgrades, including the K2 compiler.
- Review pull requests and help other engineers write idiomatic, readable Kotlin.
Requirements
- 5+ years of professional software development, with at least 3 years writing production Kotlin.
- Deep knowledge of coroutines: structured concurrency, Job hierarchies, SupervisorJob, exception propagation and cancellation.
- Practical experience with Flow operators and the difference between Flow, Channel, StateFlow and SharedFlow.
- Production experience with Ktor or Spring Boot (including Spring WebFlux or coroutine support) on the JVM.
- Strong command of Kotlin idioms: null safety, extension functions, scope functions used sparingly, sealed hierarchies and inline or reified generics.
- Solid SQL and relational modeling skills, ideally with Postgres.
- Understanding of the JVM: memory model, garbage collection basics and Java interoperability, including platform types.
- Experience with Gradle Kotlin DSL, containers and CI/CD on a major cloud provider.
- Clear written English for design docs, pull request descriptions and async communication.
Nice to have
- Kotlin Multiplatform in production, including expect/actual declarations and Swift interop for iOS consumers.
- Android experience, so you can support mobile teams using shared modules.
- Arrow or other functional programming libraries in Kotlin.
- GraalVM native images or other JVM startup optimizations.
- Writing compiler plugins, KSP processors or Gradle plugins.
- Open source contributions to Kotlin libraries.
Tech stack
Kotlin 2.x (K2 compiler), Coroutines and Flow, Ktor or Spring Boot 3, kotlinx.serialization, Exposed or jOOQ, Postgres, Kafka, Kotlin Multiplatform, JUnit 5, Kotest, MockK, Testcontainers, Gradle Kotlin DSL, Docker, GitHub Actions, AWS. Replace this list with your real stack and say which platforms your Kotlin targets.
What success looks like in 6 months
- You have shipped meaningful features to production and own one service or shared module as its primary maintainer.
- Coroutine misuse in your area, such as blocking calls on the wrong dispatcher or swallowed cancellation, is found and fixed.
- You have improved one measurable pain point, such as p99 latency on a key endpoint, flaky tests or Gradle build time.
- You have written a design doc the team used, for example on Kotlin Multiplatform scope or a Flow-based streaming design.
How to apply and interview process
Send your resume or LinkedIn profile and a short note about a Kotlin service or library you built or improved. Our process has four steps: a 30-minute intro call, a technical conversation about a system you have worked on, a practical exercise or pairing session on a realistic Kotlin problem, and a final conversation with the team you would join. We aim to give feedback within a few days of each step.
Junior vs mid vs senior Kotlin developer
Kotlin is easy to write and hard to write well. The gap between levels shows most clearly in coroutines: anyone can launch one, but seniors know who owns it, who cancels it and what happens when it fails.
| Level | Scope | Typical experience | Key skills |
|---|
| Junior | Well-defined tickets inside an existing service or module, with close review | 0-2 years | Null safety, data classes, collections, basic suspend functions, unit tests |
| Mid-level | Features end to end within one service, including persistence, tests and deployment | 2-5 years | Structured concurrency, Flow, Ktor or Spring, SQL, MockK and coroutine testing |
| Senior | Service design, shared libraries, Multiplatform strategy and mentoring | 5+ years | Cancellation and error semantics, JVM tuning, API design, Gradle architecture, KMP trade-offs |
Tips for writing a Kotlin developer job description that attracts senior talent
- Say backend, Android or Multiplatform. Kotlin developers sort themselves by platform first. A backend specialist will not apply to a post that looks like Compose screens, and the reverse is also true.
- Name your framework. Ktor and Spring Boot attract different engineers. Spring with coroutines is common in enterprises; Ktor tends to appear in leaner, Kotlin-first services.
- State your Kotlin and compiler version. Being on Kotlin 2.x with K2 signals a maintained codebase. Being on an old 1.x version is fine if you say you plan to upgrade.
- Describe how much Java remains. Many Kotlin backends sit next to Java modules. Be honest, because interop work is part of the job.
- Be precise about Multiplatform. "We share networking and models with iOS through KMP" is attractive. "KMP someday" is better left out.
- Mention a real concurrency problem. A streaming pipeline, fan-out to many downstream services or a websocket gateway tells candidates the coroutine knowledge will actually be used.
- Keep the process short and stated. Experienced Kotlin developers are in demand across both mobile and backend teams, so a clear, quick process helps you compete.
Skip the job post: hire a vetted senior Kotlin developer
Writing a good job description is the first step of a hiring cycle that can run for months. If you need senior Kotlin capacity sooner, Ryz Labs can match you with senior Kotlin developers from Latin America who join your team, your repos and your standups and work within an hour of US time zones. Only the top 1% of the engineers we interview make it through our vetting, which covers coroutines, JVM fundamentals and real system design.
Our staff augmentation model lets you add one Kotlin developer or several, working on your team, without rewriting your process. Ryz engineers work on your team, reporting to your leads. Talk to us to scope your team. If you are still running your own hiring loop, our Kotlin interview questions cover the topics we test for and what strong answers sound like.
FAQ
What should a Kotlin developer job description include?
A job title with seniority, the platform your Kotlin targets (backend, Android or Multiplatform), your framework and Kotlin version, specific responsibilities, realistic requirements, your real tech stack, what success looks like after a few months and the interview steps.
Can a Java developer fill a Kotlin developer role?
A strong Java developer can become productive in Kotlin within weeks, especially on Spring. The harder part is coroutines and idiomatic Kotlin design. If your services rely heavily on coroutines and Flow, require prior Kotlin experience; otherwise, Java engineers willing to switch are worth considering.
What is the difference between a Kotlin developer and an Android developer?
An Android developer owns the mobile platform job: Compose UI, lifecycle, background limits, device fragmentation and Play Store releases. A Kotlin developer role centers on the language and is often backend or shared-library work. Hire an Android developer when the product is an Android app.
Questions we didn't answer? Email info@ryzlabs.com.