我是通过 cutshort(https://cutshort.io/)申请的。 2-3 天后接到 HR 的电话,HR 详细介绍了预期的 CTC 和技术堆栈的相关经验。然后解释了面试将如何进行以及将进行多少轮。
一共进行了三轮面试:
- 结对编程回合(2021 年 4 月采访)
- 技术讨论(2021年4月采访)
- 领导力与社会讨论(2021年4月5日采访)
采访了– Java、SpringBoot、JPA、Kafka、微服务、REST、GraphQL、[Docker、Kubernetes、 Jenkins (基础)]、系统设计。
1.结对编程回合:
- 期望 – 展示您与您配对的 ThoughtWorker 编写代码、沟通和协作的技术能力。
- 持续时间 – 90-100 分钟。
- 面试官数量 – 1
在我的主要编程语言面试前 2 天,我收到了一个 Github URL,并被要求克隆存储库以熟悉代码库并尝试了解它当前的功能以及它是如何工作的。
注意:IDE 可能是您的选择。我使用了我最喜欢的 IntelliJ Idea。
这次采访大约是 90-100 分钟。在会议开始时,面试官分享了一个 Trello 看板,我被要求从看板中选择一个用户故事来实施。在浏览完用户故事后,我与面试官讨论了该方法。
在实施代码或编写任何东西之前,我被问到了很多问题(我重复编写任何东西)。您应该遵循 TDD 方法。我要求面试官让我先写方法,然后我再写测试用例(因为我们是从未来的角度考虑的,结果(返回类型等)一开始是未知的)。
提出的问题合乎逻辑,让我想到了除了 trello 板上提到的描述之外的未来视角。
示例:
- 如果将来需求发生变化怎么办?
- 我会来一次又一次地改变终点吗?
- 为什么我不能使用 map 作为返回类型?
- 什么是返回类型对象
- 哪一个更好?
- 是否需要仅在控制器层使用 ResponseEntity 作为返回类型?
- 如果我们选择在服务层返回ResponseEntity会怎样,我们将面临哪些挑战?
问题还涉及编写方法名称和定义类名称以及完成代码的最佳实践。
注意:结对编程回合的唯一目的是测试您的知识,面试官会提出问题并测试您是否达到了特定的解决方案。
这一轮通过了,第二天接到了第二轮面试的电话🙂
2.技术讨论:
- 期望——您对技术堆栈知识的广度和深度。
- 持续时间 – 90-100 分钟
- 面试官人数 – 2
对话围绕软件设计、架构和围绕开发或开发过程的低级概念展开。
首先是对我的简要介绍、我的技术堆栈和一些人口统计信息。
后来它转移到我的项目的架构上。我被要求绘制架构(在缩放会议白板上)并解释一切如何运作。
在向两位面试官解释了架构后,乐趣开始了😉
他们问了很多关于我解释的项目架构的问题。其中一些是基于场景的问题,预计会给出特定问题的解决方案。我不得不写一个小的 MVC 代码来解释解决方案。甚至问题都与 SQL 查询有关,您将如何使用 JPA 查询或 nativeQuery 来实现它们?您将如何使用连接构建查询。 (我认为面试官期待的是 Criteria Builder api 解决方案,我给出了 Query 注释解决方案)。
后来它转向系统设计。我被要求设计数据库模式并定义适合餐厅/酒店预订设计的表之间的关系。在提到列名并定义表的 PK 和 FK 关系之后。
我再次被问到一个基于场景的问题,即我将如何处理这个场景? (我需要引入任何新专栏吗?)。
慢慢地,他们通过要求处理更多场景来增加设计的复杂性。
最后,最后,问了我如何使用 git、rebase 策略、拉取、合并代码以及我们为什么创建修补程序分支等问题。
注意:在系统设计中,解决方案可能有多种。有一种情况我被卡住了,但面试官给了我一点提示,我们讨论了解决方案。
清除这一轮🙂
3.领导力和社会讨论:
- 期望:他们想更好地了解您、您看待世界的方式以及您的领导才能。
- 持续时间:60 分钟
- 面试官人数 – 2
在这一轮中,他们希望您了解他们的想法,并希望分享您的观点。这是一次有意义的谈话。
我们从自我介绍开始,然后转向基于领导力的问题。在这里,我被要求处理给定场景中的情况。
我们继续进行关于平等、公平、种姓保留制度的社会讨论,它是怎么来的,它对印度有什么影响?分享你的观点。讨论深入到古老的种姓歧视时代。
提示:诚实。
这一轮通关,拿到offer letter😀
与 Thoughtworks 进行面试真的是一次很棒的经历。