CommVault 系统面试经验(校内)
这是 CommVault Systems 第一次来我们校园招聘。他们提供了两种配置文件——测试中的软件开发工程师 (SDET) 和软件开发工程师 (SDE)。一个可能出现在任一配置文件或两者中。
我已经申请了这两个配置文件。大约有 1200 人在这两个配置文件中注册。该过程分为5轮,每轮都是淘汰赛。
预筛选回合:此过程是基于 MCQ 的回合,在 Geeekd 平台上进行,大约 73 分钟。它有 5 个部分——逻辑推理、能力、CS 核心(OS、CN、DBMS)、 Python (用于 SDET)和 C++/ Java用于 SDE。
能力倾向问题的难度高于平均水平。其余部分非常简单。一个对基本原理有适当掌握的人可以轻松解决它们。
两个档案中约有 220 人通过了这一轮。
主要编码轮:我在预筛选轮之后被选中参加 SDET 配置文件,所以剩下的体验将是关于 SDET 配置文件的。本轮有114人晋级。
这一轮有 5 个编码问题。允许的语言是Python。
这些问题是基于实施的:
- 基于数组的问题
- 背包问题的实现
- 基于字符串的问题
- 一个基于滑动窗口的问题
- 另一个动态规划问题
提供的时间是 75 分钟。我能够解决 3 个通过所有测试用例的问题,以及一个通过一半测试用例的问题。
本轮过后,8人入围SDET。
面试 - 测试用例撰写:这是通过 Zoom 进行的一对一面试,三人一组由 1 小组成员进行评估。每个人都被转移到 Zoom 的一个分组讨论室,在那里他们得到了一个应用程序,我们必须编写我们能想到的所有可能的测试用例。
我们分配的应用程序是 WhatsApp 备份和恢复。
分配的时间是40分钟。小组成员将穿过每个分组讨论室来跟踪每个候选人的表现。
我写了大约 61 个测试用例。
面试-技术面试1:通过测试用例书面面试的人收到了第一次技术面试的邮件。此次采访由 3 名经验丰富的 CommVault 成员监督。
我被问到的第一个问题是编写一个简单的程序/伪代码:
假设我们有一个文件,该文件的每一行都包含多个进程 ID。我们如何获得这些进程运行的内存消耗和执行时间?面试官让我考虑可能发生的边界情况和异常,以及如何处理它们。他对问题陈述进行了几处修改,并看到了我的代码将如何适应这些变化。
另一位面试官问我之前的实习情况,做过的工作,以及我的职责。我被要求详细解释我的项目及其业务影响。这也涉及到我在这个过程中面临的挑战。其中一个从我的一个项目的用例中给了我一个情况,我应该考虑所有可能导致该结果的测试用例。
另一位小组成员向我提出了基本的网络问题。
由于我的经历涉及探索数据科学,最后被问到的问题是,“如果将来我被某家公司提供担任数据科学家的职位,我会去那家公司还是选择 CommVault?如果是谷歌呢?”
总的来说,这一轮大约有一个小时。小组成员非常谦虚,无论我遇到什么困难都会帮助我。
面试-技术面试2:通过前一次面试的人会收到一封邮件,用于第二次技术面试。这一轮由 2 个小组成员监督。
第一个问题是关于二叉树的编程问题。面试给了我一个情况,问我哪个树遍历能解决问题,叫我写伪代码。
他不断修改问题以测试我如何处理这些修改。
另一个编程问题被问到:“假设你有 2 个十进制数,将它们转换为二进制并执行二进制加法。”
面试官更感兴趣的是检查我如何处理问题并制定解决方案,以及我如何处理错误和边界条件。
另一位面试官问了我一些来自 OS 和 CN 的基本问题。
我被问到另一个谜题:“如果我有 10 个袋子,其中 9 个重 10 克,其中一个重 9 克。我需要最少多少次比较才能找到重量最轻的包?”
面试官很想知道我是如何解决这个难题的。我先给了她一个幼稚的解决方案,然后我给了她一个分而治之的解决方案。她对这个答案很满意。
还询问了一些 Linux 命令。
总的来说,面试官对答案很满意。再一次,小组成员真的很谦虚,并在整个过程中帮助了我。
完整的面试用了1个小时,我被告知我会收到HR的进一步通知。
晚上,我被邀请参加一个 Zoom 会议,他们宣布了成为 Vaulters 的人。
共有 3 人在两个配置文件中打包了优惠。一个人获得了 SDET 的实习机会,另一个人获得了 SDE 全职员工的机会。我以全职员工的身份接受了 SDET 的报价。
过程非常严格。重点是测试候选人的思维能力和构建解决方案的方法,而不是最终结果。