「プライバシー保護とデータ活用を両立させる」をミッションに、個人が持つプライバシーに関する権利を保護するための技術”プライバシーテック”を用いて社会課題の解決を目指す株式会社Acompany。「秘密計算(Secure Computing)」と呼ばれる、データを秘匿化したまま計算・分析ができる技術の社会実装を目指しています。Gardnerの「ハイプ・サイクル2021年」では、2015年の機械学習と同じポジションに置かれるなど、注目の技術である秘密計算。同社では独自開発した秘密計算エンジン「QuickMPC」を通して、社会のデータ活用のあり方を根本から刷新し、新たなデータの価値を作り出しています。
一方で、当然ながら同社ではエンジニアに非常に高い技術力が求められます。採用要件も高いものが求められる中、いかにして優秀な人材に自社への興味を持ってもらい、入社してもらうかが大きな課題となっています。
そんな同社で、現在新たな採用経路として注目しているのが、自社開催の競技プログラミング大会をきっかけにした採用活動です。もともとは社内のエンジニアが趣味の延長で企画したものでしたが、技術力の高いエンジニアと出会ういい機会となっているといいます。
今回は、CTOを務める近藤岳晴さん、テックリードを務める中田涼介さんに、求めるエンジニア像や、競技プログラミング大会を使った採用活動についてお話を伺いました。
株式会社Acompany 取締役CTO 近藤岳晴氏
名古屋工業大学在籍中に、名古屋のIT系ベンチャーでインターンをした後、複数のハッカソンに参加し入賞する。2018年に代表の高橋と共鳴してAcompanyの第二創業時に参画し、秘密計算システムや秘密鍵管理アプリの開発を行う。大学院では機械学習・ニューラルネットワークに関する研究を行う。 2019年名古屋工業大学情報工学専攻博士前期課程修了。株式会社Acompany テックリード 中田涼介氏
1996年北海道札幌市生まれ。大学院卒業まで北海道内で生活していたが、2021年6月にAcompanyへ入社。現在はテックリードとしてエンジン部分やクライアント部分を担当中。
なぜ競技プログラミング力を重視した採用なのか
――はじめに、まずは御社が採用で、いわゆる「競技プログラミング力」を重視している背景を教えていただけますか。
近藤岳晴氏(以下、「近藤」):わたしたちが作っている秘密計算エンジン「QuickMPC」の開発に必要なスキルと、競技プログラミングをやっていらっしゃる方のスキルのマッチ度が高いというのが大きな理由です。
もう少し具体的に言いますと、MPCというのは秘密計算手法のひとつである「マルチパーティ計算」(Multi-party Computation)のことなのですが、そのMPCによる秘密計算エンジンを作るにあたって、アルゴリズムやプロトコルの知識は必須です。暗号理論によって定められた手順を理解すること、そして理解した内容を実際のコードに落とし込むところが非常に重要になってきます。
実装するにしても「ただ動けばいい」というわけではなく、メモリ効率のよさや、速度も求められます。分かりやすい言い方をすれば「for文の回数をいかに減らすか」といった観点まで頭に入れて実用的な秘密計算エンジンを作っていかなければなりません。理論を理解した上で速度面やメモリ効率も考慮して実装ができるという点において、競技プログラミングに取り組んでいる方のマッチ度が高いと思っています。
――実際に選考ではプログラミング問題を解く課題もあったりするんでしょうか?
近藤:当社独自の問題で試験をするといったことはやっていません。paizaのスキルチェックの結果や、AtCoderのレーティングなどを見て判断している部分はあります。paizaでは、Sランクの方を対象に求人を出していますので、ある程度当社で必要となるベースのスキルは満たしている方が多いですね。Sランクを取得していらっしゃる方は並行してAtCoderもやられている方がとても多いので、両方の情報を参考にどれくらい競技プログラミングに取り組んでいるかを測っています。
一方で、必ずではありませんが、ソフトウェアエンジニアリング力を測るための課題を出すことはあります。
社員の持ち込み企画で競技プログラミング大会を開催
――次に、Acompanyで開催している競技プログラミング大会についてお聞かせください。まず、開催のきっかけはなんだったんでしょう?
近藤:当社には、部活共通の趣味を持っている人が集まって、好きな時間に活動をする「部活」という活動があります。もともと競技プログラミングが好きな人が集まっていることもあり、「競技プログラミング部」も存在しています。現在はオンラインでの活動が主流になっていて、AtCoderのコンテストのあとに入部しているエンジニア何人かが集まって、振り返り会などをやったりしています。
そこに今日同席している中田も参加しているのですが、彼が「Acompanyで競技プログラミング大会を開きたいです」と話してくれたのがきっかけで開催しました。
お伝えしたとおり、もともと採用では競技プログラミング力を求めていたのですが、それを前面に押し出すきっかけとなったのがこの競技プログラミング大会の開催だったかもしれません。
――なるほど。やはり競技プログラミングが好きな方を採用できるようにといった意向があったのでしょうか?
中田涼介氏(以下、「中田」):最初は純粋にイベントとしてやってみたいという気持ちでした。何気なく「競技プログラミングで出題されるような問題を結構自作してるんですよね」と話したら、「じゃあやったらいいじゃないですか!」と言ってもらって…(笑)。
近藤:完全に勢いでしたよね(笑)。
ただ、競技プログラミングに関してなにかイベントをやってみることに対してはポジティブな気持ちしかありませんでしたし、社員の持ち込みでそういうことが実現できたらおもしろいなと思いました。とりあえずやってみようということで動き出して、第1回大会を昨年の12月21日に開催しました。
――中田さんの自作問題なんですね!採点などはどのようにされているんでしょうか。
中田:採点はシステムで自動で行います。いったん問題づくりの流れを簡単に説明させていただくと、まずわたしが問題の素案をいくつか作りまして、実際に自分で解いてみます。このままでいいか、もっと制約を厳しくして難しくするかといった改良を何度か繰り返して原案を完成させます。
次に自動採点をするためのテストケースを作ります。このとき間違っているコードを不正解にするためのコーナーケースもたくさん考えます。そして問題文と解答までを整えるまでで完了です。これを全6問分整えていきました。
アプローチしたい層との有効なタッチポイントとしても活用
――1回目を開催しての手応えはどうでしたか?
近藤:さきほども少しお伝えしましたが、イベント自体は採用直結というよりはブランディングの目的が強いので、競技プログラミング大会をきっかけに多くの方にAcompanyを知ってもらえたのはよかったと思っています。参加者の方が、SNSで「(既存のプラットフォームを使うのではなく)自社で開催するなんてすごい」と言ってくださってるのも目にしました。
――アプローチしたい層にちゃんと届くいいタッチポイントになったんですね。
近藤:まさにそうだと思います。現在、第2回大会の準備中で(インタビューは2月24日に実施、
――大会がきっかけで入社される方もいると伺いました。どのようにアプローチされたのでしょうか?
近藤:その点については、まだ決まった形式があるわけではないものの、参加のお礼と合わせて、カジュアル面談にお誘いさせていただきました。今回内定を出させていただいた方は大会で部門賞を取った方で、ちょうど新卒の就活とタイミングが重なったこともあって、お互いニーズがマッチしたのかなと思います。
通常の就活イベントでは、やはり有名企業さんに埋もれてしまうこともあるため、競技プログラミング大会の自社開催はひとつユニークなポイントになったのではないでしょうか。当社の採用要件的に、大勢にアプローチするというよりは、少数でも技術的に尖っている方とお会いできるとうれしいというのもあります。
中田:1回目は結構自由にやらせてもらったので、もちろん社内では広報的な動きもあったんですが、2回目はわたし自身もう少し採用の視点でどうするといいかを考えて作っていこうかなと考えています。
細かい話になってきますが、賞と景品を渡す人数を増やして、よりポジティブなイメージを持ってもらったり、社名が入ったノベルティを配って日常で目に留めてもらうようにしたりできればと思っています。
近藤:あと第1回は問題の難易度設定がちょっと……(笑)。
中田:たしかにその点も考慮が必要です。全部で6問出題したのですが、1問目の正解率が約7割で、2問目が2割ほどになってしまって、3~5問目が1割ほど、6問目に至っては当日の正解者はなしでした。問題はイベント後も公開していて、のちに問題を解く方が出てきたときはちょっとうれしかったですね。
近藤:中田さんの気合いが入りすぎて相当難しい内容になっていたみたいで。しかも2問目が「Easy」表記だったのもあって、参加者の皆さんは戸惑われたと思います。
――お話を聞いていて、本当に競技プログラミングがお好きなんだなというのが伝わってきました。しかも当日でなくてもスキルの高い方との接点になっているのはすばらしいですね。
少数精鋭だからこそのバリューマッチ重視
――エンジニア採用について、競技プログラミングのスキルを中心にお聞きしてきましたが、他に求める要素はありますか?
近藤:最初にお話しした、当社のサービス開発に必要なスキルは満たしているという前提にはなりますが、そのうえでバリューマッチするかどうかを非常に重視しています。
当社のバリューは「Be Cool 」と「Be Hacker」です。まず「Be Cool」は「人としてかっこよくあれ」というものです。そして「Be Hacker」は、「合理的に課題解決に取り組もう」というものです。(参考:Acompanyについて – バリュー)
わたしの主観にはなりますが、エンジニアは「Be Hacker」を満たしている方は多いと思います。ただ、もし「技術力は高いけどBe Coolが十分ではない」と感じた方がいらっしゃった場合、どうするか。判断軸がないと「技術力が高い」というので採用するかしないか悩むと思いますが、当社では一緒に働くことを考えたときに「違うな」という判断になります。
特に現在は基本的にリモートワークでオンラインでのコミュニケーションが中心になります。価値観が合うかどうか、「Be Cool」で定義している「自分を大切にし他人を思いやれるような振る舞いをクールである」を体現できているかどうかが、円滑に物事を進めるために大切だと考えています。
新しい分野で価値を創造し、これからの10年をつくる
――最後に、御社に興味を持ったエンジニアの方に向けてメッセージをお願いします。
近藤:まず、秘密計算エンジンの開発というのは、伸びしろのある大きな市場であり、これまでにない価値を創り出す仕事です。
現在、ビッグデータの分析手法自体は整っていても、個人情報や機密情報の観点から活用できていないデータは多くあります。しかし、秘密計算技術によって、それらを安全に活用し、社会に生かすことができます。そして当社は国内に留まらずグローバルで勝負していくことを視野にいれています。
プライバシーテックとして次の新しい10年をつくっていく、そういった未知の領域に興味がある方はぜひ応募していただければと思います。
――ありがとうございました。