今年の4月に入社した新卒エンジニアのabcangです。
ピクシブでは、新卒エンジニアに対して様々な実践的な研修を行っています。実際にpixivのソースコードを使って、ユーザーの目に見える箇所を改善していく「雪かき研修」や、新卒エンジニアが新卒ビジネス職にプログラミングを教える「プログラミング研修」など、多面的な研修を実施しています。
そんな中、ピクシブが運営しているマストドンインスタンス「Pawoo」が4月14日にリリースされ、数日のうちに世界最大級のインスタンスにまで急成長を遂げました。そこで、GW明けに予定されていた研修をストップし、特別研修として新卒エンジニアが「Pawoo」の開発チームへと、3週間限定で配属されることになりました!
まずはマストドンのコードに慣れる
マストドンは、Ruby on Railsを利用して実装されています。5月12日時点で6037行のRubyと、10369行のReactのコードによって構成されています。規模としてはコンパクトなのですが、新卒エンジニアの中にはマストドンのコードベースはおろか、Ruby on Railsすら未経験の者もいます。
そこで、大きな改善を狙うのではなく、まずは小さな改善から始めてみようということで、Issueなどを眺めつつ、それぞれが小さなPull Requestを作って、Pawooやマストドンの全体像を掴んでいきました。翻訳ファイルの修正やレイアウト修正などの簡単な改善から、バグの修正などソースコードに手を加え、少しずつ改善をしていきました。
経験のある新卒やメンターにサポートしてもらいながら取り組んでいった結果、最終的に1人あたり1〜2つの改善を行い、実際にPawooに実装されました。新卒エンジニアが行った改善の中には、Pawooだけでなく、本家となるマストドン本体のリポジトリに対してPull Requestを送ったものもあります。研修の中で積極的にOSSに貢献していきました。
以下に、本家マストドンへと取り込まれた変更を紹介します。
- potato4d: Add cursor property to toot user avatar. #2933
- sossii: Fix snackbar notification stacking order #2935
- dikky1218: Disabled auto focus on toot form after returning from other tab during search result shown. #2942
- abcang: Fixed bug that timeline can not be displayed by InvalidURIError #2947
大規模な機能開発もスタート
簡単な改善でマストドンのコードに慣れてきたところで、Pawooの大規模改善のために、4つのチームごとに分かれて、次のような実験的な機能開発を進めていきました。
1.全文検索
現状の検索機能はタグとユーザ検索しかできないので、タグだけでは追いきれない情報を見られるようにしていきます。過去の投稿から興味のあるトゥートを見つけやすくなります。
2.トレンドタグ
Pawooでの勢いや一体感をもっと感じてもらうために、Pawooで今流行っているタグや注目のワードをもっと見つけやすくする機能開発を進めています。新しい面白さを感じてもらえるよう、どんなものを「トレンド」として扱うのかのアルゴリズムを含めて開発を進めています。
3.ログ解析
本家マストドンの思想として「ユーザーの個人情報を不用意に追跡しない」というものがあります。一方で、みなさんにより快適に利用してもらうために、データの解析は欠かせません。
Pawooとしてもマストドンの思想を大切にしているため、トラッキングを行う外部の解析ツールなどを用いず、マストドン自体がもつログデータのみを使って、今後楽しめるような施策をうつきっかけをつくっていきます!
4.pixivとPawooの連携強化
pixivにはユーザーさんによる素晴らしいコンテンツやコミュニティが蓄積されています。 先日Pawooではpixivアカウント連携機能がリリースされました。私たちはさらにpixivとの連携を深め、Pawooの更なる楽しみを提供します。
おわりに
記事執筆時点でPawoo研修の1週間目が終了しましたが、あと2週間Pawooに関わる期間が残っています。今後の開発の様子もinsideにて紹介される予定ですので、お楽しみに!
WantedlyでPawooエンジニアを募集しています
WantedlyでPawooの開発に協力してくれるエンジニアを募集しています。 興味がある方はぜひご覧ください!
ピクシブでは18年度新卒採用も行っています。
18年度新卒採用募集要項