見出し画像

継続的なOSS活動によって新卒1年目エンジニアが得られたもの[前編]

みなさんこんにちは!
ワンキャリアでエンジニアをやっている野田(Github:https://github.com/tsugumi-sys)です!
2023年4月に新卒エンジニアとして入社し、新卒採用メディア「ONE CAREER」の開発チームに所属しています。
特に最近はユーザー体験の向上を目指し、ユーザー行動ログの整備や解析をメインに取り組んでいます。

既に別記事でも触れている内容ではありますが、ワンキャリアではエンジニアの技術力向上のために、OSSコントリビュートを推進しています。

私は学生時代からOSSコントリビュートを行ってきました。社会人になってからは、業務でも意欲的にOSSのコントリビュートを行っています。実際にこの半年で取り組んできたコントリビュートは約20ほどです。
今回の記事では、私が継続してコントリビュートを行ってきた背景や、それが業務にどう活きているのかをお話します。



エンジニアになるまでの私

大学では理学部に所属して地球物理などを学んでいた私は、ある授業をきっかけに大学3年生からプログラミングを始めました。
4年生から始まった卒業研究では機械学習に関する研究に取り組み、Pythonを使用して実装していました。

ちなみにこれはちょっとした自慢ですが、学生時代の論文執筆のために実装した機械学習モデルで、リポジトリスターを28もいただいたことがあります。

現在の業務ではTypeScript・Pythonをメインに書いており、研究時の経験がいい感じに活かせているなと感じています。


今までにコントリビュートしたOSS

大学時代にワンキャリアでインターンをしていた頃から、社員の方々に混ざってOSSのコントリビュートを行ってきました。そのいくつかを紹介します。

PyTorch

PyTorchは、深層学習フレームワークとして広く知られているライブラリです。
コントリビュートのきっかけは、研究で使用したかった時系列の画像予測モデルによく使われるMovingMNISTのデータセットAPIがPyTorchで実装されておらず、自作したことです。
その後、せっかく作成したのだから他の人も使えるようにできたらいいなと思い、コントリビュートする流れになりました。


MLflow

MLflowは、機械学習の実験管理やワークフロー管理に特化したライブラリです。こちらもきっかけは大学での研究です。実験データの管理にこのライブラリを用いて、使い方やソースコードを読んでいるうちに見つけたテスト漏れや簡単なlintエラーの修正を行いました。

https://github.com/mlflow/mlflow/pulls?q=is%3Apr+author%3Atsugumi-sys+is%3Aclosed


Moto

MotoはAWSモックライブラリであり、AWSのテスト環境を簡単に構築できます。業務中、AWS LambdaのユニットテストでMotoを使用していた際に、機能漏れを見つけたことがきっかけでした。業務で使う上でまだまだ改善したい箇所はたくさんあるため、最近はこのリポジトリをメインにコントリビュートしています。

https://github.com/getmoto/moto/pulls?q=is%3Apr+is%3Aclosed+author%3Atsugumi-sys


OSS活動で得られたこと

エンジニアとしてOSS活動を行うメリットはたくさんあります。特に、自分のような歴の浅いエンジニアにとってはアウトプットの場として最高だと思っています。いくつか実際に感じている成長と経験を紹介します。

まず、コードリーディングの速度が明確に向上しました。有名なOSSともなるとコード量が多く、必然的にコード理解に使う時間が長くなるためです。最初の頃に比べて、OSSコントリビュートや開発業務におけるコミットまでの時間が短くなりました。

次に、本などで学んだ知識を実際にアウトプットできたことです。具体的には、変数・関数のクリーンな命名やユニットテストの正確性などが挙げられます。OSSの有名レビュワーは非常にたくさんのコードレビューをこなしているため、学びの多いレビューをたくさん得られます。「あー、これはあの本に書いてあったことだなー」と感じることが多々ありました。そんな学びを重ねるにつれ、業務でも「コードがわかりやすくなった」「PR単位が適切になってコードレビューしやすくなった」などのFBをいただけるようになってきました。最近だと、コードアーキテクチャの知識をOSSコントリビュートで実践できたことが非常に嬉しかったです。

他にも以下のような様々なメリットがあります。これだからOSSコントリビュートはやめられません。

  • セルフブランディングにつながる。

  • 組織のOSS活動の活発化(同期のエンジニアも巻き込んでOSSに取り組むようになった)。

  • ライブラリのドメイン知識(AWSサービスや機械学習のことなど)が深まる。

  • コントリビュートの対価としてお金が貰える。


おわりに

エンジニアとしてのキャリアアップに、OSSコントリビュートは非常に効果的な手段の一つだと強く実感しています。今後も継続してOSS活動に励んでいく心づもりです。この記事をきっかけに、OSSコントリビュートしてくれるエンジニアが増えると嬉しいです。
そして、弊社で一番活発にOSS活動している私は、そろそろ社内でOSS大臣に任命されるのではないかと予感しております。

後編の記事では、OSSコントリビュートの中でも、特に得たものが多かったMotoへのコントリビュートを深掘りして紹介します。お楽しみに!


▼ワンキャリアのエンジニア組織のことを知りたい方はまずこちら

▼カジュアル面談を希望の方はこちら

▼エンジニア求人票


いいなと思ったら応援しよう!

この記事が参加している募集