Wantedly, Inc.のサマーインターンに参加してきました。

f:id:wakeupsloth:20190820211646p:plain


8月5日から8月16日の2週間でWantedlyのサマーインターンに参加してきました!

夏休み序盤からとても楽しくて、やり甲斐があり、学びのある充実した2週間を過ごすことができました。

学びや思い出の記録と、これからWantedlyインターンに参加する方や、Wantedlyに興味がある方へインターンの雰囲気を伝えることを兼ねて、インターンの内容をまとめます。

Wantedlyってどんな会社?

Wantedly”シゴトでココロオドルひとをふやす”ために、人と企業の出会いを生み出す「会社訪問アプリ」Wantedly Visitと、名刺管理をきっかけとして、人と人のつながりを将来持続的に使える資産へと変える「つながり管理アプリ」Wantedly Peopleという2種類のビジネスSNSを開発・運営している会社です。

ミッションの”シゴトでココロオドルひとをふやす”とは?

このミッションをWantedlyでは、”没頭することによって成果を出し、成果によって成長を実感する”と定義しています。”没頭”とはフロー状態のことで、時間や食事を忘れるほどに熱中して作業するようなことです。”仕事に没頭する”→”成果を出す”→”成長を実感する”というサイクルを繰り返すことによって、AIやロボットに奪われない仕事を持ち、経済的・精神的に自立した人を増やすことがWantedlyのミッションです。

インターンの内容

参加したコース/なぜ参加したのか

フロントエンドコースに参加しました。

参加した理由は、大きく分けると4つあります。

  1. 最近触っているReactやフロントエンドが好きで、今年の夏は就業型インターンでフロントエンドの技術力を伸ばすことを目標にしていたから。
  2. 会社の価値観が面白そうだと感じたので、実務を通して感じてみたいと思ったから。
  3. 他社のインターンの都合で、8月5日から8月16日のインターンを探していたところ、第1タームの期間が丁度ピッタリだったから。
  4. サポーターズの1on1面談イベント人事の竹内さんから熱烈なお誘いを頂いたから。

何をやったのか

Wantedlyインターンは完全就業型です。取り組むタスクはすべて実際のプロダクトに直結します。

僕は、Wantedly Visitの新機能開発をしているチームにジョインして、企業ユーザが使う募集作成フローのリニューアルに関連するWebフロントエンドのタスクに取り組みました。メンターはインターン生1人につき1人ずつ付いて頂けます。僕のメンターは原 剛士さんでした。原さんには、僕の希望に沿ったタスクのアサインや、困ったときの相談、1on1面談などインターン中における様々なサポートをして頂きました。

使用した技術は、React, GraphQL (Apollo client), styled component, TypeScriptなどです。具体的には下記のようなタスクに取り組みました。

募集作成フローで新規実装されたUIコンポーネントWantedlyのデザインシステムに移植 

最初はソースコードを雰囲気を把握するために、このタスクに取り組みました。

デザインシステムとは、社内の様々なプロダクトで共通のUIコンポーネントを使用できるように、汎用性の高いUIコンポーネントを集めたライブラリのことです。(Material-UIのようなコンポーネントライブラリの社内バージョン)

一見すると大したことないタスクだと思われますが、僕にとってはかなり難しいタスクでした。難しかった点の1つは、コードを理解することです。普段自分が書いているコードよりも複雑で規模が大きかったので理解するまでに時間がかかりました。実務を素早くこなすには、コードリーディングのスキルがとても重要だという学びを得ました。また、デザインシステムは、利用する開発ユーザが便利にコンポーネントを利用できるように、わかりやすいpropの命名や汎用性の高い実装が重要だということを学びました。

新機能のためのルーティングの追加と、追加したルートをWantedly社員だけが閲覧できるように制限する機能の実装・ユニットテストの実装

2つ目のタスクは、新機能用のページを作ってモックAPIを叩くという内容でした。この実装はすぐ終わったものの、実装したページが一般ユーザに見られると良くないので、Wantedly社員のみが閲覧できるように制限するコンポーネントも実装しました。加えて、閲覧制限の機能を保証するテストも実装しました。

このタスクで印象的だったことは、リーダーの森脇さんにペアプロで詰まっていた実装のやり方を教えて頂いたことです。ユニットテストでログイン情報のモック化に詰まってしまい相談したところ、VSCodeのliveshareを使って、丁寧にスマートな実装方法を教えて頂き、すごく感動しました。

非公式ライブラリapollo-react-hooksを先日公式リリースされた@apollo/react-hooksへ移行して影響を調査

先日、@apollo/react-hooksがリリースされたことで、apollo-react-hooksがdeprecatedになったので、移行するタスクをやりました。

しかし、useQueryのloadingが常にtrueのまま更新されないというバグがあったので、マージは見送りとなりました。

デザインシステムにRange Slider(始点と終点を指定できるスライダー)コンポーネントを新規実装

最後のタスクは、始点と終点を指定できるスライダーコンポーネントの実装にチャレンジしました。残念ながら時間が間に合わず、最後まで実装し切ることができなかったのが心残りです。このタスクを通して、普段当たり前に使っているMaterial-UIなどのライブラリの凄さを実感することができました。

色々な会議

社員さんと同様に、様々な会議に参加しました。 毎週月曜日に開発の各チームの進捗を報告するDeveloper's Meeting、毎週金曜日に社内全体で進捗を共有するDemodayをはじめに、チーム内のスプリントレトロスペクティブや、スプリントプランニング、新機能のUI/UXの草案をデザイナーさんが発表する会議にも参加させて頂き、開発以外の社内の雰囲気も掴むことができました。

そのほか

勉強会

Wantedlyでは社内勉強会が活発で、曜日ごとに、マイクロサービス, 、iOS, Go, フロントエンドの勉強会が毎週開催されています。

僕はフロントエンドの勉強会に2回参加しました。雰囲気はとてもフランクで、気になった記事を共有してみんなで読むという感じでした。最新の技術動向にキャッチアップしながら、わからないことも気軽に聞けるので、とても良い環境だと思いました。

交流ランチ

インター生交流ランチ、エンジニア社員との交流ランチ、全社シャッフル交流ランチで業務では関わっていない社員さんやインターン生とたくさんお話することができました。他のコースのインターン生が取り組んでいる内容や、社内で使っている技術についてのコアなお話をたくさん聞くことができて楽しかったです。

ランチはお弁当の日もありましたが、大体は白金台のお店に行きました。白金台はオシャレで高級なお店が多くて、1,200円以上が当たり前みたいな世界だったので金銭感覚がちょっとバグりましたが、美味しいご飯を毎日食べられて幸せでした。

待遇

募集要項にも書いてありますが、日給は15,000円で、往復の飛行機代も支給して頂けました。

宿泊はAirbnbで民泊を用意して頂き、遠方から来た4人(途中から2人)で同じ家に泊まっていました。お互い何をやっているか話したり、一緒に夜ご飯を食べに行ったりできてとても楽しかったです!

また、初日に報酬から5万円を先払いして頂いたのがとても助かりました。もし前払いがなかったら、あんなにお店でランチを食べれなかったと思います笑。

おわりに

就業型のインターンは初めてだったのですが、今回のインターンで一番実感したのは、自分の技術力がまだまだだということです。

Wantedlyのエンジニアは、今の僕が持っている技術力なんて当たり前で、平均的な技術力が高く、さらにその中で尖った強みを持っている方々ばかりでした。

このようなすごい方々と一緒に仕事ができるように、頑張っていこうと思います。

メンターの原さんをはじめ、Wantedlyのみなさん、2週間、本当にありがとうございました!!

f:id:wakeupsloth:20190825162135j:plain