ラベル internship の投稿を表示しています。 すべての投稿を表示
ラベル internship の投稿を表示しています。 すべての投稿を表示

2014/08/31

LINE のインターンシップに参加してきた



8月中はずっと LINE 株式会社でインターンシップをしていました。
はい、噂のアレです。

お前も40万円に釣られたのか!!って思うかもしれませんが、なかなか答えづらい質問ですね。
とはいえ、LINE ってよく考えたらインターンに行くにはすごく魅力的な会社じゃないですか?
  • 登録ユーザー数 x 億人のアプリ
  • 出来てからまだ3年しか経ってない
  • サービスの質もよく出来ているように見える
  • なのに、日本ベースの会社
  • いい噂も、悪い噂も沢山
  • サービスの仕組みやプロトコル、バックエンドの規模が割と謎
せっかく機会があるのだから、これに飛びつかないのはもったいない気がします。

実際の所を言うと、他のインターンシップに申し込んでいてのですが落ちて、丁度その後申し込むのにいい期間に募集を行っていて、かつ8月中の1ヶ月間というのが僕にとってすごく予定的に都合が良かったので、他と吟味した結果申し込んだ感じです。

また、40万円という重さが逆に良い面もあって、それだけ重さのある業務に携われるし、結果も求められる、という意味では悪くないかと。

IT 企業のインターンシップというと、よくあるのがインターンシップ参加者でグループを組んで... とか、新しいサービスを... とか、弊社社員が講義を... とか、そういうところも多いと思います。

今回の LINE のインターンシップは、個人の能力にあった部署に配属されて、そこで個別に課題をこなしていくという感じで、実際に会社の業務が体験できるような形式でした。(僕はこっちが好き)

ただ、この方式だと、人によってやったことも満足度も違うと思うので、このエントリはあくまで僕の感想ということで。
せっかくなので、参加してきて思ったことを書ける範囲で書こうと思います。


インターン期間中の課題


僕は、LINE サーバー開発室という、LINE のメッセージアプリケーション本体のサーバー開発・運用を行っている部署に配属されました。
その中でも、HBase を管理しているチームのチューターさんにお世話になって、HBase 関連の仕事をインターンシップでやりました。

LINE のメッセージアプリケーションのストレージはメインとして、今現在は HBase が使われています。
LINE のインフラでオープンになっている情報は以下にまとまっています。
僕が扱っていたのは、上の記事に書いてある通りの以下のようなものです
メインストレージとして利用されているHBASEの総容量は1PBに上っている。また、ログ解析、統計に活用されているHadoopの総容量は7PBで、そのうち約42%が使用されている。
そうです、LINE の PB 級のストレージが目の前にある状況に1ヶ月間居ました。インフラ好きにとっては堪らないインターンシップでした。

実際にインターンの課題としてやっていたことは、HBase や HDFS のサーバーが大量にあるので、だんだん管理とメンテナンスが大変になってきているようで、それをまとめて管理できるようなツールの開発です。
特に、HBase, HDFS の metrics の監視、RegionServer, DataNode の起動・終了、Region の移動などを Web から操作出来るような監視ツールを作っていました。

Hadoop や HBase の経験もほとんどなかったのですが、なんとなく知っている知識とチューターさんからのアドバイスを得て、HBase や HDFS についてちょっとだけ知識を得た気がします。
開発言語は特に指定はなくて、やりやすいものを使ってくれという感じでしたが、Hadoop 周りの環境はすべて Java で書かれていますし、その他諸々の理由で Java + Play Framework 2 を選択しました。

個人的には、Java を開発した経験はそれまで殆どなかったのですが、それなりにうまく馴染めたので、Java と Scala (view だけ) を使った良い開発経験になりました。

LINE インターンシップでよかった所

LINE の裏側がわかった気分になった

やっぱり、LINE のインフラを知ることが出来た事が個人的には大きな経験になったと思います。
特に、インターンの人たちには隠される情報などなく、むしろサーバーアーキテクチャの解説を時間を取って説明してくれたり、いろいろな質問に答えてくれたり、社内のコードも見放題でしたし、運用中のサーバーを触らせてくれるなど、とても自由でした。

実際の開発会議にも何回か参加させてもらいました。
LINE は日本の会社ではありますが、元々 NAVER だったこともあって、今では韓国の人がすごく開発に関わっています。
なので、会議も韓国とビデオ会議でやりますし、出張も多い感じで、アジアの中とはいえ非常に国際的な会社ですね。悪い意味の日本文化はあまり無くてよかったです。

また、韓国の人もみんな日本語しゃべれるのでコミュニケーションも問題なかったですし、仲良くなれて楽しかったです。
それ以外にも、日本と韓国、更にそれ以外が結構混じりあっているので、開発系の文章などは英語のやりとりが多い感じでした。

ちなみに僕は行きませんでしたが、インターンシップ生で韓国に出張に連れて行ってもらってた人も居ました。(ちょっと驚き)

コードレビュー

また、開発した成果は GitHub Enterprise 上で Pull request を投げる方式で開発していったのですが、書いたコードに対して丁寧にコードレビューをして頂きました。
実際の業務と同じように、Pull request とレビューコメント、そのレスポンスは全て英語でやりとりしました。

チューターの方には "これでも実際の業務よりは甘い" と言われてしまったのですが、僕にとっては自分のコードを人にレビューされる機会はそんなになかったですし、とてもよい経験です。
自分の癖や気づけない所が結構あって、自分も結構適当なコード書いてるな... と反省する機会になりましたし、視点が変わりましたね。

英語 Pull request 力が少し高まったので、これからも精進していきたいです。

会社の雰囲気


会社の中は、とても過ごしやすいですし、かなりいい感じです。
カフェもあって、気軽にコーヒーが飲めます。LINE キャラクターをラテアートしてくれます。

LINE のキャラクターが至る所に書かれていたり、社員の人がみんな机にグッズをおいていたり、オフィスの雰囲気がすごい楽しいです。
椅子は、アーロンチェアです。全く背中も腰も痛くなりません。

LINE インターンシップに参加した仲間

今回のインターンシップは、合計10名が参加していました。

他の人の課題は、スタンプの解析や、ボット作成、ショップの機能追加、fluentd の何か (実際に upstream にパッチ投げてた)、アプリの作成、などでした。

LINE は CTO が女性の方なのですが、そのおかげもあって?かこの手のインターンシップでは珍しく、参加者に女の子も3人居て diversity を感じましたね。
しかも、そのうち2人はインフラ寄りの部隊で、がっつりコード書いてました。

特に同じセンターだった、自称 Python アイドルとか、突然数学について目をキラキラさせて話し始める氏とか、Python 書いてた毎日ごはんに誘ってくる氏にはお世話になりました。
他のセンターの人も、皆さんお疲れ様でした。

他の参加者のブログも載せておきますね (随時追加)

さいごに


今成長中のアツい会社で、有意義な1ヶ月が過ごせたと思います。

このタイミングでこんな会社にインターンシップにいけたのは、自分にとってはとても良い経験になりましたし、とても満足しました。
1ヶ月という期間は、短いようでしたが、調度よかったようにも感じます。(実際これ以上長かったら参加を躊躇していたかも?)

ちなみに、超個人的見解ですが、LINE はいろいろな噂がありますが、安心して使えてよく出来ているメッセージングアプリだと、このインターンシップに来て思いました。(これ以上はいろいろあるので言えませんが)
僕も、インターンシップに来る前までは半信半疑でしたし、余り使っていなかったのですが、インターンシップに来てから LINE をもっと使っていこうと思いましたね。

大学院生最初で最後の楽しい夏が終わってしまった気分です...

40 万円は... 趣味の車や電子工作に使いたいところですが、そんなに遊んでる暇もないので、QoL の向上 (?) に使いたいと思います。
でも、旅行とかいけたらいいですね。