Free Handbook · Every example compiled & verified

Job Ready

What a Kotlin resume must show for Android and backend roles, three portfolio projects that get callbacks, where Kotlin jobs are, and the exam.

0 / 136 lessons🔥 0 day streak
ShareXLinkedIn

Module 16 · what you'll be able to do

  • Write the Kotlin section of a resume for an Android or a backend role, with evidence that both an ATS and a hiring engineer act on
  • Build three portfolio projects — an offline-first Compose app, a Kotlin service with Postgres and Docker, and a Multiplatform library — that survive a real review
  • Read a Kotlin job posting and map each requirement to the module in this handbook that covers it
  • Sit the certification exam and put the certificate where recruiters actually look
01

What a Kotlin resume must show

Kotlin hiring comes in two flavours, and a reviewer decides in seconds which one your resume is. Android postings want Kotlin plus Jetpack: Compose, ViewModel, coroutines and Flow, Room, a dependency-injection framework and a shipped app. Backend postings want Kotlin plus a JVM server stack: Spring Boot or Ktor, PostgreSQL, Gradle, tests and containers. "Kotlin, OOP, Android Studio" says nothing checkable. Pick the track the posting is for and make the resume read as that track.

Android Kotlin resume

  • "Kotlin · Jetpack Compose · Coroutines & Flow · Room · Hilt · Retrofit/Ktor client · WorkManager · JUnit · Espresso/Compose UI tests · Gradle KTS"
  • "Built an offline-first notes app in Compose; Room as the single source of truth with WorkManager sync; 40 unit tests on ViewModels with runTest"
  • "Cut cold start from 1.9 s to 1.1 s with a baseline profile and lazy initialisation, measured with Macrobenchmark"
  • A Play Store link or a signed APK in the repo’s releases, plus screenshots

Backend Kotlin resume

  • "Kotlin · Spring Boot 3 (or Ktor) · Coroutines · PostgreSQL · Flyway · JUnit 5 · Testcontainers · Gradle KTS · Docker"
  • "Built an orders API in Kotlin and Spring Boot; sealed result types for domain errors; integration tests against real Postgres"
  • "Moved blocking JDBC calls onto a dispatcher sized to the connection pool; p99 latency under load fell from 800 ms to 150 ms"
  • A docker compose up command in the README and a live URL if deployed
  • Name the ecosystem, not only the language. Kotlin alone is not a job; Kotlin with Compose or Kotlin with Spring Boot is. List what you have actually used.
  • Show you write Kotlin, not Java in Kotlin syntax. Mention sealed types, coroutines and Flow, extension functions or a DSL where they solved something real.
  • Every bullet: action verb, what was built, the tools in parentheses, and a number where one exists — start-up time, crash-free rate, latency, tests added.
  • Mirror the posting. If it says "Jetpack Compose", do not write "declarative UI". An ATS matches strings, not synonyms.
  • Say you know Java too. Most Kotlin teams have Java code and Java libraries; "Kotlin and Java" widens the postings you match.
  • Projects above education with under three years of experience. Link the repo, and the store listing or live URL for anything shipped.

Then check it against a real posting instead of guessing: paste both into the ATS resume checker. It scores keyword coverage against that specific job, flags formatting that breaks parsers, and shows which lines a reviewer’s eye actually lands on.

02

The two-minute resume checklist

Run the resume through this list before every application. Each item is something an ATS or a reviewer checks in the first pass, before a single repository is opened.

  • Plain, single-column formatting — no tables, text boxes or icons. Parsers frequently drop content inside them.
  • A skills line grouped by category (Languages · Android or Frameworks · Data · Build and test · Cloud and DevOps), with Kotlin first for a Kotlin role.
  • At least one bullet that shows depth, not syntax: a coroutine or cancellation bug fixed, a recomposition or start-up problem measured and solved, a query sped up.
  • Testing named explicitly — JUnit 5, runTest, Turbine, MockK, Compose UI tests, Testcontainers. Untested code reads as unfinished.
  • Three linked projects, each with a README and a one-command build. A project that cannot be built is a project a reviewer skips.
  • The certificate with its verification ID, once, under Certifications.
  • One page under five years of experience. No photo, no fonts or graphics an ATS parser was not built to read.
Run it per job, not once
A resume that matches an Android Compose posting can miss a Kotlin backend posting entirely, even though both say "Kotlin". The ATS checker is built to be run per application, with that posting pasted in.
03

Portfolio: three projects that get Kotlin callbacks

Kotlin reviewers look for the same thing in a portfolio that they look for in a pull request: does this person build software the way a team does? One production-shaped project beats five tutorial apps. Build the first project for Android roles or the second for backend roles, and the third to stand out on either.

  1. 1
    An offline-first Jetpack Compose app with Room and tests

    Pick a domain with real state — a habit tracker, a reading list, a field-inspection checklist. Compose UI; a ViewModel exposing one StateFlow of a sealed UiState; a repository where Room is the single source of truth and a Ktor or Retrofit client syncs through WorkManager with retries; loading, empty, error and offline states all designed; dependency injection with Hilt or a small manual container. Tests: ViewModel unit tests with runTest and a fake repository, a Room DAO test, and one Compose UI test. Add a baseline profile and put a measured start-up number in the README. Shows: Modules 08, 10 and 12.

  2. 2
    A Kotlin service with Spring Boot or Ktor, PostgreSQL and Docker

    A REST API with rules worth testing — bookings with no double-booking, an expense tracker with approval states, a URL shortener with rate limits. Kotlin data classes as DTOs with validation; domain errors as sealed result types mapped to consistent error responses; Flyway migrations; suspend endpoints with blocking database calls on a sized dispatcher (or Exposed/JOOQ/Spring Data — say why you chose it); JUnit 5 tests plus integration tests against a real Postgres with Testcontainers; a Dockerfile and docker-compose.yml that start the app and database with one command; OpenAPI docs. Load-test it and write down one thing you fixed. Shows: Modules 04, 10 and 12.

  3. 3
    A Kotlin Multiplatform shared-logic library

    A small library that runs on JVM, Android and iOS (or JS) from commonMain: a money and currency calculator, an input validator with a type-safe DSL, a markdown-to-model parser, or an API client for a public service using the Ktor client and kotlinx.serialization. Put platform-specific pieces behind expect/actual; write the tests once in commonTest and run them on every target in CI; turn on explicit API mode; publish to Maven Central or GitHub Packages with semantic versions and KDoc. Almost no junior portfolio has one, and it shows you understand generics, extensions and API design — the exact things that separate Kotlin engineers from Kotlin users. Shows: Modules 09, 11 and the senior questions in 15.

Every project needs the same five things
A README with a one-command build or start (./gradlew installDebug or docker compose up) and a short "design decisions" section · a committed Gradle wrapper and pinned Kotlin and JDK versions · tests that run in CI (a GitHub Actions workflow running ./gradlew build) · no API keys or secrets in the repo · and one measured result — a start-up time, a latency, a bug the tests caught. Reviewers open the README, check the build file, then read one test. That is the whole audit.
Skip these
A to-do app copied from a codelab, a calculator, or a weather app that is one screen calling one API with no tests read as tutorials. If you build one for learning, keep it off the resume and put the three projects above first.
04

Where the Kotlin jobs are, and how to read a posting

Android is the largest single source of Kotlin jobs: product companies, banks, fintech and payments apps, e-commerce, food and ride-hailing, media and streaming, and the agencies that build apps for them — new Android work is written in Kotlin almost everywhere. Backend is the fast-growing second market: teams that run Spring Boot services increasingly write new services in Kotlin, especially in fintech, marketplaces and developer-tool companies, and some use Ktor for lighter services. Multiplatform roles — sharing logic between Android and iOS — are fewer but pay a premium because few people have done it. Kotlin also appears in Gradle build engineering and in data teams on the JVM.

Read a posting’s tool list as the interview syllabus and map it back to the module that covers it:

The posting says…They will testModule
"Strong Kotlin fundamentals"val/var, when, null safety, smart casts, functions and lambdas01–04, 15 junior
"Idiomatic Kotlin"Data and sealed classes, extension and scope functions, collections API05, 08, 09
"OOP", "clean code"Classes, interfaces, delegation, visibility, final by default06, 07
"Coroutines", "Flow", "async"Structured concurrency, dispatchers, cancellation, StateFlow10, 15 mid
"Jetpack Compose", "MVVM"ViewModel with StateFlow, state hoisting, recomposition10, 12, 15 senior
"Room", "offline", "WorkManager"Single source of truth, sync, migrations12, 15 senior
"Spring Boot" or "Ktor", "REST APIs"Layered services, error mapping, blocking I/O with coroutines12, 15 senior
"PostgreSQL", "SQL"Queries, transactions, migrations, connection pools12
"Java interop", "Java/Kotlin"Platform types, @Jvm annotations, migration15 mid and senior
"Unit testing", "TDD"JUnit 5, runTest, fakes over mocks12
"Kotlin Multiplatform", "KMP"expect/actual, commonMain, shared modules15 senior
"Problem solving", "DSA"A live coding round in Kotlin13, 14, 15 coding round
  • Read the verbs. "Maintain" or "migrate" often means a codebase that is part Java, part Kotlin, with older XML views next to Compose — reading unfamiliar code and stack traces (Module 11) is the real job. "Design", "own" or "lead" means the senior questions in Module 15.
  • Years of experience are softer than they look. A posting asking for "2–4 years" regularly interviews a strong junior with a production-shaped portfolio.
  • Check which track it really is. "Kotlin developer" with Spring, Kafka and SQL in the list is a backend job; with Compose, Play Store and Material it is Android. Apply with the matching resume.

Match every posting against this table, then paste it with your resume into the ATS checker to see which of its tools are not on the page yet.

05

Certification exam → certificate

The Kotlin certification exam draws 25 questions from a bank covering Modules 01–14: 35 minutes, 70% to pass. The questions are phrased the way interviewers phrase them, and the wrong answers are the misconceptions this handbook warned about — thinking val makes a list immutable, expecting smart casts on a var property, using !! as if it were a safe call, catching CancellationException by accident. Pass it and a SolutionGigs Kotlin Programming certificate is issued with your name, score, date and a verifiable ID.

  1. 1
    Check the ticks

    The handbook landing page shows every lesson completed so far. Anything unticked in Modules 01–14 is a question you might miss — read it first.

  2. 2
    Sit the exam

    Sign in with Google so the certificate carries the right name. It can be retaken; the paper is drawn fresh from the bank each time.

  3. 3
    Put the certificate where it counts

    LinkedIn → Licenses & certifications, with the ID. Resume → Certifications, one line. GitHub profile README → one line with the link. The ID is what lets a recruiter verify it.

  4. 4
    Then the funnel

    ATS checker against a real posting → fix the gaps it finds → apply with the portfolio repository in the first line of the application.

What you can now say in an interview, truthfully
"I write idiomatic Kotlin — null-safe types, data and sealed classes with exhaustive when, extension functions and the collections API. I understand variance, inline and reified. I use coroutines with structured concurrency, know why cancellation is cooperative, and choose between Flow and StateFlow on purpose. I know where Kotlin meets Java and what it compiles to. And I have built and tested a real app or service with Gradle, in the stack the job uses." That is a working Kotlin developer’s toolkit.
06

What to learn next

Kotlin sits on the JVM and on Android, so the best next step depends on which side you are heading for. Pick it from the job you want, not from what is fashionable.

If you are aiming for…Learn nextWhy
Any Kotlin jobJava handbookAndroid SDKs, Spring, JDBC and most JVM libraries are Java. Reading Java fluently and knowing how it sees your Kotlin is expected in every Kotlin team.
Backend servicesSQL Mastery, then Design PatternsEvery service talks to a database, and Spring and Android architecture are built from GoF patterns — factory, observer, strategy, adapter.
Android architectureDesign PatternsRepository, observer (Flow), dependency injection and state machines are the vocabulary of senior Android interviews.
Data engineering on the JVMData Engineering, then Spark with ScalaKafka and Spark run on the JVM; Kotlin developers move into data platforms easily, and Scala is the closest language to Kotlin’s functional side.
iOS side of a Multiplatform teamSwiftEnough Swift to read the iOS app that consumes your shared module makes KMP work far smoother.
Scripting, automation and AI workPythonThe second language most teams expect for glue code, data work and anything involving machine learning.

Keep the problem-solving muscle warm with graded problems in SQL practice — database questions appear in most backend interview loops — and revisit Module 15 the week before each interview.

Frequently asked questions

What projects should a Kotlin developer have on a resume?
For Android roles, an offline-first Jetpack Compose app with Room as the single source of truth, WorkManager sync and ViewModel tests. For backend roles, a Kotlin service on Spring Boot or Ktor with PostgreSQL, integration tests and Docker. A Kotlin Multiplatform shared-logic library stands out on either track.
Is Kotlin only for Android jobs?
No. Android is the largest Kotlin job market, but Kotlin is increasingly used for backend services with Spring Boot and Ktor, especially in fintech and product companies, and Kotlin Multiplatform is used to share code between Android and iOS.
How do I get the Kotlin certificate?
Complete the handbook, then sit the certification exam at /learn/programming/kotlin/certification: 25 questions drawn from Modules 01–14, 35 minutes, 70% to pass. A passing score issues a certificate with a verifiable ID you can add to LinkedIn and your resume.

Finish the Kotlin handbook, then get hired

Sit the exam for your certificate, run your resume through the ATS checker, and see the jobs that ask for exactly this.

Check my resume
Found this course useful? Share it.
ShareXLinkedIn

Comments

0

Join the conversation. Sign in to leave a comment — we'd love to hear your thoughts.