贡献者聚焦:Johanna Öjeling

Johanna Öjeling 是 Normative 的高级软件工程师。她于 2020 年在之前的公司 Datatonic 开始使用 Apache Beam,并于 2022 年以个人身份开始贡献。我们采访了 Johanna 以了解更多关于她感兴趣的内容,我们希望这将激励新、未来、多元化的贡献者参与 OSS 项目。

你职业生涯中对哪些领域感兴趣?

我的核心兴趣在于分布式和数据密集型系统,我喜欢解决与性能、可扩展性和可维护性相关的挑战。我还非常重视开发人员体验,并喜欢构建使开发人员更快乐、更高效的工具和框架。除此之外,我很乐意指导和培训其他软件工程师,帮助他们提升技能,并追求充实的职业生涯。

是什么促使你做出第一次贡献?

我之前的工作中已经使用过 Apache Beam Java 和 Python SDK 以及 Google Cloud Dataflow,并且开始使用 Go SDK 来学习 Go。当我注意到我想要的功能缺失时,它似乎是一个实施它的绝佳机会。我一直很好奇开发开源软件,但直到那时还没有一个好的想法来贡献什么。

你以哪些方式为 Apache Beam 做出了贡献?

我主要在 Go SDK 上工作,实施新功能、修复错误、测试、文档和代码审查。一些例子包括一个 MongoDB I/O 连接器,具有动态可扩展的读写功能;一个支持连续文件发现的文件 I/O 连接器;以及一个 Amazon S3 文件系统实现。

你的开源参与如何影响你的个人或职业成长?

为开源做出贡献是我在职业生涯中做出的最佳决定之一。Beam 社区非常友好且欣赏,与世界各地有才华的人们合作,创建任何人都可以免费使用的软件,真是很有回报。开源为我提供了新的机会来挑战自己,更深入地研究我喜欢的技术,并向高技能的专业人士学习。对我来说,它已成为创造力、解决问题和有意义工作的出口。

你注意到为开源做出贡献与为封闭源代码/专有软件做出贡献有什么不同?

我的观察是,开源软件对软件质量的要求更高,第一次就把事情做好更重要。我的封闭源代码软件经验来自初创公司/快速发展的公司,在那里速度是最优先考虑的。当不从事面向公众的 API 或库的工作时,也可以更容易地更改内容,而我们需要注意 Beam 中的重大更改。我关心软件质量,并重视 Beam 提交者所坚持的高标准。

当你没有为 Beam 做出贡献时,你喜欢在业余时间做什么?

编码是我的爱好,所以我倾向于将大部分空闲时间花在业余项目、阅读书籍和文章、听演讲和参加活动上。在我年轻的时候,我喜欢学习外语,学习了英语、法语、德语和西班牙语。后来,我发现自己对计算机科学感兴趣,并将注意力转向编程语言。我决定改变职业,成为软件工程师,并从那时起一直努力学习尽可能多的知识。我喜欢它永无止境。

你对 Beam 的哪些未来功能/改进最兴奋,或者你想看到哪些功能/改进?

多语言管道支持是 Beam 的一个令人印象深刻的功能,我喜欢像 TypeScript 和 Swift 这样的新 SDK 正在出现,这使得开发人员可以使用他们喜欢的语言编写管道。当然,我也很兴奋地看到 Go SDK 将走向何方,以及我们如何利用 Go 语言的新功能。

你认为 Beam 社区需要更多哪种类型的贡献或支持?

许多数据和机器学习工程师对 Python 比 Java 更熟悉,并希望 Python SDK 能够像 Java SDK 一样功能丰富。这为 Python 开发人员提供了很好的机会开始为 Beam 做出贡献。作为 SDK 作者,可以利用 Beam 的多个 SDK。当我使用 Go 进行开发时,我经常会研究 Java 和 Python 的实现,以获取如何解决特定问题以及确保 Go SDK 遵循类似模式的想法。

对于想做出贡献但不知道从哪里开始的人,你有什么建议?

从问问自己你有什么先验知识以及你想学习什么开始,然后寻找与之匹配的机会。贡献指南将告诉你在哪里可以找到开放问题以及流程是什么样的。有一些任务被标记为“好的第一个问题”,这可以是一个很好的起点。我当时对做出第一次贡献感到非常紧张,并且让我的导师预先审查了我的 PR。但其实不必担心,因为人们会感谢你为改进项目所付出的努力。当提交者批准了我的 PR 并欢迎我加入 Beam 时,我所感受到的自豪感至今仍记忆犹新。

你对 Beam 社区有什么建议?我们能改进什么?

我们可以通过提供更多关于我们需要帮助的任务的示例来更容易地让新的社区成员参与进来,无论是代码形式还是非代码贡献形式。我将把它作为我自己的行动要点,相应地标记更多问题并为新手量身定制描述。但是,这取决于社区成员是否访问 GitHub 项目。为了解决这个问题,我们也可以通过社交渠道和用户邮件列表积极地推广机会。

感谢 Johanna 的采访和她的贡献!如果你想了解更多关于为 Beam 做出贡献的信息,可以在这里了解更多:https://beam.apache.org/contribute/.