AND

Say it out loud

Practice Pitches

Ten spoken answers covering the full interview range. Tap ▶ Teleprompter on any pitch to rehearse on camera with a scrolling script, timer, and speed control.

How to practice Don't memorize word-for-word — it sounds robotic. Learn the shape of each answer (the beats), then say it in your own words and swap in your real projects. Record, watch once, fix one thing, record again. Three takes beats thirty re-reads.

Pitch 01

The 30-second intro

“Tell me about yourself” — short~30 sec

Hi, I'm an Android engineer with several years building production apps in Kotlin. My focus is modern Android — Jetpack Compose, coroutines and Flow, and a clean MVVM architecture backed by Hilt and Room.

Most recently I led a Compose migration and an offline-first rebuild: I owned the architecture, the performance work, and the release pipeline.

I'm drawn to this role because it's senior, Kotlin-first, and the kind of mature product where architecture and performance actually matter.

Delivery & English tips Keep it light and confident — this is a handshake, not your life story. Land on three nouns: Compose, coroutines, architecture. Pronounce Kotlin as “COT-lin”, coroutines as “co-ROO-teens”, and Hilt clearly. Smile on the last line — it signals genuine interest.

Pitch 02

The 60-second intro

“Tell me about yourself” — standard~60–75 sec

Sure. I'm a senior Android engineer. I've spent the last several years shipping Kotlin apps to Google Play, and I specialize in modern Android: Jetpack Compose for UI, coroutines and Flow for async and state, and MVVM with a clean data layer.

On my last team I was the technical lead for a screen-heavy consumer app. I drove the migration from the View system to Compose, rebuilt the data layer to be offline-first with Room as the single source of truth and Retrofit syncing in the background, and wired the whole graph with Hilt.

A big part of my work was performance: I tracked down recomposition and jank issues with Perfetto and Macrobenchmark, added Baseline Profiles, and cut cold start measurably. I also owned releases — CI with instrumented tests, staged rollouts, and watching the crash-free rate.

I'm looking for a senior, Kotlin-first role on a mature product where I can go deep on architecture and performance — which is exactly what this looks like.

Delivery & English tips Structure = who I am → what I shipped → my best story → what I want. Pause briefly between paragraphs; those pauses read as confidence. Watch Macrobenchmark (“MACRO-bench-mark”), Retrofit (“RETRO-fit”), and Gradle (“GRAY-dul”). Don't rush the last sentence — it's your “I want this job” line.

Pitch 03

The 2-minute career story

“Walk me through your background”~2 min

I'll give you the short arc. I started in Android back in the Java and XML days — Activities, Fragments, RxJava — building features and learning the platform the hard way: lifecycle bugs, configuration changes, and memory leaks.

When Kotlin became first-class I moved over fully, and that changed how I write code: null-safety, sealed classes for state, and coroutines instead of callback chains. I rebuilt async flows around structured concurrency and Flow, which made cancellation and testing genuinely simple for the first time.

The last few years were my deepest chapter. I led a Compose adoption on a large app — not a rewrite, an incremental migration screen by screen — and re-architected the data layer to be offline-first: Room as the source of truth, a repository owning sync, and the UI just observing state. I introduced Hilt, modularized the codebase by feature for faster builds, and set up Baseline Profiles and Macrobenchmark to defend startup and scroll performance.

What ties it together is that I care about the boring fundamentals — lifecycle, threading, and state — because that's what makes an app feel fast and not crash. A senior, Kotlin-first role on a mature product is exactly the next step I want.

Delivery & English tips Tell it as a journey with one turning point (“when Kotlin became first-class I moved over fully”). That single line makes the story feel intentional. Hard words: coroutines, structured concurrency, modularized (“MOD-yoo-ler-ized”). End on the words “next step” — it frames you as moving toward them.

Pitch 04

Why Android / Kotlin

“Why this stack?”~45 sec

Two reasons. First, the craft: Android forces you to respect constraints — the lifecycle, limited memory, a single main thread, real network variability. Getting an app to feel instant on a mid-range phone with a flaky connection is a genuinely hard, satisfying problem.

Second, Kotlin and Jetpack made the platform a joy. Coroutines turned async into something you can read top to bottom; Compose made UI declarative and state-driven; and the type system catches a whole class of bugs before they ship. I like that modern Android rewards engineers who think about state and threading clearly.

Delivery & English tips Two-part answers (“First… Second…”) sound organized and confident. Land on constraints and state & threading — they signal seniority. Avoid bashing other platforms; speak to what you love. Keep it under a minute.

Pitch 05

Why this company

“Why us?”~45 sec

This is the one to tailor — so here's the shape. Open with something specific about their product or engineering culture (a feature you admire, their scale, their Compose adoption, an engineering blog post). Then connect it to you: “That's exactly the kind of problem I want to work on, and it lines up with my depth in X.”

Close on the team and the level: “A senior, Kotlin-first role on a product this mature is where I do my best work — I want to own architecture and performance, mentor through reviews, and ship things that hold up.”

Delivery & English tips Always research one concrete thing: their app's standout feature, a tech-blog post, or a recent launch. Genericity here is the most common miss. Name the level and what you'll own — it shows you're thinking like a hire, not a candidate.

Pitch 06

Hardest technical project — deep-dive

“Walk me through a hard project”~2 min

The shape: pick one project and tell it as a problem, a design, and a result. My go-to is the offline-first rebuild.

Problem: the app showed spinners constantly and lost user work on a dropped connection, because each screen fetched directly from the network and held its own copy of the data.

Design: I made the local Room database the single source of truth. The UI observes Flow from the DAO, so it always renders local data instantly. A repository owns synchronization — it writes optimistic updates locally, enqueues mutations, and reconciles with the server via WorkManager when connectivity returns, with a last-write-wins policy per record type. Everything is wired through Hilt and runs in viewModelScope so it cancels cleanly.

Result: the app worked fully offline, the spinner-on-every-screen problem disappeared because of stale-while-revalidate reads, and our crash-free rate went up because we stopped doing fragile network work on the main thread. I added Turbine tests around the sync logic so it couldn't regress.

Delivery & English tips Use the Problem → Design → Result spine and pause between them. Drop two or three precise nouns (single source of truth, WorkManager, stale-while-revalidate) — specificity is what reads as senior. Have one diagram in your head you could sketch if they share a whiteboard.

Pitch 07

STAR · the performance / jank bug

“Hardest bug / performance win”~90 sec

Situation: our main feed stuttered while scrolling on mid-range devices, and users noticed.

Task: I owned making it smooth without a rewrite.

Action: I profiled instead of guessing — a Macrobenchmark scroll test plus Perfetto traces and the Layout Inspector's recomposition counts. Two culprits: a list item took an unstable List parameter, so every item recomposed on any change; and we decoded a full-size image on the main thread. I made the model an immutable type, added stable keys, moved image loading off the main thread with a proper loader, and generated a Baseline Profile for the feed.

Result: jank dropped to near-zero in the benchmark, cold-start-to-first-scroll improved, and I left a Macrobenchmark test in CI so it can't regress. The team adopted “profile first, then fix the proven hotspot” as a habit.

Delivery & English tips Say the four STAR words quietly as signposts. The memorable line is “I profiled instead of guessing.” End on the lesson and the regression test, not just the fix. Practice recomposition (“re-com-po-ZISH-un”) and Baseline Profile until they're smooth.

Pitch 08

STAR · ownership of a release

“A time you owned something”~90 sec

Situation: we were shipping a significant feature and our release process was ad-hoc and risky.

Task: I took ownership of the release path end to end.

Action: I set up CI to run unit and instrumented tests on every PR, automated signing and the Play Console upload, and moved us to a staged rollout — 5% to 20% to 100% — gated on the crash-free rate. I put the risky part of the feature behind a feature flag with a kill switch, and wrote a short runbook for rollback.

Result: at 5% we caught a crash on a specific OEM, halted, root-caused it, shipped the fix with a regression test, and re-rolled cleanly. The feature reached 100% with a healthy crash-free rate, and the staged-rollout process became our default.

Delivery & English tips Emphasize the word “I owned.” Name the guardrail metric — crash-free rate — and the safety nets (kill switch, staged rollout). Those are senior signals. Keep the failure beat short and end on “the process became our default.”

Pitch 09

STAR · adaptability / ramping fast

“Learning something new fast”~75 sec

Situation: I joined a team mid-flight on a large, unfamiliar modular codebase using patterns I hadn't used before.

Task: get productive quickly without breaking things.

Action: I read the data flow before the files — the DI graph, the navigation graph, and the repositories — to build a mental model. Then I shipped the smallest safe change with a test to learn the feedback loop, and I followed the existing conventions instead of importing my own. I asked a few targeted questions early rather than guessing.

Result: I had a meaningful PR merged in my first week and was owning a feature within a month. The phrase I live by is “the smallest safe change that unblocks the next feature.”

Delivery & English tips “Data flow before files” and “smallest safe change” are clean, memorable phrases — use them verbatim. Show humility plus speed: asking good questions early is a strength, not a weakness.

Pitch 10

Closing + questions to ask them

“Anything you want to ask us?”~60 sec

Always have three or four sharp questions ready — it signals you're evaluating them too. Good ones for an Android role:

  • How far along is your Compose adoption, and what's still on the View system?
  • How is the codebase modularized, and what's the build time like day to day?
  • What does your release process look like — staged rollouts, and what crash-free bar do you hold?
  • How do you balance feature work against performance and tech-debt paydown?

Close warmly: “This has been great — the work lines up exactly with what I want to go deep on, and I'd be excited to join.”

Delivery & English tips Pick questions whose answers you actually care about — your follow-ups will sound genuine. Avoid asking anything answered on their careers page. End on one confident, warm sentence. Don't trail off — finish on “excited to join.”