---
title: "Kotlin Interview Questions (2026): By Level, With Model Answers"
url: https://weworkworldwide.com/kotlin-developer-interview-questions/
description: "Kotlin interview questions for junior, mid and senior developers — null safety, coroutines, data classes and extension functions — with model answers and red flags."
date: 2026-07-04T15:33:07+00:00
source: https://weworkworldwide.com/llms.txt
---

# Kotlin Interview Questions (2026): By Level, With Model Answers

How to use this

Kotlin fixes a lot of Java’s sharp edges, but only if you use it idiomatically. These questions check whether a candidate writes Kotlin or Java-in-Kotlin.

Hiring a Kotlin developer is easy. Telling a real one from a convincing résumé is the hard part — and it’s most of what we do. These are grouped by level, because the same question that stretches a junior is a warm-up for a senior.

## Junior Kotlin interview questions

0–2 years

Language fundamentals.

### How does null safety work in Kotlin?

What a strong answer covers

Types are non-nullable by default; nullable types use `?`, and the compiler forces you to handle nulls with `?.`, `?:` or checks.

Red flag

Uses `!!` everywhere, defeating null safety.

### What is the difference between `val` and `var`?

What a strong answer covers

`val` is a read-only reference, `var` is reassignable; prefer `val` for immutability.

Red flag

Uses `var` by default with no reason.

### What is a data class?

What a strong answer covers

A class that auto-generates `equals`, `hashCode`, `toString` and `copy` for holding data.

Red flag

Writes boilerplate equals/hashCode by hand.

### What are the safe-call and Elvis operators?

What a strong answer covers

`?.` calls only if non-null; `?:` provides a fallback value; together they replace verbose null checks.

Red flag

Uses nested if-null checks instead.

### What is the difference between `==` and `===`?

What a strong answer covers

`==` calls `equals` (structural), `===` checks referential identity.

Red flag

Assumes `==` is reference equality like Java.

### What are `when` expressions?

What a strong answer covers

A powerful switch that can return a value, match ranges/types, and be exhaustive over sealed types.

Red flag

Writes long if-else chains instead.

### What is string templating?

What a strong answer covers

Embedding expressions in strings with `$` and `${}` rather than concatenation.

Red flag

Concatenates strings with `+` everywhere.

### What are default and named arguments?

What a strong answer covers

Parameters can have defaults and be passed by name, reducing overloads and improving readability.

Red flag

Writes many overloads instead of defaults.

## Mid-level Kotlin interview questions

2–5 years

Idioms and coroutines.

### What are extension functions?

What a strong answer covers

Functions that add behaviour to existing types without inheritance, resolved statically.

Red flag

Wraps classes unnecessarily to add helpers.

### What are coroutines and how do they differ from threads?

What a strong answer covers

Lightweight, suspendable computations for asynchronous code that read sequentially; many coroutines multiplex onto few threads.

Red flag

Blocks threads instead of suspending.

### What is `suspend` and structured concurrency?

What a strong answer covers

`suspend` functions can pause without blocking; structured concurrency scopes coroutines so they’re cancelled together and don’t leak.

Red flag

Launches coroutines with no scope, leaking them.

### What are sealed classes and why use them?

What a strong answer covers

Restricted class hierarchies that enable exhaustive `when` handling, great for modelling states/results.

Red flag

Uses enums or open classes where sealed fits.

### What are higher-order functions and lambdas?

What a strong answer covers

Functions taking or returning functions; lambdas plus the trailing-lambda syntax make DSL-like APIs readable.

Red flag

Avoids functional style and writes verbose loops.

### What do `let`, `apply`, `run`, `also`, `with` do?

What a strong answer covers

Scope functions that differ in receiver (`this` vs `it`) and return value; used for null handling and configuration.

Red flag

Uses them randomly without knowing the difference.

### What is the difference between a `List` and a `MutableList`?

What a strong answer covers

The read-only `List` interface vs the mutable one; Kotlin encourages immutable collections by default.

Red flag

Defaults to mutable collections everywhere.

### How does Kotlin interoperate with Java?

What a strong answer covers

Seamless two-way interop; platform types from Java can be null, so you add null handling at the boundary.

Red flag

Trusts Java-returned values as non-null and hits NPEs.

## Senior Kotlin interview questions

5+ years

Concurrency, design and Android.

### How do coroutine dispatchers and context work?

What a strong answer covers

Dispatchers (Main, IO, Default) decide which thread pool runs the work; you switch context with `withContext` for the right workload.

Red flag

Runs blocking IO on the Main dispatcher.

### What are Flows and how do they differ from suspend functions?

What a strong answer covers

Cold asynchronous streams of values with operators and backpressure, versus a single suspended result.

Red flag

Uses one-shot suspend functions where a stream is needed.

### How do you handle coroutine exceptions and cancellation?

What a strong answer covers

Cancellation is cooperative and propagates through the scope; use `SupervisorJob` and handlers where children should fail independently.

Red flag

Swallows `CancellationException` and breaks cancellation.

### What are inline functions and reified generics for?

What a strong answer covers

`inline` avoids lambda allocation overhead and enables `reified` type parameters so generic types are available at runtime.

Red flag

No idea why some generic functions can inspect types.

### How do you design idiomatic APIs in Kotlin?

What a strong answer covers

Immutability, null safety at boundaries, sealed results, extension functions and DSLs where they aid readability.

Red flag

Writes Java-style APIs in Kotlin.

### How do delegated properties work (e.g. `by lazy`)?

What a strong answer covers

Property access is delegated to an object implementing get/set, enabling lazy initialisation, observables and map-backed properties.

Red flag

Reimplements lazy initialisation manually and unsafely.

### What is Kotlin Multiplatform and its tradeoffs?

What a strong answer covers

Sharing business logic across platforms while keeping native UIs; it reduces duplication but adds build and tooling complexity.

Red flag

Thinks it means one UI for all platforms.

### How do you test coroutine-based code?

What a strong answer covers

A test dispatcher and runTest to control virtual time, making suspending code deterministic.

Red flag

Adds real delays and flaky sleeps in tests.

**Skip the screening entirely.**We vet Kotlin engineers so you don’t have to — embed one in your team, or have us build it.

[Hire Kotlin developers](https://weworkworldwide.com/hire-remote-kotlin-developers/)[Compare us](https://weworkworldwide.com/compare/)

Build and score a full interview with our free [interview scorecard tool](https://weworkworldwide.com/developer-interview-scorecard/), browse the [full question hub](https://weworkworldwide.com/interview-questions/), or see [how we interview engineers](https://weworkworldwide.com/how-we-interview-engineers/).
