奥拉面试经历
我参加了 Ola 班加罗尔总部的招聘活动。第一行是一个 Hackerrank 测试,由一个 DS 问题、一个 SQL 语句和一个使用 RESTful API 的小脚本组成。那些通过这一轮的人继续进行面对面的面试。
第1轮
1. 给定一个数组和一个整数 x,在数组中找到两个数之和为 x。
为此,我必须通过基于排序的解决方案和基于散列的解决方案。还讨论了复杂性分析。
2. 尼姆游戏 (DP)
为此编写了伪代码,并讨论了重复发生及其工作的原因。还讨论了记忆。
第二轮
1. 有一个 A 和 O 的数组。 A代表Apple,O代表Orange。我们有m个咒语,每个咒语都允许我们将橙子变成苹果。给定一个数组和 m 的值,找出你能做出的最长的苹果序列。
我不得不在笔记本电脑上实时编码,面试官使用几个测试用例对其进行了测试。
在此之后,有一个关于我的项目的讨论,其中大部分基本上是关于计划任务的创建、执行和策略的讨论。
第三轮
这是一个纯粹的系统设计回合。我们从一些关于 RESTful API 设计的问题开始,然后转到我的项目。在我讨论了我的项目之后,面试官就几个极端案例交叉询问了我,并听取了我们如何处理它们。
然后他转向分片和分布式数据库,将其应用到我的项目场景中。在此之后,我们讨论了负载均衡器、相同的不同算法等等。
然后我们讨论了 Web 应用程序的一致性和可用性,以及系统需要在某些操作中保持一致并在某些其他操作中可用的情况。
基于此,面试官让我为分布式数据库系统编写了一个框架实现,该系统支持可配置模式的连接——一致、可用、松散一致和松散可用。
这是迄今为止我在任何一次采访中遇到的最艰难的一轮,它的长度超过了一个半小时。
第四轮
这是招聘经理的一轮,我们主要讨论了 Ola 的文化,他想知道我在不同情况下的工作方式。他还想知道我对指导他人的开放程度。后来,我们讨论了高速开发工作中的一些问题以及如何缓解这些问题。这是一个相对较短的采访,大约 40 分钟。