← 返回博客列表 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 栈;但懂一点 backend / GraphQL会加分(Duolingo 主栈是 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