【DeNA TechCon 2021 Winter】新卒4人が語り合う。DeNAで活躍する技術スペシャリストなエンジニアの仕事・キャリアとは【イベントレポート】

2022年1月28日

モデレーター

鈴木 天音

東京大学大学院にて修士取得後、2019年4月にDeNAに新卒で入社、データ統括部所属。大学院では化学と機械学習を組み合わせたケモインフォマティクスを専攻。現在はデータサイエンティストとして、レコメンドシステムの開発や協業先のDX支援などに携わっている。Kaggle Master。最近はAmong Usをよく遊ぶ。

石塚 凌

2020年にDeNAに新卒入社、セキュリティ部セキュリティ技術グループ所属。学生時代は競技プログラミングに熱中し、2018年度にプログラミングコンテストの世界大会「ICPC World Finals」に出場。現在はアプリやサービスの脆弱性診断やセキュリティツールの開発を行っている。

井早 匠平

2020年にDeNAに新卒入社、IT基盤部第2グループ所属。学生時代はweb系の会社でバイトし、受託開発などを行い、インフラからバックエンド、フロントエンドまで薄く広く経験。現在はインフラエンジニアとして大規模サービスのインフラの運用・改善業務を行っている。プログラミング言語では、TypeScriptが一番好き。副業でwebアプリ制作。

稲垣 和真

2021年にDeNAに新卒入社、SWETグループ所属。学生時代はVim弄りに没頭し、Vim scriptを学習しながら様々なVim pluginへパッチを送る活動をしていた。現在はSWETグループに所属し、テスト技法を学びつつ様々な部署の開発支援を行っている。

エンジニアを目指す学生に向け、「エンジニアとして企業で働く」をテーマに、DeNAで活躍するスペシャリストたちが語る「DeNA TechCon 2021 Winter」DeNAにおける技術スペシャリストとは、全社横断組織に所属し専門的な技術を見るエンジニアのことを指しています。

さまざまな技術に特化したエンジニアたちがどんな仕事をしているのか。なぜ、現在のキャリアを選んだのか、チームはどんな雰囲気なのか。このセッションでは、セキュリティ、IT基盤(インフラ)、SWETSoftWare Engineer in Test)、データサイエンスの4分野のエンジニアが、パネルディスカッションで語り合いました。

技術スペシャリストはどのような仕事をしているのか?

石塚凌(セキュリティ技術グループ・以下、石塚):セキュリティ技術グループは高い技術力を駆使して、コントロールされたセキュリティを実現する事をミッションとしています。攻撃者目線で取り組むべきセキュリティ上の課題を発見したり、セキュリティ課題に応じた適切なリスクコントロール手段の提案と実現を行っています。

業務内容としては、アプリやサービスの脆弱性診断を中心に、様々な業務を行っています。脆弱性診断ではサーバーとの通信や、端末内で動いているロジックやデータに改ざん対策が施されているか等、セキュリティ上の問題がないかの診断を行っています。

ほかにも、チート対策などのセキュリティ対策の内製化を行うツール開発や、インフラセキュリティ、SOC・ログ管理、社内セキュリティのコンサルティングを行っています。

僕は主に脆弱性診断とツール開発を担当しています。ツール開発では、スマホゲームのチート対策ツールの開発を行っており、最新のチート手法の調査や、チート検知機能の実装・強化を行っています。

▲DeNAセキュリティ技術グループの業務内容

井早匠平(IT基盤部・以下、井早)IT基盤部では、システム開発に必要なQ(クオリティ)、C(コスト)、D(デリバリー)という三つの要素を全て世界最高の水準に達成するため、パブリッククラウドをいかに使いこなすかについて、高いレベルで追求しています。

▲IT基盤部のミッション

業務内容としては、大きく4つに分かれています。1つ目はサービスのインフラ運用です。DeNAは様々なサービスを提供していますが、それぞれのサービスによって求められるインフラの特性は異なります。ライブストリーミングであれば、リアルタイム性が求められ、ヘルスケアであればセキュリティ強化など、サービスの特徴に合わせてインフラ運用を行っています。

2つ目は、社内システムのインフラ運用。DeNAではGitHubConfluenceというシステムのエンタープライズ版を使っており、その社内システムの運用を行っています。

3つ目はクラウドの総合的な運用で、AWSやGCPなどのクラウドサービスアカウントを全社的に管理しています。4つ目のネットワークのインフラ運用に関しては、データセンター、オフィス、クラウドなど、ありとあらゆる領域のネットワークを横断的に見ています。

僕の仕事でいうと、いくつかの社内新規事業のインフラを担当しています。日々発生するサーバーの安定性改善、運用コスト削減の施策実施に取り組んでいます。

稲垣和真(SWETグループ・以下、稲垣)僕が所属するSWETSoftWare Engineer in Test)グループは、ソフトウェアテストを起点としたDeNAサービス全般の品質向上、DeNAエンジニアの開発生産性向上により、価値あるものを素早く提供できるようにすることをミッションに掲げています。

以下の図は、SWETグループが具体的にどんな仕事をしているのかを示したものです。サービスは企画からリリースまでの間に、さまざまなところにバグがつくり込まれてしまうものです。

企画や設計の段階で、問題を見つけることができれば、実装するときにそうした問題が解消されて、よりスムーズにサービスを開発することができます。SWETはそういった問題を早期に発見すべく、様々なアプローチを提案することを主に行っています。

▲SWETグループの具体的な業務

は「lint」という、Unityプロジェクトを対象とした静的解析器の開発を主に担当しています。静的解析器とは、コードを実際に実行せずに、対象コードの異常を検査する静的解析ツールです。例えばOSSでいうと、JavaScriptならESlintRubyだったらRubocopを想像するとわかりやすいかもしれません。

社内フレームワークに依存する問題やオープンソースにはない項目を検査したり、既存の静的解析器にない機能を補完するために、SWETグループで内製しています。

また、DeNAに静的解析を普及させる目的で、静的解析器を開発した中で得たノウハウを文書化して、DeNAの社員に共有し、これらのノウハウを社内に発信する活動も行っています。

鈴木天音(データサイエンス部・以下、鈴木):僕の所属しているデータサイエンス部は、データ統括部という大きな組織の中にある全社横断のデータ組織です。所属する職種は、AI研究開発エンジニア(リサーチャー)、データサイエンティスト、機械学習エンジニア、データアナリストになります。ミッションとして掲げてるのは、データの力を引き出して、「想像を超えるDelight」を創造・加速すること。

▲鈴木さんはデータサイエンティストとして参画している

DeNAにおけるデータサイエンティストは、主に機械学習を必要とするプロジェクトにおいて課題をヒアリングしたうえで、データ分析からモデルづくり、API化するまでを一気通貫で行っています。

データサイエンス部の特徴としては、Kaggleというデータ分析コンペティション経験者が多く在籍していて、試行錯誤のサイクルがとにかく速いことです。もちろんKaggle未経験の方もたくさんいますし、未経験で入ってきたのに1年間でKaggleマスターになった例もあります。

代表的なプロジェクトとして、「逆転オセロニア」というゲームアプリのハイレベルな対戦AIや、初心者向けに駒編成を自動で埋める「オススメ編成」というツールがあります。

井早:機械学習やデータ分析におけるプロジェクトというと、あまりイメージが湧かないのですが、普段どのように進めていくのですか。

鈴木:主に事業部から困っていることの相談を受けることから始まり、その課題を解決するには機械学習が使えるのか、使う意味があるのかを議論します。ある程度の解決策が見えたら、概念実証期間として3ヶ月前後の時間を使い、お試しでデータ分析モデルをつくります。それが成功したら、最終的にはAPIの形で事業部に提供します。

その中で重要なのは、概念実証のスピード感です。鍵となるところを見極め、最短時間で解決策を導き出すことを大事にしています。

いろいろなプロダクトに関わるのは横断組織の魅力

鈴木:最初のトークテーマは、皆さんはなぜ今の部署を選んだのか。どんな接点があったのか、そこに至るまでの経緯について教えてください。

石塚:実は学生時代に僕はセキュリティを意識したことがなかったんです。たまたま当時DeNAがスポンサーをしていた競技プログラミングコンテストに参加して、今所属しているセキュリティ部の先輩たちと出会ったことがきっかけですね。

競技プログラミングには、他の人が書いた関数やコードを読んで間違いを見つける、というシステムがあるんです。それが脆弱性診断でAPIやソースコードの脆弱性を見つけることと共通していて、競技プログラミングのスキルがセキュリティの仕事にも役立つことを教えてもらいました。その後セキュリティ部の取り組みを自分で調べてセキュリティ技術の面白さを実感して今の部署を選びました。

井早:僕は学生時代に個人開発をやっていたのですが、一人では大規模なインフラ運用の経験が積みづらいというところに課題を感じていました。

技術力のある人が隣にいる環境で実際の業務に触れながら、効率よく知識を吸収していきたいというのがインフラを選んだ理由です。また、DeNAのインフラエンジニアはAWSのカンファレンスでもよく登壇していて、インフラ業界でのプレゼンスが高いことも、惹かれた理由の一つです。

稲垣:大規模という観点からだと、プロダクトを開発する側という選択肢もあったと思いますが、井早さんはなぜ横断組織のほうを選んだのですか?

井早:サービスによっては求められるインフラ特性や構成なども違うので、複数組織を横断して様々なサービスのインフラを見ることで、より技術に集中できると思ったからです。

稲垣:僕は学生時代オープンソースの活動をしていましたが、一からコードを書くよりも、ある程度形になったソフトウェアに対してパッチをあてることが多かったんです。そのときに、ひたすら人力でレビューをすることがとても辛かったんです。本当にこれでマージして大丈夫なのか、こうすれば動くのか、判断することが難しかった。

テストがあると、最低限ここは絶対動くという保障ができて、開発者をサポートすることができるんです。そこでテストそのものに興味を持ちはじめると同時に、SWETに魅力を感じるようになりました。

SWETを選んだ理由は井早さんと似ています。特定のソフトウェアに対するテスト技術に特化しすぎると、できることが限られてしまう。横断組織であるSWETはいろいろなソフトウェアを対象としているので、用途、目的に応じて様々な観点のテストを提案できることが魅力だと思っています。

鈴木:いろいろなプロダクトに関われる幅の広さは、横断組織の魅力の一つですね。

僕は学生時代にKaggle夢中になっていたので、機械学習を仕事にでもできたら楽しそうだと思い、データサイエンティストという職種を選びました。

DeNAを選んだ理由は二つあって、一つはDeNAのデータサイエンティスト採用にはKaggler枠があること。Kaggler枠で採用されると、技術研鑽のために、業務時間の一部を使ってKaggleに参加していいというものです。そういう制度をつくること自体も面白い会社だと思いました。

もう一つは、DeNAは様々な事業を展開しているので、ユーザーログや画像・動画・音声など、あらゆる種類のデータに触れることができるからです。その上、サービス運用の経験がたまっているので、データを集めて綺麗な形で整理するという文化が社内に根付いている。既にデータ基盤ができているので、データサイエンティストの力を発揮しやすい環境があることも、魅力を感じたポイントですね。

入社後のOJTは部署それぞれ いきなりのプロジェクト配属で得たもの

鈴木:次のトークテーマは、各部署に配属されてからのOJTについてです。前提として、DeNAに新卒で入社すると、最初に全職種共通の2週間の研修があり、そこでDeNAの事業やプロダクトについて学びます。その後、エンジニア全体研修に移り、フロントエンドからバックエンド、設計、クラウドなど、幅広く学んでから各部署のOJTに入ります。

石塚:セキュリティ部では、経験の有無にもよりますが、13ヶ月間ぐらいでセキュリティの基本知識を覚えていきます。内容としては、主業務となる脆弱性診断から始め、その後自分の興味ある分野について勉強を進めていくことになります。

また、セキュリティ部の業務を実践的に学ぶ事が出来る研修もありました。脆弱性診断であれば、クロスサイトスクリプティング(XSS)やSQLインジェクションのような攻撃ができる脆弱性がある「やられアプリ」が用意されています。実際にその脆弱性を探し出していく事で、脆弱性の見つけ方や、診断の進め方について学びました。

井早:面白そうですね。僕はインフラ運用の経験がまったくなかったので、基礎の基礎から1ヶ月ぐらいかけてゆっくり学びましたそこから、まずはある程度失敗が許される開発環境で経験を積み、その後、本番権限取得というインフラエンジニアにとって免許皆伝みたいなイベントを経て、数千台のサーバーを一気に落とす権限を手にしました(笑)。

稲垣:怖いですね。

井早:怖いんですよ。そのため、本番環境に入っても、まずは小さめのタスクから少しずつこなしていきました。

自分の場合、入社4ヶ月目の頃に、「Anyca」というカーシェアリングサービスのインフラを、オンプレからクラウドに移行するという作業を任されました。3ヶ月ぐらいそこに没頭していて、結構たいへんだったんです。ただ、今振り返ってみれば、早い段階でサービスのインフラをまるごと移行するという大きなプロジェクトを経験したことで、体系的に知識が身につきました。

稲垣:僕もUnityプロジェクトを対象とした静的解析器の開発をいきなり任されました。

鈴木:これはもうOJTの課題ではなく、いきなり実業務に使われるツールを開発していますね。

稲垣:そうですね。ツールを実装するだけではなく、次にこんなツールが欲しいと思ったときに、各プロダクトの開発部が独自で実装できるように、開発実装中で得たノウハウをドキュメント化し社内に発信しています。

SWETに配属されて意識したこととしては、正確に検査するためにテストを大事に書くことですね。環境をつくる際には、依存性を低くしてテストがしやすいようにしたり、網羅率の高いテストケースを考えて実装しています。テストを先に書くことが大事という観点も身につきました。

鈴木:僕は全職種共通の研修が終わった後、実はエンジニア全体研修は受けずに現在の部署のプロジェクトに配属されて、タスクをこなしていました。新人社員に対してメンター一人がついてくれるので、仕事の様子は学べるし、1on1ミーティングでは最近悩んでることやどんなスキルを伸ばしていきたいといった話をしていました。

ところで皆さんはOJTでどんなサポートを受けましたか?

石塚:セキュリティ部でも同じようにメンターがついてくれるので、仕事上のアドバイスをもらったり、毎朝ミーティングを組んでくださったりと、すごく頼りにしています。チームのSlackで質問すれば、メンターだけでなく他の先輩からもすぐに返事を貰えるので、リモートでも悩むことなく業務を進められました。

井早:新卒の日報チャンネルで、「ここのコードがわかりません」とつぶやくと、先輩たちが我先にとヒントを出してくださいました()

インフラは1つのコマンドミスで大障害に繋がることもあるので、部署内にはとにかく質を最優先するカルチャーがあります。研修期間はそれをたたき込む意味でも、わからないところは時間かけてもいいからしっかり学んで、細かい部分まで理解することを求められました。

稲垣:テストではスピードより正確性が求められるため、ミスが許されないのは共通点ですね。

自分は配属されてすぐ静的解析器の実装を任されましたが、最初から一人で行ったわけではなく、モブプロを用いて先輩と3人のチームで行っていました。

モブプロでは、コードを書く「タイピスト」と、開発の方向性をイメージしながらタイピストを導く「ナビゲーター」という役割があります。僕は最初はメンターの仕事ぶりを見つつ、タイピングする側と指示する側の役割を交代で担いながら、実装していきました。2ヶ月後ぐらいに1人で実装してプルリクエストを出してレビューしてもらう形にシフトしていきました。

高い技術好奇心 そして細部にまで丁寧に向き合う

鈴木:最後のトークテーマは、何を大事にしている部署なのか。部署の雰囲気やどんな人がいるのかについて皆さんにお聞きしたいです。

石塚:セキュリティ部は業務内容が幅広いこともあって、メンバーのバックグラウンドも多種多様です。CTFCapture The Flag)というセキュリティコンテストに出場していた人もいますし、アルゴリズムやコードを書くのが得意という人もいます。他にもインフラやログ監視、Webに強い人、ネットワークに強い人など、それぞれが強みを生かして仕事をしています。

ただ皆さんに共通しているのは、最新技術や幅広い分野に好奇心を持ちながら仕事をしていることです。例えばLog4jの脆弱性が話題になったときは、セキュリティ対策を行っただけでなく、脆弱性を確かめるために、攻撃用のスクリプトなどを用意して、どういう条件でその脆弱性を再現できるかをすぐに検証していました。

稲垣:多種多様な人材がそろっているところは、僕の部署も似ていますね。普段からいろいろなソフトウェアを扱っているので、iOSAndroidCI/CDJenkinsUnityなど様々な知識を持ったスペシャリストが集まっています。

SWET特有なところとしては、ミスが起きるとすぐに再発防止策を突き詰め、二度と同じミスが起こらないことを重視するという点ですかね。ミスが起こりやすい箇所に対しては細部まで丁寧なレビューが入ります。たとえば、ドキュメントの文章に表記揺れがあると、読み取る人によって解釈が変わってしまう可能性があるので、修正するよう指摘されたこともあります。

厳しいレビューがある一方で、工夫したところがあれば「これいいね」というコメントもつくので、モチベーションが高まります。

井早:インフラもミスが起きないように仕組みをしっかりつくるところに力を入れている部署ですね。DeNAの行動指針として「『こと』に向かう」がありますが、いかにファクトベースで攻撃的にならずに、物腰穏やかに議論をすることをとても大切しています。何か障害が起きたときも、次からどうやったら構造的に起きないようにするかを徹底的に話し合う。そこはすごくいいところだと思っています。

鈴木:自分がいるデータサイエンス部も知的好奇心が旺盛な人がたくさんいますね。機械学習に関する新しい論文を常にキャッチアップしている人や、最近のKaggleで流行っていることを再現実装する人、MLOpsを学んでスキルの幅を広げる人、とにかく技術や専門知識に熱心な人が集まっています。このようなメンバーたちとオープンでフラットなコミュニケーションができるのも好きなポイントの一つです。

データサイエンス部にはまずはやってみるという文化があります。とにかく着手して、出した分析結果やモデルに対して、ディスカッションしながらブラッシュアップしていきます。

皆さんのお話をまとめると、共通しているのは技術を軸にして、それを突き詰めていったり、いろいろなサービスに適用していくところ。その際に質を最優先にするのか、スピードも大事にするのかといった違いも見えて、面白かったですね。

井早:部署の雰囲気もそれぞれ違うので、1日体験で行ってみたいですね。

鈴木SWETも面白そうだし、セキュリティで攻撃する側を体験するのも興味深い。これからもお互いの交流をもっと深めていきたいと思いました。皆さん今日はありがとうございました。

文:馬場美由紀

セッションアーカイブ

関連記事

人気記事

  • コピーしました

RSS
RSS