Skip to content
  1. Home
  2. Hire
  3. Android
  4. Kotlin
Hire developers

Senior Kotlin developers: 3 vetted profiles in 48 hours

Senior Kotlin engineers for Android and for the server: coroutines with a scope that ends, and null safety used as a design tool rather than as a compiler setting.

What we test for

Kotlin 2.0Coroutines and FlowJetpack ComposeKtor or Spring Boot on the serverKotlin Multiplatform, where it fitsJUnit and TurbineGradle Kotlin DSL

Typical work

  • Android features in Compose, on a codebase that still has Views in it
  • Migrating a Java Android application module by module, not in one release
  • Server-side Kotlin for teams that already live in the JVM
  • Shared business logic across platforms, where the saving is real

The coding test

A screen keeps collecting a Flow after the user navigates away, and a coroutine started in a ViewModel outlives it. Fix the lifecycle, then make a sequence of three calls cancellable as a unit. Then write the test with Turbine. Scored on the scopes, which is where this always goes wrong.

For your interview loop

Five interview questions you can reuse

We use questions like these in our soft-skills and technical rounds. Steal them for your own interviews.

  1. What does a coroutine scope actually do for you?

    A strong answer covers: It ties a set of coroutines to something with a lifetime, so cancelling the owner cancels the work. GlobalScope has no owner, which is why it is the source of most leaks: the screen is gone and the request is still running, and its callback touches a view that no longer exists. The question behind it is always what should happen to this work when the user leaves.

  2. When is a suspend function not cancellable?

    A strong answer covers: When it never reaches a suspension point, or when it swallows CancellationException in a broad catch, which is the common one. A blocking call inside a coroutine is cooperative in name only. The fix is to check for cancellation, use the dispatcher built for blocking work, and never catch Throwable where you meant to catch an IOException.

  3. Flow, StateFlow or a channel?

    A strong answer covers: Flow for a stream of values with no history, StateFlow for state that always has a current value and a new subscriber needs it, a channel when each item must be delivered exactly once to one consumer, like a navigation event. The bug worth asking about is using StateFlow for events, where a configuration change replays the last one and the app navigates twice.

  4. How do you model a screen that can be loading, empty, loaded or failed?

    A strong answer covers: A sealed interface with one type per state, so the UI handles each and the compiler notices when a fifth appears. The alternative, a data class with four nullable fields and a boolean, makes impossible combinations representable, and the bug report is always one of those combinations.

  5. Where does null safety stop helping?

    A strong answer covers: At the edges: JSON, the platform types that come back from Java, and anything from a database. The compiler believes the declaration, so a nullable field declared non-null produces a crash further away than the mistake. Seniors parse at the boundary into types that are already correct, rather than sprinkling !! where the warnings appear.

How we work

One invoice a month.

The shortlist is free. Pick the contract that suits you: monthly, six months or twelve.

What every seat includes

  • Contracts, payroll and compliance handled
  • Vetting: coding test, soft skills, English and a level check
  • Free replacements: unlimited on 12+ months, 2 on 6 months, 1 on monthly
  • A direct line to our CEO
Get 3 profiles in 48 hours

Terms in plain words

  • Monthly, six months or twelve, your choice
  • Your rate is locked for the whole contract on 6 and 12+ months
  • Monthly ends with 30 days’ notice
  • Want to hire the developer full-time? The buyout is set in the contract from day one

The full terms, contract by contract

Questions tech leads ask us

Is this the same pool as your Android developers?

Overlapping, and the profile says which. The Android test is about the platform: lifecycle, Compose and release builds. This one is about the language and its concurrency, which is also what a server-side brief needs.

Is Kotlin Multiplatform ready for us?

A senior will answer with what you would share and what you would not. Business logic and networking, usually yes; UI, rarely worth it. We would rather say no to the idea than staff a project that needs two platform engineers anyway.

Skip the sales rep. Talk to the CEO.

Tell us what you're building, your stack and when you need people. Three vetted profiles per role within 48 hours of the call, and a straight answer on whether we're the right fit.