インターンで感じたLINEでの仕事

ENGINEER:吉田 真也・戸高 裕介

写真左:吉田 右:戸高

現在の仕事内容は

戸高:Account Platform室で、企業や店舗が使う「LINE公式アカウント」のCMSを開発しているチームに所属しています。LINE公式アカウントからメッセージを送ったり、タイムラインの投稿をしたり、自動応答設定をしたり、クーポンやショップカードの設定をしたり、LINE公式アカウントに必要な幅広い機能のCMS実装を担当しているチームです。

僕は各アカウントがどれぐらい使われているかなどの統計情報を集めてきて表示する、Insightという機能を担当しています。MySQLなどには収まらない数十TBぐらいの規模のデータを扱っているので、HBaseやKafkaといったミドルウェアを積極的に使って開発しています。

吉田:僕は開発1センター1室のZ Partチームに所属しています。
開発1センターはLINEのメッセンジャーの開発を行う部署で、1室はサーバーサイドの開発を行っています。Z Partチームはその中でもコア部分のサーバーサイド開発を行っています。僕はコア部分で使われているHBaseというデータベース関連の開発やオペレーションを担当しています。

今やっているのは、HBaseのバージョンアップのためのマイグレーションで使うツールの開発や、ストレージに影響を及ぼす可能性のある不審なユーザーを検出するシステムの開発などですね。

LINEのインターンシップとは

参加した経緯は

戸高:元からプログラミングが好きでアルバイトなどもしていて、新卒では”できるだけ大規模なサービスを運営している会社に入りたい”という思いからインターンを探していました。その中でLINEが目に留まったんです、お金ももらえるし(笑)。

吉田:僕はJavaを中学生の頃からやっていて、大学生の頃からOpenJDKのコミッターとして活動してきました。あるときにJavaのイベントで、LINE Fukuokaに所属していて、Java界隈で有名なきしださん(@kis)と知り合って、朝起きれないと公言しているきしださんがどんな仕事や働き方をしているのかが気になり、インターンに参加してみようと思いました。あと、僕も40万円という金額に惹かれて(笑)。

取り組んだ内容は

戸高:LINE Fukuokaで「LINEバイト」を開発しているチームに入りました。業務課題は、配属後にいくつか選択肢が与えられて、そこから選ぶ方式でした。仕様書を書いたり、バッチ処理を組んだりり、色々なパターンの課題がありましたね。普通にIssueを消化していくことの他に、それまでPerlで書かれていたバッチ処理をJavaに書き直すというタスクがあったのでそれを選びました。

吉田:僕もLINE Fukuokaだったんですが、部署はLINE STOREの担当チームでした。1ヶ月というインターン期間の中で、成果が望めるものという観点で、LINE STOREで表示するLINEスタンプの画像を動的にサーバーサイドで圧縮する機能の調査・開発を行いました。

戸高:最初の週は関連するコードを読んだり、社内のツールを利用する方法を学んだりという感じで、実質2週目から開発に入りました。途中で中間報告会のために東京に出張し、懇親会に参加したりしながら2週間ほど業務に取り組んで、最後の週に引き継ぎと成果報告のための資料作りをしました。最終的には、例外的データの処理や、エラー処理などの部分を書き切れなくて、自分の書いたコードを本番化するというところまでは難しかったですね。ただ、インターンに参加することで、社内の雰囲気を掴みたかったので、そこは十分できたと思います。

吉田:僕も期間は1ヶ月だったので、同じような進め方でした。最初の週は、手続きやPCのセットアップをしながら、チームで話合いをして取り組むテーマを決め、テーマのバックグラウンドや関わるプロダクトのアーキテクチャの説明を受けました。
2週目は調査と開発を行いました。調査では、画像圧縮にどのような種類があるのかを調べ、それぞれについてどれぐらいの圧縮効率が見込まれるのかを実際のスタンプ画像を用いて検証しました。当時の実装は拡張性の面で美しく書かれていなくて、その状態で画像圧縮の実装を組み込むのは難しかったため、まずはリファクタリングを行いました。
3週目以降は、調査結果をもとにどの圧縮アルゴリズムを使うかをチームで決め、圧縮した画像を取得するエンドポイントのURLの設計と実装を行って、最終週はbeta環境にデプロイし、成果物の検証や発表資料の準備などを行いました。1ヶ月という期間は、社内ツールの理解とか、プロジェクトの構成の理解とか、最後のプレゼンの準備なども含む期間なので思っていたよりも短く、あっという間に終わってしまったという印象です。

エンジニアが尊重されている環境

インターンに参加して感じたことは

戸高:一番感じたのは、理不尽さや無駄な制約がほとんどなくて、エンジニアが働きやすい環境だなと。今まで個人でやってきたのと同じように、普通にプログラミングをしていることがちゃんと評価される。エンジニアという職種がすごく尊重されていると感じました。
また、社内的には大規模として扱われていないサービスでも、数値を見ると物凄い数のユーザーがいる。だからこそ、しっかりと負荷対策をしていかないとすぐに落ちてしまうなどの問題があるので、チャレンジングな環境だと思いました。

吉田:インターンは出社時間が決まっていたのですが、9時半に出社してもあまり人が居ないことが多くてビックリしました。エンジニアの多くは裁量労働制のため、勤務時間がかなり自由です。人によってはお昼ごろに出社する人も居て、朝が苦手な自分でも働けるなぁと思いました。また、チームがグローバルなのにも驚きました。僕が所属したチームは半分以上が韓国、中国、アメリカなどの外国籍の方でした。

LINEに入社した決め手は

戸高:エンジニアとしてやるべきことをやることで、きちんと評価される環境があらゆる面で整えられているところです。評価制度もそうですし、集中したいときはデスクを離れて社内カフェに行ってプログラミングができたり、会話したいときはフリースペースで集まっていつでもディスカッションができるメンバーがいたり。ストレスや不自由さが少なく、快適にプログラミングができる理想的な環境が整っていたので、ここで働くことで自分の成長にもつながると思いました。

吉田:僕は携わるシステムが大規模であるという点が理由です。例えば、日本が新年を迎える瞬間には皆が一斉にメッセージを送るいわゆる”あけおめLINE”という現象があります。その瞬間、僕が携わっているHBaseのあるクラスタには、秒間250万ものリクエストが飛んできます。もちろん日常的にもリクエスト数はかなり多いので、そういったシステムに携われるという点は決め手になった一つですね。
あとは、実際にLINEの人がどのように働いているかを、実体験として知れたことは大きな判断材料です。日常的な働き方や雰囲気、自由さなど。きしださんがどう働いているかも確認できました(笑)。

入社後のギャップは

戸高:そこまで大きなものはないですが、入社後はプログラミングだけでなく、色々とやること・やれること・やるべきことが増えました。企画の段階から入って、仕様の調整をして、開発して、テスト工程にも携わってリリースまで。様々な人やチームと関わるようになるので、より仕事は楽しく感じています。

吉田:インターンと社員の違いでいうと、何より本番サーバーを触れるということ。その分当たり前なんですけど、責任感というかドキドキ感があるというか(笑)。

正直に言うと、学生の頃より楽です(笑)。学生の頃は論文を書いたり、ゼミで毎週発表をしたりと、結構締切が厳しいものが多くて。それらを1人で抱えなければいけないので、メンタル面の負荷が大きかったです。今はチームで仕事を分散できたり、そこまで過酷な締切がなかったり、気持ちの面で楽です。

戸高:確かに!その点でいうと、仕事がチームに降ってくるので、それを助け合って開発していくため、個人としての負荷は大きくないです。時間的なものだと、毎日11時ぐらいに出社して、19時~19時半ぐらいに帰っています。オンオフのバランスは取れていると思います。

吉田:僕は11時半に出社して、20時ぐらいに退社している感じで、毎日電車で座って出社しています。
お正月が唯一と言っていいほど特殊なタイミングです。先ほども少し触れたのですが、LINEのメッセンジャーが一番使われるのは年越しの瞬間なので、去年は大晦日の夕方に出社して、ユーザーの多い日本・台湾・タイの年明けを見届けました。夜通しの勤務は、体力的には辛いのですが、”LINEのピークをさばく”ことは楽しい経験だったなと思います。

働き方という点だと、有休などの休みも取りやすくて、今週も土曜日から水曜日まで有休を使い温泉に行ってました。うちの部署は、休みをLINEのメッセージで連絡し合ったりと、わりと気軽にとれますね。あと、LINEでは申請すれば自分が希望する海外のカンファレンスに業務として行くことができ、参加費用も支援されるので、それも良いですね。去年はサンフランシスコで開催された「Oracle Code One」に参加しました。

LINEでエンジニアとして働くということ

二人が考える、LINEで働くやりがいや価値は

戸高:繰り返しですが、ユーザーが非常に多く、メッセンジャーだけでなく各ファミリーサービスにもすごく大きなトラフィックがあって、それらをさばく技術は、個人での開発やサービス立ち上げ時期の会社では経験できないです。プログラミングに特化した、プロフェッショナルな人が社内にたくさんいるので、ロールモデルとする人が簡単に見つかる環境もメリットだと思います。。

吉田:ほとんど一緒です(笑)。サービスの規模感がすごいので、サーバーが何台ぐらいあったらどれぐらいのリクエストがさばけるのかを肌で感じられるというのが、他の会社じゃなかなかできない経験だと思います。

戸高:何より、自分が使っているサービスだからこそ、やりがいを持って開発できるというのがあります。うちのチームのプロダクトだと、LINE公式アカウントは日本でも多くの企業に使っていただいていますが、台湾旅行に行ったときにも、店先にLINE公式アカウントの登録を促すQRコードがあるのを見つけたりしました。自分が関わったサービスが使われてるシーンを実感できると、開発者として幸せを感じますね。

吉田:”皆がLINEを使っている”という前提があることは大きいですね。ユーザーベースがあるところだからこそできる経験は大きいと思います。

戸高:新規サービスを開発して、皆に使われるようにというモチベーションもあると思うんですけど、実現しないことの方が多い。その点、うちの会社だとLINEのプラットフォームの上で、多くのユーザーに使われる可能性が高いサービスを作っていける。それは、既存のサービスもそうだし、新規でサービス開発をしていく場合でもすごくやりがいを感じられています。

あえて言うと、LINEに向かない人は

戸高:エンジニアだけど、企画から開発、マーケティングまでの実務を全部自分でやりたいという人ですかね。専門性を高めるためにも分業化が進んでいるので。ただ、企画立ち上げの段階から関われる範囲が広い環境でもあるので、個人プレイではなく職種の枠を超えた議論をすることも重要だと思っています。

吉田:いわゆるベンチャー志向が強すぎる人、逆に決められたことをやりたいというお堅めの感じがいい人は、どちらも向いていない気がしていて。いわゆるミドルレンジが向いてるんじゃないかなと。あとは働き方の自由度が高い分、自律的に働ける人が望ましいです。逆に言うと自律的に働けない人は厳しいと思います。

現在、そして将来的な目標は

戸高:できるようになりたいと思っていることが2つあって、1つは大量のトラフィックをさばくシステムを設計開発してみたい。もう1つは様々なチームと連携して、プロジェクトを推し進めていけるようになりたいということです。実は最近、今までやっていた機能開発が一段落ついて、様々なチームと連携する新プロジェクトが進んでいるので、ワクワクしています。

吉田:僕は今ミドルウェア寄りのことをやっているんですが、その知識とか技術経験をより極めて、ミドルウェアから技術をリードしていける存在になりたいですね。ミドルウェアの知識をちゃんと持った上で、サービスの開発もできればいいと思います。

最後に、学生の皆さんに一言

戸高:インターンに参加するまでは、LINEで開発というとアプリ改善ぐらいしかやってなさそうなイメージがあったんです。実際は全然そんなことはなくて、非常に活発に新規サービスの開発・運用をしていて、Webアプリケーションエンジニアの活躍する場がたくさんある。そういったことに興味がある人は、是非インターンとかに参加してもらえると今後の参考になることも多いと思います。

吉田:LINEは本当に自由度が高く、楽しんで働ける環境。楽しめることが仕事になっているというか。インターンは社員が日常的にどのような生活を送っていて、どういう環境や雰囲気でプログラミングをしているのかを知れるいい機会なので、いろいろ参加すると良いと思います。LINEもそうですが、よく会社って「うちは自由な環境です!」って言うじゃないですか(笑)。そのへんは実感があったほうがいいし、ちゃんと自分がやったことの対価をもらいながら確かめられる。LINEのインターンの価値はそこにあると思っています。

INTERVIEW