LINEで働くエンジニアに色々と話を聞いていく「LINE Engineer Insights」。LINEの技術組織で働く個々人に、何を重視して技術者としてのキャリアを歩んでいるのか、今LINEで何に取り組んでいるのか、今後実現していきたいことなどを聞いていきます。
今回登場するのは、出前館アプリを開発している黒澤 慎治。東京でiOSエンジニアとしてLINEに入社した後、京都異動をきっかけにReact Nativeの開発に携わるようになりました。
LINE、出前館それぞれの担当プロダクトや環境の違い、iOSとReact Nativeの違いから、キャリアについての考え方を聞きました。
iOSエンジニアとしてLINEに入社
―― 前職もiOSエンジニアだったと聞いています。LINEへ入社されたきっかけはなんですか?
はい、前職では東京でiOSアプリの開発をしていました。
ある程度大きなプロダクトの開発で、エンジニアの人数も多いプロジェクトに携わることが多かったです。改修案件だけではなく、大規模なプロダクトのリニューアルも経験しましたね。
多くの経験をさせていただいたので技術的なスキルは上がっていったとは思いますが、身近にロールモデルがおらずキャリアプランが見えていませんでした。これからもエンジニアとして働いていくために自らのキャリアプランを明確にしたいと考え、自分のキャリアの参考になるようなエンジニアが多くいそうな企業を意識して転職活動を始めました。
―― LINEはロールモデルとなるエンジニアが多かったのでしょうか?
そうですね。エンジニアの数も多く皆さん多様なキャリアや志向を持っているので、参考になる方もたくさんいます。組織としての制度も整っており、自らの今後のキャリアをイメージしやすかったことが決め手になって、2020年にiOSエンジニアとしてLINEに入社しました。
―― 当時はどんな開発をされていたんですか?
はじめは、企業や店舗がLINEユーザーとやり取りできる「LINE公式アカウント」のiOSアプリ開発を約1年ほどSwiftを使って担当していました。
当時はチームにアプリ担当者が少なかったため、開発基盤を整えるためのプロジェクトや、写真のアップロードやファイルのダウンロードなどの機能実装を行なっていました。
ユーザーへの画面の見せ方や、Nativeでの機能やフレームワークの知見を改めて学ぶ機会になりましたし、設計面での議論やDDDを用いての開発など、建設的な議論を進めながら仕事ができていたので、とても楽しかったです。
そして入社から1年ほどたった頃、家庭の事情で東京から関西に引っ越しを検討するようになりました。当時の上司に相談したところ、京都オフィスへの異動を提案していただき、2021年4月に京都オフィスへ異動になりました。
京都への異動と出前館への出向
―― 東京から京都への引っ越しということですが、エンジニアとしての葛藤はありましたか?
なかったといえば嘘になります。東京に住んでいたころはオフラインのミートアップなどにも、ある程度の頻度で参加していました。社外との交流の中で学ぶものも多く、エンジニアとして刺激を受けることが多かったです。
個人的に、東京に住むことでスキルアップにつながっていた部分もあったと感じていました。
しかし、コロナをきっかけにオンラインイベントも多く開催されるようになりました。まだ私が京都に引っ越して1年半ほどですが、今のところ不自由は感じていません。コロナがおさまりオフラインの機会が増えるような状況になれば、東京に行く機会も増えるのかなと思っています。
―― 場所だけでなく開発するプロダクトが出前館になるというのも大きな変化でしたか?
はじめは当然、不安もありました。そもそも関わるプロダクトが違うので新しく出前館というプロダクトのことを知る必要がありますし、新しいチームのエンジニアの方とのコミュニケーションも含めると、環境に慣れるために多くの時間が必要だと感じました。
開発者として技術力を伸ばしたいという思いもあって、LINEに入社したので、異動することで技術にかける時間が減る可能性も懸念しました。しかしその一方で、LINE公式アカウントアプリではSwiftによる開発でしたが、出前館ではReact Nativeを採用しているという技術的な違いが僕の背中を押してくれました。
実は以前、Swiftでの開発の際にState管理やデータフローのライブラリとしてRxSwiftやReduxを少し触ったことがあったのですが、当時はあまりしっくりきていなかったんですよね。
State管理やReduxといったデータフローの考え方についてはフロントエンドが先行していたということもあって、ReactのState管理の考え方などは気になっており学習したいと思っていました。
しかしReactはWebフロントエンドの技術で、モバイルアプリの技術ではありません。私はもともとアプリエンジニアなので、 Reactを始めようとすると同じiOS開発とはいえ開発する領域も言語も変わるので不安はありましたが、 iOSという開発領域が変わることはありません。データフローやState管理など、Reactのパラダイムを知るいい機会ですし、Reactの流れを汲んでいるので、Reactの知見も高められます。 Reactのパラダイムを理解したいと思っていた私にとって、最適な技術や業務だと感じました。
自分の関わる領域が広くなった出前館でのプロジェクト
―― 実際に使ってみてどうでしたか?
データフローについての学習コストは高かったです(笑)。一方で、Swiftだとしっくりこなかったデータフローの考え方が、React Nativeだと理解しやすかったのは間違いないので、業務で実践的にReact Nativeに触ることができたのはよかったと思っています。
useEffectを利用するコンポーネントライフサイクルについても新しく学ぶ必要がありました。特に最初はuseEffectを使いすぎていたりとイマイチな実装をしてしまっていたんですが、チーム内にReact開発の経験者がいることもあり、教えてもらいながら改善していくことができました。
―― 技術以外の部分での違いはありましたか?
やはり、関わる領域が広くなったのが一番の違いですね。出前館で携わったプロジェクトが大規模な注文画面の改修だったこともあり、コーディング以外の部分で他の職種の人たちと関わることが増えました。
注文画面を改修したプロジェクトは、モバイルアプリとwebフロントエンドだけの改修ではなく、それに紐づくバックエンドの改修も同時に行われたんです。自らのモバイルアプリ開発だけではなく、バックエンドやwebフロントエンド、デザイナーなど別領域、別職種の人とコミュニケーションが必要になりました。関わる人や領域が増えると、触れられる技術や知識も増えるので、新しい学びや刺激も得られています。
大変なプロジェクトでしたが、技術的な部分以外での新しい挑戦ができたことは楽しかったですし、いい経験にもなったと思います。
キャリアチェンジの先に目指すもの
―― LINE入社時にReact Nativeを開発することは想定していなかったと思います。キャリアプランが明確だという理由で転職されたときと比べて、考え方の変化はありましたか?
React Nativeの開発に携われたことは、自分のキャリアを考えていく上で、とてもポジティブな理由になっています。今の環境は、周りのエンジニアのレベルが高く、業務を通じて新しい知識や成長を得られている感覚もあるので、あまり不安は感じていません。
なにより、以前と比べて個人的なキャリアへの意識が変わったことが大きいです。LINE入社時は技術力をとにかく伸ばしたいという気持ちが強かったんですが、実際にLINEのエンジニアたちと関わるうちに、いわゆるコーディングなどの技術力以外の部分でも強みを持ちたいという気持ちに変わってきました。
LINEのエンジニアは技術力がある上で、企画やQAの方を含めたコミュニケーションも上手な方や、アジャイル開発などの知識も豊富な方など、エンジニアリング全般においてプラスアルファの魅力をもっている方も多いです。
自分自身もエンジニアとして成長するだけでなく、プラスアルファの魅力を見つけられるように、幅広く学んでみたいなと思っています。
採用情報
LINE株式会社では一緒に働くエンジニアを募集しています!
今回のインタビューと関連する募集ポジションはこちらです。
クライアント開発エンジニア / iOS / Android / 出前館 / 京都開発室
https://linecorp.com/ja/career/position/3698
ポジションサーチ / 京都開発室
https://linecorp.com/ja/career/position/3076