はじめましての方ははじめまして。ピクシブで Scala エンジニアをしている Javakky です。
今回は、僕がピクシブ株式会社で働く中で、 OSS と関わるようになったきっかけについて話したいと思います。
入社 と OSS
私は、2020年の 5月に内定者アルバイトとしてピクシブ株式会社へ入社後、1年ほど ピクシブ百科事典 の開発に関わっていました。
ピクシブ百科事典は 2009年から運営されている息が長いサービスで、レガシーな部分も多かったこともあり、ちょうどテストなどの改修が盛んに行われている時期でした。
そんな中、僕にとっての転機が訪れます。
百科事典のMySQLに依存した実装コードへのテスト追加にあたり、メンターの tadsan から提案されたのが、https://github.com/vimeo/php-mysql-engineでした。このライブラリは、当時まだリリースされてから3ヶ月程度で機能不足などもありましたが、とても使い勝手が良さそうだったため挑戦することになりました。 inside.pixiv.blog 導入当初は機能やドキュメントの不足について tadsan に報告して実装してもらうという形をとっていましたが、途中からは実際に PR を作っていくことに。 それまでは、 (会社のリポジトリ以外の) 他人が書いたコードに貢献するという機会が全くと言っていいほどなかったので、とてもいい経験になりました。
「僕の書いたコードでも、ライブラリの機能として受け入れられることがあるんだ!」という感動は今でも覚えています。
正社員 と 個人開発
2021年 4月に晴れて正社員となり、百科事典と tadsan の元を離れて現在のチームへジョインします。 OJT 期間の 3ヶ月ははじめての Scala の勉強を、その後もクラウドサービスの導入などに追われ、 OSS に関わることはなく時間が過ぎていきました。 inside.pixiv.blog と、いいつつも、同期の uzimaru くんが個人ライブラリとして開発したhttps://github.com/uzimaru0000/tvがTwitter で話題となり羨ましくなったなどの理由から、個人のライブラリを作ったりはしていました。
その中で、ビルドツールを筆頭とする開発ツールについて改めて導入などを行い知見を深めました。 zenn.dev
新チーム と OSS
ようやく現在のチームでの開発に慣れてきた頃、管理画面の権限開発をするというプロジェクトにアサインされました。 このプロジェクトで導入したライブラリ、 jCasbin に欲しい機能があったため、新チームでははじめて Pull Request を送ることになりました。
Scalafix と ScalaMatsuri
開発を続ける中で、非 IntelliJ 勢にも IntelliJ であるようなコードインスペクション機能を利用してほしいと考えるようになりました。そこで Scalafix という Scala 向け Linter をチームへと導入したのですが、当時は標準・コミュニティのルールがまだ少ないという難点がありました。 しかし、 Scalafix には各ユーザーが自身で構文木を書き換えるルールを作成できるという機能があったため、弊チームでは初となる OSS リポジトリを作成してルールを公開しました。 github.com inside.pixiv.blog
時をほぼ同じくして、2022年の 3月19日に ScalaMatsuri が開催されました。 Day 1 のセッションには落選してしまいましたが、 Day 2 の飛び入りセッションにて Scalafix ルールについて発表を行いました。 Wartremover の開発をされている xuwei-k さんや metals の開発をされている tanishiking さんなど、社外の方からアドバイスや知見をいただくことができました! inside.pixiv.blog
play-swagger と わたし
最も最近の OSS への貢献としては、チームの API ドキュメントを Swagger UI へ移行するにあたって、過去では最も多くの Pull Request を https://github.com/iheartradio/play-swagger へ送ったことです。
Play プロジェクトに Swagger UI を導入した話 github.com github.com github.com github.com github.com
そして、私的にではありますが、 https://github.com/iheartradio/play-swagger のメンテナとなることができました!
pixiv と OSS と わたし
現在メンテナをしている https://github.com/pixiv/scalafix-pixiv-rule と https://github.com/iheartradio/play-swagger への貢献をしつつ、今後も会社・ Scala コミュニティ両方に貢献していけるような活動を行なっていきます! アルバイトを始めた学生当時のわたしは git もろくに使えない、自分で書いたコードしか読んだことがないという状態でしたが、たったの 2年でここまで活動の幅を広げることができました。 OSS ってやつよく分からないし大変そうと尻込みをしている方がもしいましたら、ぜひ自分が普段よく使っているツールなどに README の修正からでも PR を送ってみてはいかがでしょうか。 では、また Scala のイベントなどでお会いしましょう!
おまけ
弊社社員でRuby 2.xのリリースマネージャを務めている usa が「本当に喜ばれるOSSへのコントリビューションとは?」というタイトルで LT をした際の記事がありますので、よければぜひご覧ください。 inside.pixiv.blog