🏠 Home

我在 Kagi Search 的 Take-Home 作业中失败了

2025, May 13

前言

我在找工作,所以我发送了我的简历

我向 Kagi Search 投递了一个职位,该职位的描述可以在这里找到:

该链接中的摘要如下:

Requirements
- Proven experience in building backend systems
- Proficiency in Go
- Strong understanding of scaling and maintaining backend systems
- Ability to collaborate effectively with SREs and other team members.
- Solid understanding of containerization technologies like Docker

我的申请得到了回复

所以我收到了一封电子邮件,说我被选中参加 Take-Home Assignment。内容大致如下:

感谢您对在 Kagi 工作感兴趣。您的申请给我们留下了深刻的印象,我们希望推进到选拔过程的下一个阶段。 作为我们评估的一部分,我们希望您完成 Kagi Developer Assessment,这将展示您的技能和解决问题的方法。 可以在以下 URL 中找到:https://hackmd.io/@antonios/SkeEpQeh1l 完成后,请联系我们,我们将对其进行审查,如果成功,我们将邀请您参加后续面试,在面试中我们将详细讨论您的方法和解决方案。

Take-Home Assignment 的 URL 存档在这里:https://archive.md/A95Ju。我将要求复制粘贴到下一段,这样您就不必打开链接了。

Take-Home 作业

该项目是构建一个极简的、受终端启发的电子邮件客户端,具有以下要求:

  • 电子邮件客户端可以在终端(即 TUI)或 Web 应用程序中
  • 应具有基本的电子邮件查看 + 发送功能
  • 可以使用虚假的后端(DB、内存等)或真实的 IMAP/POP/JMAP/etc 后端
  • 不必处理富文本消息,只需纯文本

此项目不仅测试您的编码能力,还测试您处理歧义和开放性的能力,这在 Kagi Labs 等研发项目中至关重要。

  • 以一种展示您作为开发人员的技能的方式来完成项目
  • 可交付成果是已完成的项目,在 GitHub 存储库中,并部署在任何地方,以便我们可以轻松地对其进行测试。
  • 创建一个包含设置说明的 README 文件

如果您有任何疑问,请随时告诉我们! 这些指示非常宽泛,并且项目规模也相当大。 通常我会拒绝这种无偿的家庭作业,但我听说 Kagi Search 是一家信誉良好的公司,所以我消除了我的顾虑并咬紧牙关接受了。

与招聘经理的沟通

由于指示非常宽泛,我通过电子邮件向招聘经理提出了一些问题。我得到的答复如下:

我们总是有很多候选人,有些人做基本的,有些人提供很多额外的功能、很棒的文档和决策解释、用于演示的部署以及对未来的想法。从招聘的角度来看,我们更喜欢更强的评估。 对此我问道: 问:您高度重视哪种类型的额外功能?**'哪种'**是指 'UX 改进',或者 '漂亮的 UI',或者 '与隐私相关',或者 '展示了很多复杂性'。 他回答说: 这是评估本身的一部分,看看你能想到什么样的额外功能(如果有)。 ....这些信息很少,无法提供帮助,所以我制定了一个策略。我会在实际编写代码之前编写一个详细的实施计划,详细说明整个可交付成果,如果我的提案被接受,这意味着它应该足以获得电话面试,甚至可能获得一份工作,对吗?不是的。尽管我努力在投入整整一周的全职工作之前通过电子邮件就所有这些条款达成一致,但似乎我的所有努力对招聘经理来说毫无意义。

我的提案

我的提案摘要如下:

一个可通过在线访问的 golang Web 应用程序,通过 AWS 使用 ECS Fargate 部署,带有 SSL (https),与电子邮件发送者提供商集成,通过登录屏幕进行身份验证,能够通过表单发送电子邮件,并在用户界面中显示传入电子邮件。 下面我包含了发送给经理的带有详细提案的电子邮件,这封邮件很长,如果您愿意,请向下滚动到下一个标题: 嗨 Antonio De Dios, 又是我 :) 我希望我一直给你发邮件是可以的,只是因为我非常认真地对待评估。 我做了一些研究,我想为可交付成果提供一个功能建议。我也想要求更多的时间,因为这是我第一次找到时间进行该项目,而且这个周末我将无法工作。 所以这是我的建议: 交付日期:3 月 30 日星期日 EOD, 这比您发送第一封电子邮件后的两周时间晚了两个工作日。 可交付成果: 电子邮件客户端,部署到“云端”(AWS),通过 Postmark 等电子邮件提供商发送和接收电子邮件,以 Golang 编写,具有 Web UI,利用 API 和库高效工作。 推理:

规格: 这些是我为给定解决方案确定的实施细节:

**延伸目标:**这些是我希望实现的目标,但由于时间限制,我无法保证:

结论 这是我对评估的建议。提出这个建议花了我一些时间,我想知道如果我把它完成,我可以从 Kagi 得到什么样的回应。期待您的回复! 亲切的问候, Jose 这是我的电子邮件的结尾。

招聘经理对我提案的回答

答案是如此的低效,以至于它应该让我意识到经理缺乏严肃性,但我试图以积极的眼光看待它。我现在意识到,我太天真了。所以这是我得到的回复:

嗨 Jose,这一切都非常令人兴奋。期待收到您的提交。感谢您让我随时了解最新情况。 您会注意到我的问题完全被忽略了。我问:

我得到的只是:

尽管如此,这在某种程度上是一个积极的答案,对吗?好吧,我宁愿我的提案在那时就被拒绝了,我的时间也得到了尊重。 毕竟,这有足够的信息来确定该解决方案是否足以让我进入这个角色。

我的解决方案

我兑现了所有的承诺。这花了我整整一周的全职工作。这是我方面做出的极端承诺,但我认为做好 Take-Home 作业会让我非常接近一份好工作。 如果您想观看 Web 应用程序的演示,请使用此 YouTube 链接:

如果您想查看解决方案的代码,以及非常详细的文档,请使用此 GitHub 链接:

拒绝邮件

在收到自动拒绝电子邮件后,我要求提供反馈,我收到了这封电子邮件:

我们通常不会在此阶段提供反馈。我们有其他更简单、更强大的提交,因此我们决定继续与这些候选人合作。我们对 Kagi 的每个职位都收到了很多兴趣和申请,这使得选拔过程竞争非常激烈。我们重视您作为用户和求职候选人,并希望邀请您关注未来的职位并继续申请。 真的吗?

  1. 如果他想要一个更简单的解决方案,他本可以在 3 月 18 日 提交我的提案时告诉我。
  2. 如果我的解决方案对于这个角色来说很弱,他本也可以在 3 月 18 日 提交我的提案时告诉我。在提案提交和 3 月 31 日 (我提交了部署用于演示的可交付成果)之间,判断不可能发生变化。
  3. 现在是 5 月 13 日,在我被拒绝后一个半月,招聘广告仍然存在。我知道公司使用相同的广告来填补多个职位,但显然这不是某种获胜者席位被占领的比赛,他们仍在宣传这些席位,并且任何人都可以猜测有多少人经历了同样的把戏来获得一个想象中的奖品。
  4. 最初的项目说明提到部署该项目进行演示会很好,但不是必需的步骤。在我提交后,说明进行了更改,使其成为项目必须部署的严格要求。所以有趣的是,我的项目如此薄弱,但它却使他们将指南更新为更严格的内容。想想看。

结论

这对所有申请人来说都是可悲的,他们中的许多人都失业了,并且正在走向破产的倒计时。想象一下,如果您失业了,您的积蓄只能维持这么长时间,而公司要求您将剩下的时间花在无偿工作上。但是,一旦我们处于绝望的境地,我们还有什么选择呢?也许下次有人向我索要这些无偿任务之一时,我会将他们链接到此博客,尽管您必须明白,如果有人正在挨饿或面临驱逐,他们别无选择。

我们可以有更好的选拔流程吗?

我绝对相信我们可以。我也不喜欢 leetcode 风格的面试,这种编程难题要求候选人在视频通话中解决问题。这周我一个“coin change”的问题没通过,好吧,我在不到 50 分钟的时间里通过了大约一半的测试,但是我没有足够的时间用 Clojure 实现解决方案的 backtracking 部分,这是一种我作为业余爱好学习的编程语言,并且还花了一整周的时间来练习这种基于 Clojure 的角色。 没有其他选择了吗?当然有。一个这样的例子是进行实时代码审查。这可以异步或同步完成。它可以允许实际讨论与真实软件项目中挑战相关的主题和问题。这将允许呈现经验丰富的软件工程师的更多知识。与 leetcode 风格的面试相反,后者会选择那些记忆了一些罐装 leetcode 问题足够好的人,以便非常高效地编写精确的代码来解决它。 我并不完全反对实时编码,它是一种确定基本编码素养的工具,但是如果有人可以在 50 分钟而不是 2 小时内解决 knapsack 问题,那么他会成为一个更好的程序员吗?哎呀,我认为如果有人花更长的时间来解决它也没关系。在计时器下解决这些代码难题与工程师在旧的或新的软件产品上工作的日常职责相去甚远。 让我们做得更好,并且请,除非您处于绝望的境地,否则开始拒绝要求这种无偿工作的职位。使他们失去所有顶尖人才。 谢谢。

我正在找工作

无论是兼职还是全职。您可以通过 hire2025@jose.cloud 与我联系。请记住,我在我的祖国哥斯达黎加工作。

订阅我的邮件列表

仅在当我提交新的博客文章时更新您。 /* real people should not fill this in and expect good things - do not remove this or risk form bot signups */ 回到顶部 © Copyright 2023 by Jose.