← 返回部落格列表 2026 Duolingo Android SDE 面試複盤|Kotlin / Compose / 架構題與評分邏輯
Duolingo

2026 Duolingo Android SDE 面試複盤|Kotlin / Compose / 架構題與評分邏輯

2026-05-27

Duolingo Android 團隊近兩屆招募節奏穩定但門檻在抬高。Kotlin / Compose 已是預設假設,候選人不會就直接進 reject 池。本篇基於 oavoservice 學員複盤整理,把 Duolingo Android 流程、題型、評分維度講清楚。


一、Duolingo Android SDE 招募流程

階段 形式 時長
Recruiter Screen 30 min BQ + 專案
HackerRank Kotlin OA 1 題 60 min
Phone Tech Coding + Android 概念 45 min
Onsite Loop 4 輪(含 HM) 半天
HM Wrap 30 min culture fit

節奏特點:Duolingo 強調「真實交付能力」,不喜歡「只會刷 LC 不會寫 App」的候選人。Onsite 至少有 1 輪是寫一個完整 Compose 元件改造一個開源 Activity


二、HackerRank Kotlin OA:1 題 60 分鐘

OA 平台是 HackerRank,Kotlin 是預設語言(也允許 Java,但出題風格仍是 Android 思維)。常見方向:

方向 頻次 關鍵技巧
字串 / 集合操作 Kotlin extension function
簡單 DP 一維
資料流處理 Sequence + chain
OOP 設計 sealed class

學員還原題:課程進度合併

使用者的多次學習紀錄 sessions[i] = (lesson_id, t, score),要求每個 lesson 取最高分,並按 lesson_id 排序輸出。用 Kotlin idiomatic 寫法。

fun mergeProgress(sessions: List<Triple<Int, Long, Int>>): List<Pair<Int, Int>> =
    sessions
        .groupBy { it.first }
        .mapValues { (_, list) -> list.maxOf { it.third } }
        .toSortedMap()
        .toList()

評分點:能否用 groupBy + mapValues 這類 Kotlin idiom;能否避免可變變數;能否在 5 行內完成。


三、Phone Tech:Coding + Android 概念

Coding 部分

經常給一道帶狀態的 LC Med,例如 LRU、Snake Game 簡化版、踩地雷布林展開。Duolingo 看的是:

Android 概念部分

概念 出現頻次
Activity / Fragment 生命週期 極高
Coroutine 與 Flow 極高
Compose 重組與 remember
ViewModel 與 LiveData / StateFlow
Memory leak(Handler / inner class)
Configuration change 處理

面試官真正想聽:你能否說清 LaunchedEffect 何時觸發、remember 的 key 怎麼選、StateFlow.collectAsStateLiveData.observeAsState 的差別。


四、Onsite Loop:4 輪典型組合

Round 1: 演算法 + 複雜度

LC Med 偏經典題:Word Ladder、LRU、Trie。Duolingo 不愛出 trick。

Round 2: Compose UI 實戰

學員還原題:

實作一個「答題卡」元件:顯示題幹 + 4 個選項;選中後高亮,2 秒後自動提交;提交後顯示「正確 / 錯誤」狀態。要求 Compose 實作。

@Composable
fun AnswerCard(
    question: String,
    options: List<String>,
    onSubmit: (Int) -> Unit,
) {
    var selected by remember { mutableStateOf<Int?>(null) }
    var submitted by remember { mutableStateOf(false) }

    LaunchedEffect(selected) {
        if (selected != null && !submitted) {
            delay(2000)
            submitted = true
            onSubmit(selected!!)
        }
    }

    Column {
        Text(question, style = MaterialTheme.typography.h6)
        options.forEachIndexed { index, opt ->
            val color = when {
                submitted && index == selected -> Color.Green
                index == selected -> Color.Yellow
                else -> Color.Transparent
            }
            Row(
                Modifier
                    .fillMaxWidth()
                    .background(color)
                    .clickable(enabled = !submitted) { selected = index }
                    .padding(12.dp),
            ) {
                Text(opt)
            }
        }
    }
}

評分點

Round 3: 架構題(System Design 縮小版)

常見題:

面試官評分:能不能輸出有狀態機的方案,不是泛泛而談「用 Room 存」。

Round 4: HM + Behavioral

Duolingo 文化關鍵詞:learning, gamification, intrinsic motivation。如果你能在 BQ 裡講一個「自己為了學習一個新東西做了哪些 gamification」,會大幅提分。


五、踩坑清單

紅線 說明
Compose 不會 直接 reject
Coroutine 概念混亂 必問,錯一次基本翻車
BQ 沒有量化結果 HM 直接拒
不能用 idiomatic Kotlin 減分但不致命
沉默寫程式 Duolingo 強調 communication
Onsite 不熟悉 Duolingo App 減分(建議提前用 1 週)

六、備戰節奏(建議 4 週)

週次 任務
W1 LC Med 50 題 + Kotlin idiom 複習
W2 Compose 教程 + 寫 3 個完整元件
W3 架構題:串流同步、狀態機
W4 全 Loop mock + Duolingo App 實操

七、面試官評分維度(來自學員 debrief)

維度 占比 觸發關鍵詞
Compose / Kotlin idiom 30% remember, LaunchedEffect, Flow
狀態管理 25% StateFlow, ViewModel
架構清晰 20% layered, single source of truth
演算法基礎 15% LC Med 寫得乾淨
Culture fit 10% learning + gamification 共鳴

FAQ

Duolingo 用什麼版本控制 / CI?

Git + GitHub Actions。Onsite 偶爾會問「你怎麼寫 PR description」「你怎麼 review 別人程式碼」。

Duolingo 轉正率?

近兩屆 Intern 轉正率約 50–60%;New Grad 第一年留存率較高。

Onsite Loop 能 remote 嗎?

Pittsburgh / NYC HQ 偏好 onsite,但允許部分 remote loop(視團隊)。Final HM 通常希望到現場。

Duolingo 不要求會 iOS / Backend 嗎?

Android 職位主要看 Android stack;但懂一點 backend / GraphQL會加分(Duolingo 主 stack 是 GraphQL + Kotlin)。


正在準備 2026 Duolingo Android SDE?

oavoservice 跟蹤 Duolingo Android 流程已經超過 2 年,覆蓋 OA / Phone Tech / Compose Onsite / 架構題 全流程。提供 Kotlin idiom 模板、Compose 實戰包、架構題精講、HM mock 全鏈路服務。

👉 立即加微信:Coding0201獲取 Duolingo 當週 OA 真題與備考方案


聯絡方式

Email: [email protected]
Telegram: @OAVOProxy