札幌/東京/福岡で働くGrowth Technologyのエンジニア

黒木亮太氏(以下、黒木):よろしくお願いします。このパネルディスカッションでは、現場で働くメンバーの雰囲気や、会社の雰囲気みたいな部分を知ってもらえればと思います。

また、関東に在住していても地方で働くことに興味がある方や、あとは福岡や札幌から参加されている方も多くいましたので、各拠点の違いも知ってもらえればと思います。

では今日のパネラーを紹介いたします。まずは私の自己紹介から。私はLINE Growth Technology(以下、GT)東京開発室の室長をしている黒木と申します。前職ではWeb業界に関わっていて、職種としてはサーバーサイドをやっていたので、その辺を踏まえてどういう違いがあるかもお話できると思います。私も適宜入れるところは入っていこうかと思っています。

では次に大村さん、お願いします。

大村弘史氏(以下、大村):私も東京開発室でサーバーサイドエンジニアをやっている大村と言います。よろしくお願いします。直近でやっているプロジェクトはECですね。LINEショッピングのコラム記事を投稿するためのシステムを開発したり、社内の統合認証基盤の開発など、いろいろなことをやっています。直近はLINEデリマの開発にも携わっていました。

もともとこの会社に入ってくる前は、ずっとSIerで、さきほどのような認証基盤の構築でしたり、あとは金融関係のシステム開発など、いろいろなことをやっていたので、SIerとの違いなどの質問にも答えられるかなと思っています。よろしくお願いします。

黒木:よろしくお願いします。では次に福岡開発室の緒方さん、お願いします。

緒方雄樹氏(以下、緒方):福岡開発室でプロジェクトマネージャーをやっている緒方です。よろしくお願いします。現在は、LINE NEWSとLINEスタンプのサービスを運営するシステムに関わっています。わりとみなさんに馴染みのある部分のサービスかなと思います。

僕の経歴としては、大村さんと同様に、もともとSIerでシステムエンジニアをやっていて、そのあと東京でスマートフォンアプリの受託開発会社で、企画やディレクションなどをやっていました。そのあとGTに入社するわけですが、半年間ほどは東京で勤務していて、地元が九州の熊本なので、福岡開発室への異動を希望しました。去年の夏から福岡開発室に来て、約1年ぐらいが経っている状態です。

東京と福岡の違いについてはたぶん一番詳しく話せるかなと思いますので、よろしくお願いいたします。

黒木:よろしくお願いします。では札幌開発室の寺田さんお願いします。

寺田崇寿氏(以下、寺田):札幌開発室の寺田です。よろしくお願いします。ちょっと紛らわしいのですが、マネージャー兼プロジェクトマネージャーを担当しております。担当しているプロジェクトは、GTで開発した、コンポーネントを組み合わせてランディングページが作成できるLPGen(Landing Page Generator)の保守開発や、社内IT系のシステム開発、直近では出前館のシステム開発を担当しています。

私も他のパネリストのみなさんと同じくSIerの出身で、もともとは金融系のシステム開発をやっていました。COBOLでゴリゴリの勘定系システム開発をやっていたところから始まって、2、3年目も同じくSIerで、そこでは流通系のSAPなどを取り扱っていました。

そこから大きく変わって、現状のGTにいます。私は今は札幌で勤務しているんですが、もともとは札幌出身でもないのでJターンですね。青森出身で、東京の会社に行って、北海道に配属になって、そのまま北海道で働き続けています。ちょっと特殊な例かなとは思いますが、参考になる方も、もしかしたらいるかもということで、よろしくお願いします。

黒木:よろしくお願いします。では私を含めたこの4名で、今日は進行いたします。

ここに映しているのが、質問項目として私たちが最初に出したものです。これはよくいただく質問内容や、あとは事前にいただいた質問の中から、ピックアップして入れています。今、もうすでに質問もいくつかいただいているので、ここをピックアップしつつ、あとはいただいている質問にも答えつつ、時間が来るまでパネルディスカッションしたいと思いますので、よろしくお願いします。

LINEの「Be Open」という開発文化

最初は質問項目からいこうと思います。最初にみなさん入社されている時期はまちまちかと思うのですが、「入社して驚いた、独特だなと感じたこと」で、何かあればお答えいただきたいのですが、この辺を大村さんからお願いできますか?

大村:そうですね。Be OpenというLINEの開発文化でしょうか。その文化に基づいたものの中でも、やっぱり他サービスソースコードが見れるというのは、かなり驚きましたね。とくにそのファミリーサービスといったコアの部分以外が見えるのは「まぁそんなものかな」という気もしなくはないんですけど、本当にメッセージングアプリのサーバーサイドのソースコードが見れたり。

あとは負荷状況も見ることができるようになっていて、見ようと思ったら「こういうふうに作られているんだ」とか「アーキテクチャってこういうふうになっているんだ」とか。自分でアクションを取ればかなり見ることができるので、そういうところは勉強になるなと。そういうのを隠さないで出してもらえるのはかなりありがたいと思ってビックリしましたね。

黒木:確かにそうですよね。けっこうGitHubで検索するといっぱい事例が出てくるので、「ここのサービスはこうやっているんだな」というのが、簡単に拾えるなというのは僕も思います。ありがとうございます。では緒方さんは、この辺どうでしょう?

緒方:そうですね。一番驚いたところとしては、僕は前職が小さい会社で働いていたので、許可さえあればいろいろなツールをわりと自由に使っていいよという感じだったんですね。

(LINEの場合は)わりと使えるツールとかは社内で全部内製していたりとか、外部のものを使おうとするとセキュリティ的なチェックがけっこう厳しくて、前よりカジュアルに使えないなというのは、「大企業感があるな」とちょっと驚きましたね。メチャクチャ自由なのかなと思っていたので、そこはちょっと驚きました。

黒木:そうですね。情報を書くツールも、あまり分散するとみなさんがカジュアルに見れなかったりもするので、この辺社内で統一していたり、セキュリティの観点でも、いろいろ制約とかはありますね。最後、寺田さんはこの辺いかがでしょうか?

寺田:緒方さんと被っちゃったなと思ったのですが、私の印象はむしろ逆ですね。前職はLINEと同規模ぐらいの会社でしたが、OSSの採用とかはもっときつかったんですよ。「実績のある技術を使おう」という文化が強かったです。

LINEは、審査は厳しいけれど、逆に確認さえ取れば積極的にいろいろなものを使っていいよという方向性を強く感じました。有名なツールに関しては、基本はどこかのプロジェクトで使った実績があるので、結果的に僕らがやるころにはだいたい「あれはOKですよ」という状態になっている感じだなと。

黒木:前職の職場の違いによってはそういう見方もあるんですね。ありがとうございます。

LINEがサーバーサイドとフロントエンドで使っている技術

では次はよくいただく内容で、「どんな技術が使われていますか?」という質問にしようと思います。最初に、僕からもLINEで使われている技術を共有しつつ、各担当のところで、どの辺を使っているかを簡単に紹介いただければと思います。

参考程度で書いていますが、LINEでよく使われている技術をピックアップしています。LINEのサービス全体では、サーバーサイドはJava、Spring Bootが一番多く使われているという印象があります。最近だとKotlinやGoを使っているサービスも多いかなと思います。あとは長く続いているサービスだとPerlだったりそういった言語で書かれているものもあると思います。

フロントエンドだとJavaScript、最近だとTypeScriptがあったり。あとはフレームワークだとReactとかVue.jsを半々ぐらいで使っているのとか。これが私から見ての印象ですね。

データベースなどの各種ミドルウェアも一般的によく使われているものを使っているかなという感じです。この辺はいかがですか? 札幌開発室の寺田さんからいきましょうか。今やっているものの代表的なものでいいと思うのですが、どの辺が使われているとか何かあれば。

寺田:サーバーサイドはJava、Kotlin、フレームワークはSpring Bootですね。まさにこれに則った感じ。フロントエンドはこの中でいうとVue.jsかな。それほどフロントエンドに凝ってないものだったら、サーバーサイドレンダリングでSpring Bootを使ってフロントの部分も作っちゃうケースもありますね。

札幌はまだ人数が多くないところもあって、少人数で複数プロジェクトを回せるよう技術スタックを統一するようにしています。

黒木:なるほど。この辺はたぶん地域差とかはあまりないかなと思っていますが、大村さんはどうですかね?

大村:そうですね。そんな感じかなと思いますね。言語とかの選定はわりと最初に立ち上げた人たちとか、改善で大きく変えていく人たちとかにかなり委ねられている部分があります。とは言え言語自体はJava、Kotlin、TypeScript、JavaScriptが固いという感じ。フレームワークもSpringが固いかなという感じですね。

フロントエンド側は、Vue.jsだったりNuxt.jsだったりとかが多いです。あるいは人によったり、やりたいことによったり、やっぱりチャレンジしてみたいというところで、けっこういろいろなフレームワークが使われている印象はありますね。

黒木:そうですね。まさにその回答通りだと思います。あと、これは技術ではなくて開発のスタイルみたいなところですが、アジャイル的な開発スタイルとることが多いです。その辺は緒方さんが詳しかったりすると思うのですが、プロジェクトで違ったりするんですか?

緒方:そうですね。一概に全部をウォーターフォールでやるとかスクラムでやるとかはないと思うのですが、そのプロジェクトの性質とメンバーによって決めていく感じが多いですかね。

僕はプロジェクトマネージャーという職種ですが、プロジェクトマネージャーが「よし、じゃあウォーターフォールでやりましょう」とか「スクラムでやりましょう」とかを決定して組ませていくというより、そのプロジェクトであった進め方をみんなで話し合って、「じゃあこのプロジェクトの性質だったらこの進め方がいいよね」とみんなで考えながら進めていく感じですね。

黒木:プロジェクトの進め方はチームのメンバーの意見を元に決めていく感じですかね。

緒方:そうですね。