跳转到主要内容
公司博客上

工程面试,招聘经理的指导地位

2020年1月22日 公司博客上

分享这篇文章

问任何一个工程领导人处于增长阶段公司他们的首要任务是什么,他们可能会说招聘。当我们想到多大决定采取的工作是为公司和候选人,面试很短的几个小时。我们要确保我们的面试过程的大部分时间来帮助两位候选人和砖理解如果角色是合适的选择。我们想要了解你,确保你得到你需要的信息做出最好的决定。最好的方法之一就是设计采访,强调对话与合作。现实世界是混乱和复杂的问题。我们想了解候选人解决抽象的挑战比我们希望看到一个具体的解决方案。

你想要什么候选人了解数据团队砖在进入面试过程?

尽管基础设施数据砖经营的规模,我们有一个相对较小的工程组织。我们成千上万的虚拟机,生成tb的日志,每天处理eb的数据。在我们的规模,我们定期观察云的硬件,网络,和操作系统故障,我们的软件必须优雅地从任何上述保护我们的客户。我们所做的这一切只有不到200名工程师。

我们的规模意味着我们可以灵活地采用或创建技术我们认为是最好的解决方案为每一个工程的挑战。的另一面,是我们的基础设施,有许多地方还成熟,所以主动的关心超出了单个服务的范围扩大。也还是创业的界限并不总是明确的所有权和责任。这意味着很容易改变和影响你的核心重点领域外,和你自己的更多的项目比其他地方。

你打算在砖工作后的大师?你将能够在大数据创建可伸缩的系统和机器学习领域。大多数工程师不做应用毫升在他们的日常工作,但我们深深明白这是如何被使用的一系列产业为我们的客户。

你如何准备技术面试问题?

我们工程面试由混合技术和软技能评估45至90分钟。而我们的一些技术面试更传统的算法问题集中在数据结构和计算机科学基础,我们已经转向更多的动手解决问题的能力和编码的评估。即使在算法问题,欢迎候选人解决问题在笔记本电脑上,而不是一个白板,如果他们喜欢。这可以帮助我们了解他们如何在一个更现实的环境中编写代码。对于我们的编码问题,我们更关注算法的知识和更多的设计,代码结构、调试和学习新领域。例如,我们的一些技术问题可能会使用语言/框架你不熟悉所以你需要展示阅读文档和解决问题的能力在一个新的区域。其他问题涉及分阶段逐步构建一个复杂的程序按照功能规范。

我们也适应面试根据候选人的背景,工作经验,和角色。更多fullstack角色,我们花更多的时间在网络通信的基础知识(http、websockets、身份验证),浏览器基本面(缓存、js事件处理),和API +数据建模。对于更低水平的系统工程,我们将强调多线程和操作系统原语。

我建议准备三件事:

  1. 在网上找到编码问题和实践完全解决它们。这意味着创建完整的工作代码和测试没有看解决方案。创建测试是非常重要的;我们的一些技术问题有几个阶段,所以你会希望能够迅速建立一个测试工具快速编辑/编译/调试循环在面试的时候,就像对你的日常工作。
  2. 回顾计算机科学基础。知道常见的数据结构,每个方法的运行时和内存利用率,和他们的接口在您计划使用的语言。这技术面试手册在GitHub上的是一个很好的概述不同的数据结构,但你也应该像mult-threading研究系统概念,并发性、锁和事务。
  3. 做模拟面试。模拟面试的时间压力和对话是一个伟大的方式获得舒适的真实的东西。有一个朋友问你问题你不知道和提示。

Haoyi团队写了一个在我们的开发工具伟大的博客如何有效地面试,好了解我们结构访谈,我们寻找的。

面试中最常见的错误你看到是什么?

现在我们已经介绍了我们寻找和如何准备面试,有几件事你应该有意识地试在一个工程求职面试中。

最主要的一个是缺乏热情和兴趣的作用。记住,你是面试公司,重要的是你展示你投入比赛。有低的热情,不熟悉砖产品一般,没有问任何问题,依靠面试官来驱动整个谈话都是你不感兴趣的迹象。就像你要采访的过程,挑战你和深入你的技能和兴趣,我们像候选人问尖锐的问题,花时间来了解我们。

技术面试,如果候选人正在寻求一个解决方案行不通,我们试图帮助他们意识到在花很多时间实现。如果面试官问问题,他们试图暗示你走向不同的道路。而不是保持固定在一个跟踪解决方案,花一分钟后退一步,重新考虑你的方法与新的暗示或问题。记住,你的面试官可能问同样的问题很多次和看到的一系列方法。他们也想看到你如何回应在真实的环境中,你会与一个团队合作,以类似的方式提供帮助。

面试重点工作历史和软技能,有具体的例子。没关系先粗略的概括,但讲述一个故事关于具体的例子在你过去的工作经历回答这个问题。在谈到你的工作经验,(1)明确问题,(2)你的解决方案,结果(3)和(4)任何反思改进。一个好方法提供一个深思熟虑的回答是通过使用明星访谈反应技术

有哪些品质你看过在成功和有效的工程师团队(在当前和过去的)?

在启动像砖一样,成功的工程师是最重要的质量我看过所有权。我们正在快速增长,每周都带来了很多新的挑战,但它并不总是清楚责任划分跨团队和优先级得到确定。伟大的工程师处理这个模棱两可的最有效的问题浮出水面,不仅仅局限于他们目前的团队的责任。有时这意味着直接帮助构建解决方案,但通常这是激励他人优先考虑的工作。

第二我们关注质量,尤其是对于那些在他们职业生涯的早期,是学习和成长的能力。的导数知识往往比候选人目前的技能更重要。我们正在解决许多工程问题没有遵循现有的模板。这意味着不断突破抽象层考虑更大的系统——从最低水平的cpu指令,可视化是如何呈现在浏览器中。

我看过这些品质在采访中如何?工程师显示大量的所有权通常可以详细谈论相邻系统依赖于对过去的工作。例如,他们知道的优点和缺点他们使用一个特定的存储层或构建系统和原因。他们也经常创建变化来帮助他们的球队变得更有效——通过工具的改进或变化过程。增长通过反思过去的工作。没有完美的解决方案,和伟大的工程师知道他们下一步会做什么或者做不同。很多候选人说,成长的机会是他们的主要标准选择下一份工作,但他们应该能够讨论他们正在做什么。也许这是一个小项目,他们最近学到的新技术,改进他们的开发环境中,或导师关系他们培养他们当前的角色。

什么是你的团队工作的一些问题吗?你在找什么样的技能,这将使候选人成功解决这些问题?

工作团队有相当广泛的产品用例支持和大部分的团队作品完整的堆栈。我们寻找那些多面手表现出快速学习新技术的能力。我们也很客户面临和需要工程师可以深入挖掘了解我们的用户制定的要求。几个团队成员有自己的创业公司在过去或早期员工在创业公司工作。

理解角色的最好方法之一是问,“我成为什么?“工作团队三个主要技能。

  1. 快速学习新技术。工作区团队做了很多探索和原型的工作。团队有许多多面手需要结合产品意识和适应能力小说问题的现有技术。一个很好的例子就是开源Jupyter适应运行在砖与砖集bob下载地址群的云托管。另一个是创建一个pub / sub下文通过GraphQL流更新API实时web客户端。
  2. 周围的工作流数据科学、机器学习和数据分析。我们是建筑产品的角色,这样你将密切了解数据科学家和工程师的日常工作流程在不同的客户跨许多行业和公司规模。工程师在这个团队经常接触客户和内部客户冠军在领域工程。
  3. 可伸缩的web服务设计在JVM上。我们的团队工作的核心后台状态笔记本和工作区,常常面临着设计挑战独特的服务在我们的规模。团队中的每个人都发展资源的深刻理解原语(cpu /内存/ io /网络)以及如何优化他们的使用在一个分布式容错体系结构。

在砖,我们不断寻找软件工程师体现特点我们已经讨论过。如果你有兴趣解决的一些挑战,我们正在解决,看看我们职业页面并应用采访!

泰德•汤姆林森是砖工程总监。他管理工作团队,负责砖的旗舰协作笔记本产品和服务用于启用交互式数据在环境科学和机器学习。

免费试着砖

相关的帖子

看到所有公司博客上的帖子