上个月刚结束 GitLab 的 DE loop。分享下完整情况,因为我准备时真的找不到任何一篇近期帖子,所以这里写全。
流程是:recruiter screen,technical phone screen,然后 4 轮 virtual onsite。同样没有 take-home,这点我其实挺喜欢。
Phone screen 大概 45 分钟,和团队里的一个 senior DE。前半聊背景,后半现场写 SQL。不刁钻,但也不算简单:window function、CTE、一道去重逻辑。他们问了 streaming 场景里怎么处理 late-arriving events。基础一定要滚瓜烂熟。
Onsite(4 轮,同一天)
Round 1:SQL 深挖。查中位数薪资、带并列的排名、join vs subquery 的效率问题。他们要你讲推理过程,不是只要答案。
Round 2:数据建模。设计一个 schema 来追踪 CI/CD pipeline runs。考虑到 GitLab 在做什么,这题非常合理。他们想看你怎么处理 slowly changing dimensions,以及你会为了查询性能做哪些反规范化。
Round 3:系统设计。设计一个近实时的数据 pipeline,摄取 GitLab 事件(commits、MR opens、deployments)并喂给 dashboard。聊到了 Kafka,也聊到 dbt 和 Snowflake。他们对 BigQuery 也 OK。面试官会追问分区策略和故障恢复。
Round 4:Behavioral。STAR 格式,挺标准。最核心的问题是:一次你不得不 push back stakeholder 需求的经历。他们很在意异步沟通能力,可能因为公司整体 remote、async-first。
我拿到的 offer 薪资:L3 同级,US remote,base 大概 $165k,加上 equity。refresh 从我了解来看也还行。
整体感受:技术 bar 是认真的,但不是 FAANG 那种「折磨式」面试。他们更在意你理解数据质量、能搭出可靠 pipeline,而不是你背了多少图算法。如果你会 dbt,做过比较硬核的 Airflow 或类似工具,基本没问题。
欢迎提问。