Interviews/

岩谷 明 / サーバーサイド

自己紹介をお願いします
2016年に新卒でLINEに入社しました。この世界に飛び込むキッカケになったのはiPhoneです。国立東京高専情報工学科に在籍していたとき、iPhoneに感銘を受けてUI/UXを勉強しようと、千葉大学デザイン学科に編入しました。しかし、そこでの授業が考えていた内容と違っていたため、改めて筑波大学大学院に行ってコンピュータサイエンスを専攻しました。

学生時代は個人でiOSアプリを開発していたほか、アルバイト先で受託開発にも携わっていました。このようにiOSアプリの開発に没頭していて、LINEの新卒採用試験を受けたのもiOSアプリを開発したいと考えたためです。
これまでどのような仕事を担当してきましたか
配属のタイミングでどこの部署に入りたいかと聞かれて、そのときネイティブアプリを提供していた「LINE LIVE」をやってみたいと答えました。iOS開発ができると思っていたんですが、配属されてみるとAndroidアプリの人手が足りていない状況で(笑)。やりたいと考えていたiOSではなく、Androidアプリの開発を担当することになりました。Android開発の経験はありませんでしたが、食わず嫌いは良くない、エンジニアとして幅を広げるには勉強が必要だと思ってチャレンジすることにしました。結果的に、エンジニアとして視野を広げられた良いキッカケになったと思います。

LINE LIVEのAndroidアプリを2年半ほど担当したのち、小説を購入・閲覧できるサービス「LINEノベル」のiOSアプリの立ち上げを担当しました。担当したエンジニアは私を含め二人で、画面ごとに分担して実装していきました。その2〜3年目の評価時期の面談で、自分としても今後のキャリアをどうしていこうかと思っていたときに「サーバーサイドをやってみる気はない?」と上司から提案されたことがありました。

LINEのサービスは非常に多くのユーザーに使われていて、膨大なアクセスを適切に処理するためには様々なことを考えなければなりません。そうした経験ができるのはLINEならではの部分であり、この会社に入ったのであればサーバーサイドも経験してみたいと考えるようになっていたので、提案に対して前向きな返事をしました。

その後2019年の春頃に正式に役割が変わり、現在担当するライブコマースサービスの立ち上げからサーバーサイドエンジニアとして関わっています。企画との仕様の相談や、ユーザーに見えるフロント側や裏側のCMS、社内の動画配信システムや決済システムなどさまざまなコンポーネントとの調整・つなぎこみを行ってきました。ライブコマース以外では、「LINE LIVE VIEWING」というサービスの開発を手伝ったことがあります。

アプリの開発と比べると、サーバーサイドは社内のほかのチームと関わる機会が多く、コンポーネント同士を連携するための実装も行うため、システムに対する理解も深まります。こういった部分はサーバーサイドエンジニアとして働く面白さだと思いますし、自分の性格にも合っています。
今までで一番印象に残っている、大変だったプロジェクトについて教えてください
今まさに手がけている、ライブコマースサービスのプロジェクトです。このプロジェクトは3年ほど前に始まりましたが、紆余曲折があって一時開発が止まることもありました。ビジネスサイドで難しい部分があったためですが、エンジニアとしてこのサービスを世に出したいという強い思いがあり、役員にぜひリリースさせてほしいと直談判をしたこともあります。

結果的には、会社としてEコマースを根幹事業として進めていく新たな方針が打ち出され、ライブコマースサービスも引き続きローンチに向け動いていくことが決まったときは嬉しかったですね。

このプロジェクトには、サーバーサイドエンジニアとして関わるだけでなく、サーバーサイドとクライアントサイド、さらにWebフロントエンドまで含め、開発チーム全体のプロジェクト管理も行っています。企画とリリーススケジュールについて調整したり、時にはガントチャートを引いたりしています。スケジュール的に厳しい部分もありましたが、今はリリースに向け順調に作業が進められています。

仕様の検討にも積極的に携わりました。クライアントサイドでアプリ開発していた経験が活きましたね。担当のサーバーサイドだけでなく、クライアントサイドの仕様に対しても包括的に見て色々とコメントをさせてもらいました。

技術面のチャレンジとしては、サービスのコンポーネントをKubernetesを利用してマイクロサービスとして構築したり、通信にJSONではなくgRPCを利用する、プログラミング言語にKotlinを採用し、Coroutineと呼ばれる仕組みを利用して積極的に非同期処理を行い、パフォーマンスを向上させるといったことにも取り組んでいます。これらは社内でも採用の前例があまりない技術を使っていたり、利用しているフレームワークにも搭載されたばかりの機能や仕組みだったりするため、自分たちで一から調査することもあります。技術選定においては、LINEでは現場のエンジニアの意見がすごく尊重されます。新しい技術であっても、それを利用することが最適であると判断できれば採り入れられるので、やりがいがありますね。
自分の成長を感じるポイントは
LINEに入社する前までは、自分のことをコミュニケーションが得意な人間だとは思っていませんでした。LINEで働き始めて様々な人たちとやり取りする中で、徐々にコミュニケーション力は鍛えられたと感じています。他のチームに何か依頼や交渉する際にも、以前よりもスムーズにできるようになったと思います。

最初のLINE LIVEから始まり、サービスの立ち上げをいくつか経験したこともあり、プロジェクトを引っ張っていくことにも徐々に自信が持てるようになりました。自分なりに全体を見渡して、本当にプロジェクトのあるべき姿を考えて意見を発信し、その通りにプロジェクトが進むことも増えたように感じ、リードする立場としての成長を実感します。

データベースやKey-Valueストア、あるいはKubernetesなど、サーバーサイドの技術全般にも詳しくなりました。こうした技術を勉強してエンジニアとしての幅を広げられたことは、サーバーサイド開発に移って良かったと思うことの1つです。

社内には自社開発されたコンポーネントもたくさんあり、入社したばかりの時は何もわかりませんでしたが、それらを利用してサービスを作る経験を積めています。LINEにはVerdaというオリジナルのクラウド環境がありますが、AWSやGCPといった社外のクラウドサービスを利用するときにも活きる地力となる経験ができていると思います。
今後のキャリアについて
言われたものを実装するだけでなく、企画や事業についても積極的に意見し、ビジネスサイドの人たちと一緒になってサービスを良くしたいという思いが、個人的に強くあるんです。今後はもっと企画や事業に対しても発信できる、シニアエンジニアのような立場で仕事ができるようになりたいと考えています。

将来的には、エンジニアとして独立し、自分自身でビジネスもやってみたいですね。LINEのようなプロダクトを自分で生み出したいと考えると、エンジニアとしてもっとレベルアップしなければなりません。LINEは多くの経験を積み、スキルを高められる、自分の将来を見据えても最適な環境だと感じています。社内に多種多様なサービスがあり、様々なプロジェクトで働ける可能性があります。そうして多様な経験を積めることは、エンジニアとしての成長を考える上で大きなメリットだと思います。

あと、個人的に良いなと思っているのは、自社でインフラを持っていること。外部サービスを使っていると、裏側でどのような技術が使われているのか、何が起こっているのかを詳細に把握することは難しいと思います。LINEでは、インフラで何が起こっているのかを知ることができますし、幅広く知識を身に付けられます。幅広い領域の技術を知る機会が多くあることも、エンジニアとして働くことの価値の一つだと思います。
最後にメッセージを
何でもいいので、自分で何かを実際に作ってほしいですね。今はパソコンが1台あれば何でも作れて、やりたいことを実現できる時代です。自分で作ってみて初めて、使いやすいアプリにするためにはどうすれば良いかなどを学べると思いますし、利用した技術についての理解も深まるはずです。

個人的には、エンジニアには作ることが好きでいてほしいですし、そういった人と一緒に働きたいと思います。私自身もモノ作りが好きで、LINEで予定管理を行うためのbotの「リマインくん」をプライベートで開発したり、今でも業務に関係なくWebフロントエンドやUnity、機械学習について勉強したりしています。技術をどんどん学んで使って、また新しい何かが作れればいいなと考えています。

やりたいけどやれないと諦めるのではなく、ぜひ一歩踏み出して自分で作ることを経験してほしいですね。