大家好,我最近参加了 Meesho 的 SDE‑3 职位第二轮面试。以下是我的经历:
面试官让我设计一个 dayparting 系统。他提供了一些书面的功能需求和假设。
广告领域的人也许知道 dayparting 系统是什么,但我怎么会知道?我向他提问 dayparting 是什么以及背景是什么。他回答说:“只要读题,你就会明白。”
我心想,好吧,只能靠自己理解题目。我设法形成了一种理解并开始提出澄清性问题。由于他没有提供任何背景,我的理解是错误的。随后他开始问一些业务问题,比如:“dayparting 系统如何赚钱?”等等。
终于,在 30 分钟后,他决定向我解释问题陈述。
我开始做设计。过程中我使用了 DynamoDB。他问我有关 DynamoDB 的问题,我都回答正确。
然后,他问 DynamoDB 内部索引用的是什么。我回答 Hashing 和 B‑trees。我清楚地记得这是我在一次 AWS re:Invent 视频中看到的。他问我是否听说过 LSM 树,并带着嘲讽的语气问我用了多久的 DynamoDB。随后他决定提前 30 分钟结束面试。
我因为不知道 DynamoDB 使用 LSM 树(以及不懂 dayparting)而感到很糟。然而面试后我再次查证,DynamoDB 的索引确实使用 Hashing 和 B‑trees。
我查看了他的 LinkedIn 资料,发现他曾经做过 dayparting 系统,显然默认所有人都熟悉它。
再次声明,我对面试官没有恶意。但如果你是面试官,请意识到候选人可能没有你的领域专长。模糊不等于不给背景。
无论如何,希望你们比我更幸运。