貢獻者聚焦:Johanna Öjeling

Johanna Öjeling 是 Normative 的資深軟體工程師。她於 2020 年在前公司 Datatonic 開始使用 Apache Beam,並於 2022 年以個人身分開始貢獻。我們採訪了 Johanna,以了解她更多的興趣,並希望這能激勵新的、未來的、多元化的貢獻者參與開源專案。

您在職業生涯中對哪些領域感興趣?

我核心的興趣在於分散式和資料密集型系統,我喜歡處理與效能、可擴展性和可維護性相關的挑戰。我也非常重視開發人員體驗,並喜歡建構工具和框架,使開發人員更快樂、更有效率。除此之外,我也樂於指導和培訓其他軟體工程師,以提升他們的技能並追求充實的職業生涯。

是什麼動機讓您做出第一次貢獻?

我之前的工作已經是 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 上看到哪些功能/改進?

多語言管道支援是 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.dev.org.tw/contribute/