Wantedly社のインターンに行ってきた話。

こんにちはnasaです。

9月の9~27日にWantedlyインターンに参加してきました。今更ながら書こうと思います。 (これを書き始めた経緯として、11月3~5に某Yage Groupのインターンsunriseに参加したというのがあります。「あれ、Wantedlyだけ書いて無くね?」となり書くとことにしました)

自己紹介

自分はこんな感じのスペックですよーって感じでサクッと書く

  • 学部 : 3年
  • 年齢 : 20歳
  • 技術 : サーバーサイド、Rust
  • 最近やってること: OSS
  • サイト: nasa.me

Wantedlyについて

“シゴトでココロオドルひとをふやす” Wantedlyはシゴトでココロオドルひとをふやすために、働くすべての人が共感を通じて「であい/Discover」「つながり/Connect」「つながりを深める/Engage」ためのビジネスSNSを提供しています。

ホームページからコピペしてきました。

主に2つのプロダクト

  • 名刺管理アプリ、名刺を起点としたSNSである、 Wantedly People
  • 企業とユーザーを結ぶSNS Wantedly Visit

があります。

応募経緯と先行について

WantedlyサマーインターンHPの以下の文言を見て。「ふーん。面白そうじゃん。やってやんぜ!!!!」となりノリと勢いで応募することにしました。とくに何かを考えてと言うわけではないですね。

腕試しの夏がきた サービス開発の現場でキミの実力を試す 夏の数週間。 Wantedlyユーザー200万人が、 キミのアウトプットを待つ。 さあ、豪快にやってやろうじゃないか

あとは、先輩からの口コミで「Wantedlyはすごく技術力も高いし、すごく勉強になったインターンだから時期が合うなら行ってみたほうが良いよ!」と言われ、素直に言うことを聞きました。参加してみて実際その通りでした。

インターンの内容

ボクの参加したコースはPeopleプロダクトのBackendコースになります。

https://www.wantedly.com/projects/290491?_ga=2.28119285.899985194.1573092397-927197320.1573092397www.wantedly.com

実際にPeopleバックエンドチームに配属され、業務タスクをやっていきました。期間は3週間です。

不運なことに台風と祝日の都合で月曜日が全て休みになってしまい、12日間しか業務を体験できなかったのは残念です。(その代わり祝日に静岡旅行に行けた)

やったタスク内容としては、「名刺のスキャンを高速化する」です。3週間これをやってました。(今思えば色々なタスクをやってみるのもありだった。)

最初にどれくらい高速化出来ればゴールなのか?計測方法は?計測指標は?などを決め、それからはコードをガッツリ読んでいき高速化できそうなところを探していきました。

担当したのは「名刺スキャン」という1機能ですが、8マイクロサービスくらいが関わってきて、データフローを理解するだけでもけっこう大変です。(でした) また、いざ開発をして動作確認をしようと思っても依存サービスが多すぎて、すぐに試すことができないという問題もありました。 初めはステージング環境を使っていちいちデプロイして、修正してデプロイ。というサイクルでやっていたんですが、それだとやはりデプロイ時間で待つのが辛いです。

社員さんに聞くと、デバッグしたいサービスのみローカルで立ててリクエストの向き先をステージング環境に向けているとのこと。なるほどなーとなりましたね。 そのやり方に切り替えてからデバッグをスムーズにできるようになり、ゴリゴリ開発していけるようになりました。

やった施策としてはRailsのコードをGolangに移植するということをやりました。

なぜこれをやったのかについては色々と紆余曲折あり、書くていくとボクの指が腱鞘炎になるので省略します。

Railsのコードを読んでいて辛かったのが、リクエストとレスポンスのスキーマがないことでした。ん?このパラメータ送る必要あるの?このパラメータ不要?ということをコードを実際に読んでいかないと分からないし、色んな所でレスポンスが組み上げられているのでそれら全てに目を通す必要がありました。うーん。大変だ、、、

実装が終わると、本番環境にデプロイして、速度が改善されているのかを見ていきました。デプロイと行ってもサーバーの一部に反映してみるというやり方でした。カナリアリリースと言うらしい。(カナリアって珍しい鳥なんですかね?)

それで、未変更状態のサーバーのレスポンスタイムとカナリアちゃんのレスポンスタイムを比べて、大体10%ほど速度改善されていたので、良かったです。割と頑張って実装したので遅くなっていたらどうしよう、、、ヤバい、、、とヒヤヒヤでした。

それが終わってからは何もせずにインターンは終わってしまいました、、、次の施策を考えていたけど全く思いつかず、、、、

ふりかえり、学んだこと

3週間で目に見える成果が出たのは良かったです。 しかし、もっとやれたなーという感じが否めないです、、、自分の駄目なところが見えてきた良いインターンでした。

駄目なところとして、質問をするときにメンターさんへDMで質問していた、もしくは直接していたことがあります。 メンターさんの時間をとることにもなりますし、なによりpublicチャンネルで聞いたほうが色々な回答が得られて良い、問題の共有になったりもするので。

次に、方法を固執したこと、視野が狭くなっていたところがあります。コード上のチューニングばかり考えてしまっていて、ドメイン知識を仕入れる、計測サイクルをドンドン回すなど、他のやり方もあったのかなーと思います。

うーん。精進せねばというお気持ちです。

まとめ

Wantedlyサマーインターン、ぜひ行ったほうが良いですよ!

雑談

インターン中はシェアハウスに住まわせてもらっていました。 そこであった人はすごく優秀ですし、色々と考えているなーと思いました。 「自分、めっちゃヘボいのでは?このままではヤバいのでは?」という焦りを常に感じられるすごくいい環境だったと思います。

インターンの内容で選ぶもの良いですが、シェアハウスでツヨツヨな人と生活するというのもインターンの醍醐味であると思うので、それを軸に選んでみても良いのではないかと思いました。まあ、大抵のインターンはシェアハウスだと思いますが。

あの環境が恋しい今日このごろ、、、、 友だちが欲しい(切実)