30 秒看懂
Jane Street 伦敦软件工程师 Ian 介绍交易台开发者如何为交易团队构建工具,以及他们如何结合编码、审查、设计与支持工作。他还谈到了实习项目、培训、与交易员的紧密合作,以及不同办公室之间的社交活动。
- 1坐在交易台的开发者交易台开发者与交易员坐在一起,构建适合该交易台的工具。
- 2读代码和写代码一样多每项代码改动都至少有一位同事完整审阅,Ian 花在阅读代码上的时间至少和写代码一样多。
- 3实习项目进入生产环境Ian 每天都在使用前实习生编写的代码;即使项目没有成功,也能说明某种方法不可行。
- 4学习 OCaml训练营从基本定义逐步过渡到使用市场数据和 RPC 的系统,之后学员通过代码审查持续获得反馈。
- 5用户就在身边坐在几英尺外的交易员可以快速反馈原型,并提出后续功能需求。
要点建议
- 交易台开发者借助核心开发团队的基础设施,为特定交易台构建工具。
- 代码审查既是工作的重要组成部分,也是持续学习的来源。
- 实习项目可以带来持久价值,即便它只是证明某种方法不可行。
- 靠近用户有助于开发者快速制作原型、发布并迭代。
- 核心软件工程技能为在工作中学习其他工具奠定基础。
按章节阅读整理后的全文
交易台开发与工作内容
Ian 介绍交易台和开发团队的组织方式。他的工作包括编写和审查代码、规划项目以及支持已部署的工具。
我是 Ian,在 Jane Street 伦敦办公室担任开发者,2019 年开始全职工作。我是一名交易台开发者:我坐在交易台上,为这个交易台构建专用工具,并经常使用核心开发团队构建的工具。
我认为 Jane Street 大致由三部分组成:三分之一是交易员,三分之一是开发者,另外三分之一从事法律、会计和招聘等工作。交易员按股票、债券等资产类别分为不同交易台,而开发团队则构建特定的工具或应用。
写代码是工作的重要部分,读代码也是。Jane Street 有代码审查文化:每项改动都至少由另一人完整阅读,通常还有几个人阅读其中一部分。我花在阅读代码和提供反馈上的时间,可能至少和写代码一样多。
另一项工作是明确功能和项目的方案:与用户交谈、收集需求并思考设计。我们会考虑团队下周、下个月和明年要构建什么,让当前项目服务于更大的目标,并解决用户目前还无法完成的事情。
我们还要提供支持。工具部署后,有时会出问题,我们需要查找错误并推出修复。这些事件可能带来压力,不过我觉得很刺激;不同团队承担的支持工作量差别很大。
实习与学习
实习项目可以部署使用,并在实习结束后继续发挥作用。核心软件工程技能、OCaml 训练营和代码审查都能帮助学习。
实习项目会发布到生产环境并持续使用。我每天都在使用一些由我指导过的实习生编写的代码。即使项目没有成功,也可能有价值,因为它能告诉我们某种方法不可行。
教授软件设计和编码的编程与软件工程课程是最有用的准备。分布式系统或数据库课程也有帮助,但我认为核心软件工程最重要;其他内容在工作中相对容易学会。
新开发者会参加 OCaml 训练营。练习从定义函数和变量等基础开始,逐渐深入到消费 Jane Street 市场数据或同步处理多个 RPC 的系统。完成之后,大家就会开始参与真实项目。
训练营结束后,代码审查会让学习继续下去。同事会审阅你的代码,建议更符合 OCaml 习惯的写法,或介绍你可能不知道的库。这些反馈是持续成长的重要来源。
身边的用户与社交生活
交易员坐得很近,方便开发者获得反馈并迭代。Ian 还介绍了团队活动和拜访其他办公室同事的经历。
我的用户主要是坐在几英尺外的交易员。我很容易向他们展示原型、获取反馈并进行迭代。工具发布后,他们通常当天就会使用,很快提出下一个功能需求或指出还有什么缺失。
我很喜欢用户如此积极参与。与更大的软件公司相比,一项改动可能只触达较少用户,但他们非常在意这些改动,愿意提供反馈,也会主动过来讨论接下来应该构建什么。
Jane Street 还会组织社交活动。在伦敦,我们定期举办名为 Bull and Camel 的酒吧聚会;团队也会为来访者、新成员组织晚餐,或仅仅为了聚一聚。去纽约或香港等办公室时,同事通常很乐意一起社交并带你游览城市。
同频道的其他文章
15:33EN → 简体中文
1:48:29EN → 简体中文
1:36:37EN → 简体中文
1:05:45EN → 简体中文
1:25:00EN → 简体中文
1:16:29EN → 简体中文