貢献者スポットライト:Johanna Öjeling

Johanna Öjelingは、Normativeのシニアソフトウェアエンジニアです。彼女は以前の会社Datatonicで2020年からApache Beamを使用し始め、2022年から個人として貢献を始めました。私たちはJohannaにインタビューを行い、彼女の関心事について学びました。これは、OSSプロジェクトへの参加を促す、新たな多様な貢献者のインスピレーションとなることを願っています。

あなたのキャリアにおいて、情熱を注いでいる関心分野は何ですか?

私の主要な関心は、分散型およびデータ集約型システムであり、パフォーマンス、スケーラビリティ、保守性の課題に取り組むことを楽しんでいます。また、開発者エクスペリエンスにも強く関心があり、開発者をより幸せで生産的にするツールやフレームワークを構築したいと考えています。それとは別に、他のソフトウェアエンジニアがスキルを向上させ、やりがいのあるキャリアを追求できるよう、メンタリングとコーチングをすることを楽しんでいます。

最初の貢献をしようと思ったきっかけは何ですか?

以前の仕事ではすでにApache BeamのJavaおよびPython SDKとGoogle Cloud Dataflowのユーザーであり、Goを学ぶためにGo SDKを使い始めました。欲しい機能がないことに気づいたとき、それを実装する絶好の機会のように思えました。しばらくの間、オープンソースソフトウェアの開発に興味を持っていましたが、それまで何に貢献すればよいか良いアイデアがありませんでした。

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コミュニティは、どのような貢献やサポートをもっと必要だと思いますか?

多くのデータおよび機械学習エンジニアは、JavaよりもPythonの方が快適に感じており、Python SDKがJava SDKと同じくらい機能豊富であることを望んでいます。これは、Python開発者がBeamへの貢献を始めるための大きな機会となります。SDK開発者として、Beamの複数のSDKを活用することができます。Goで開発したときには、特定の問題を解決し、Go SDKが同様のパターンに従うようにするために、JavaとPythonの実装をよく研究していました。

貢献したいが、どこから始めればよいかわからない人にどのようなアドバイスをしますか?

まず、自分の知識と学びたいことを自問自答し、それに合った機会を探してください。貢献ガイドラインには、未解決の問題を見つける場所と、プロセスがどのようなものかが記載されています。「最初の良い問題」としてラベル付けされたタスクは、良い出発点となる可能性があります。私は最初の貢献にかなり緊張していて、メンターにPRを事前にレビューしてもらいました。しかし、心配する必要はありませんでした。プロジェクトを改善しようとするあなたの努力に感謝するでしょう。コミッターが私のPRを承認し、Beamに歓迎されたときの誇りは、今でも覚えています。

Beamコミュニティにどのようなアドバイスをしますか?何を改善できますか?

コードとコード以外の貢献の両方において、私たちが必要としているタスクの例をもっと提供することで、新しいコミュニティメンバーが関わりやすくなります。私は、より多くの問題に適切にラベルを付け、新規参入者向けの説明を調整することを、自分自身の行動目標とします。しかし、これはコミュニティメンバーがGitHubプロジェクトにアクセスすることに依存しています。これを解決するために、ソーシャルチャネルとユーザーメーリングリストを通じて機会を積極的に宣伝することもできます。

インタビューと貢献に感謝します!Beamへの貢献についてもっと知りたい場合は、こちらをご覧ください:https://beam.dokyumento.jp/contribute/