見出し画像

【MIIDAS Tech LIVE #1】を開催しました

こんにちはミイダス Tech Officeです。
ミイダス株式会社のテックチームが直近で開発した機能を現場のエンジニアから共有する「MIIDAS Tech LIVE
第1回目の開催となる今回は3つのリリース情報をお届けしました。

採用マッチングサービス「ミイダス」は、独自の診断ツールで採用のミスマッチを減らす中途採用サービスです。メインの採用関連の機能に加え、診断や研修、組織サーベイに支援金の検索機能など、幅広い機能開発が行われています。

本記事ではそのイベントの内容を書き起こし記事としてご紹介させていただきます。ミイダスの最新開発情報をぜひご覧ください。


永留:それでは、お時間が来ましたので始めさせていただきます。皆さん、こんにちは。本日はこちらのイベントにご参加いただき、誠にありがとうございます。私は今日の司会を務める、ミイダス株式会社開発部Tech Officeの永留と申します。どうぞよろしくお願いいたします。

皆さんお忙しい中、お昼時にも関わらずご参加いただいたこと、心から感謝いたします。本イベントは「MIDAS Tech LIVE」と銘打ち、MIDAS Techチームが最近開発した機能を現場のエンジニアが紹介する内容となっております。

今回が初開催で、年に4回の開催を予定しております。記念すべき第1回目ということで、全員が少し不慣れな面もあるかもしれませんが、どうか温かく見守っていただけると幸いです。どうぞよろしくお願いいたします。

さて、本日のアジェンダのご紹介です。以下の流れで進めてまいります。まずはオープニングで、ミイダス株式会社や本イベントについて、MIDAS Techチームの主な技術スタックやチーム編成について簡単にご説明いたします。その後、新たにリリースされた機能について、エンジニア3名から紹介させていただきます。最後に、ミイダスの最新ニュースをいくつかお伝えし、クロージングとなります。全体で約1時間のイベントを予定しておりますので、どうぞよろしくお願いいたします。

Opening

それでは早速ですが、オープニングに移りたいと思います。まずは、私たちミイダス株式会社についてご紹介させていただきます。独自の診断ツールを利用した中途採用サービス「ミイダス」を企画・開発・運営しております。コンピテンシー診断やバイアス診断ゲームなどのツールにより、転職希望者には自分に適したオファーを、企業には診断結果をもとにしたフィッティング人材分析により、活躍しやすいハイパフォーマーの採用を可能にするサービスを提供しています。サービス開始から約7年が経ち、現在の社員数は約550名で、開発組織は95名ほどとなっております。

アクティブユーザー数は44万人、企業による求人掲載数は15万社ほどです。採用マッチング機能を主軸に、組織サーベイ機能やタレントマネジメント機能など、採用以外の機能開発も積極的に行っております。

次に、このMIDAS Tech LIVEについてご説明します。ミイダスのテックチームが最近開発した機能を、現場のエンジニアが共有するイベントです。

採用関連の機能以外にも、診断や研修、組織サーベイ、支援金検索機能など、幅広い機能開発についてお伝えします。本イベントの目的は、私たちの取り組みを定期的に発信し、より深く理解していただくことです。もし興味を持っていただける方がいらっしゃれば、ぜひ何らかの形で繋がりが持てれば幸いです。イベントの最後には、採用情報のお知らせもございますので、是非ご覧ください。

続いて、ミイダスの主な技術スタックについて簡単にご説明します。フロントエンドでは主にJavaScriptを使用し、一部TypeScriptを導入中です。フレームワークにはReactを主体に、一部Nextを導入しています。状態管理にはReduxを使用しております。バックエンドではGo言語を用いた開発を行っています。

さて、時間が限られていますので、詳細は省略しますが、私たちは主に以下の技術を利用しています。もしご質問がありましたら、お気軽にQ&Aや機能をご利用いただき、お問い合わせください。

続いて、ミイダスのチーム編成についてご紹介させていただきます。主要なチームは、下記の通りです。ミイダスでは、開発機能単位でのチーム分けや、職種単位のバックエンド・フロントエンドなどのチーム分け、また役割別のチーム分けを行っています。例えば、新入社員の受け入れや、プロダクト全体のロードマップを管理する役割など、開発組織の職種や役割別で様々なチーム分けが行われています。

ミイダスの主要な機能開発に加えて、例えばセールスの営業支援ツールなどの社内システム開発を行うチームも一部存在します。採用以外の機能も開発しておりますので、少しご紹介させていただきます。例えば、組織内の調査を行うサーベイ機能や、企業が申請できる支援金や助成金を検索できる機能などです。ミイダスは、採用ツールとしての認知もあるかもしれませんが、採用以外の分野でも多くの開発を行っております。
こちらの画面では、分かりやすく表記していますが、実際の状況とは若干異なる部分もございます。ご了承いただけると幸いです。

以上が、ミイダスのチーム編成に関する内容となります。

それでは、ミイダスについての簡単なご紹介は以上となります。次に、リリースされた機能のご紹介に入りたいと思います。

リリース共有[New World]

永留:最初に、「New World」というプロジェクトについて、Y.Sさんからご紹介いただきます。この機能について軽く説明いたします。New Worldチームは、既存の編成とは別に特別なプロジェクトとして臨時に結成されました。そのため、チーム編成の位置付けとしては、その他の部分に含まれています。

New Worldプロジェクトは、これまでミイダスが企業からの面接確約のスカウト送信のみを可能にしていたルールを大きく変革するものです。このプロジェクトにより、転職ユーザーはミイダス上で存在する全ての求人を閲覧できるようになり、同時に活躍可能性という指標で求人とのマッチング度を確認できるようになりました。これは根本的なロジックの転換であり、多くの困難が伴ったプロジェクトです。そこで、New WorldチームのY.Sさんにご紹介いただきたいと思います。

それでは、Y.Sさん、お願いいたします。

Y.S: はい、どうぞよろしくお願いします。自己紹介させていただきます。私は2018年にミイダスに参画し、主にバックエンド領域で新規開発やリファクタリングを担当してきました。AWSやSQS、Fargate、Auroraが好きで、言語としてはgolangを愛用しています。

New Worldの開発背景を説明します。応募機会の損失を防ぐために、サービス思想を変革することが背景にあります。全ての公開された求人に応募できるようにし、応募機会の損失を減らすことで、マッチングや応募数の増加を目指しています。

As-Is から To-Be への変化を簡潔に説明します。

当初のサービスは、面接確約がある求人のみを転職者に提案し、円滑な転職活動を支援することを目的としていました。面接確約のない求人を提案すると非効率的な転職活動につながり、ユーザー満足度が低下すると考えていました。しかし、データの蓄積により、To-Be の面では確約のない求人も転職者に提案して問題ないことが分かりました。求人の募集条件を満たす割合を転職者に開示し、特に選考が進みそうな求人を優先的に推薦することで、転職者の活動を円滑に支援する方向に変化しました。

開発期間は約12ヶ月で、前準備として一部機能のドロップや再設計を2019年11月から開始し、2020年6月からNew Worldの再設計などを実装に入り、11月26日にリリースされました。開発体制は、CTOがPMも兼任し、バックエンドとフロントエンドはそれぞれ6名、アプリエンジニアは2名、インフラエンジニアは3名で開発が進められました。バックエンドがメインだったものの、フロントエンドもNEXT.jsに移行したり、モデルの再設計など大規模な改修が行われました。

新旧画像の比較では、元々はシンプルなデザインだったものが、募集条件の一致率や活躍可能性などを表示するようになりました。詳細は時間の都合上省略しますが、バックエンド側での作業としてコアドメインの再設計が行われました。ミイダスでは、最大のテーブルである「オファー」が約100億行で700GBほどの大規模なものでした。それに伴い、SQLからGoへのマイクロサービス化が行われ、オファーを参照しているコードの再設計やデータベースの分割を想定したテーブル移行が行われました。また、レコメンドスコアのロジックがGoからAIに完全に移行し、分析テーブルの再設計も行われました。

次に新旧アーキテクチャをご紹介します。

New Worldプロジェクトでは、青色に塗られた部分を開発しています。古いアーキテクチャでは、求職者や採用者向けのサービスや横断的なアプリケーションが、一つのデータベースを読み書きするシンプルな構造でした。しかし、新しいアーキテクチャでは、目的別に複数のデータベースを用意し、バスと呼ばれるキューでデータ連携を行い、アプリケーション間でのデータのリードライトが不可能な設計になっています。これは将来のビジョンを含んでおり、まだ完璧ではありませんが、進化を続けています。

この変更により、KPIにも影響がありました。せっかくTech LIVEという機会なので、バックエンド観点での効果を紹介します。データベースのWriterの負荷が大幅に低下し、CPU使用率が40~50%から5%になり、インスタンスサイズもこれまでは一番大きいr6g,16xlargeを使っていましたが、それを半分にしても今は快適に動作しています。ピーク時のレスポンス時間が3分の1に短縮され、様々なバッチ処理の速度が改善されました。求職者の検索バッチは800分から300分に短縮され、通知バッチも500分から1時間に短縮されました。また、重いバッチ処理が高速化し、不要になったり、Fargateのオートスケールを利用して処理速度が向上するなど、効果がありました。

しかし、新しいアーキテクチャには課題も多く、DB分割を想定したテーブル移行やデータベースの数が増えることで、アクセス権限の管理が煩雑になり、バグ発生時の調査も大変になりました。現在、データーベースの数がサービス数*2、150ユーザーほどあり現在も順調に増加中です。
また、コンテナによっては成功・失敗が繰り返され、どの経路からの呼び出しに問題があるのかなどトレーシングが大変でした。
またキューの増加によりメッセージの送受信のハンドリングも大変になりましたね。

アーキテクチャが複雑化し、開発者個人の見る範囲が狭まりましたが、全体ルールがすごく大変になっています。例えば、転職ユーザー側のサービスのドメインが企業側のドメインを誤ってインポートするなどですね。これはCIで対応してきています。

ドメインの位置については、より慎重な設計が求められており、最近では元々のドメインから別のドメインへの移行が必要になるケースも増えています。また、バッチ処理においても、順番に実行しなければ正しく動作しなくなるため、全体の把握が難しくなっています。

例えば、フロントエンド開発者がローカルでHTMLメールの確認を行いたい場合、方法が分からないことがあります。これに対しては、ドキュメント化が進められていますが、その作成自体も大変な作業になっています。また、コンテナの増加により、ローカルのDockerが非常に重くなってきています。これに対処するため、重いサービスをモック化して対応しています。

さらに、テーブル設計の変更により、分析基盤として使用しているレッドシフトとの連携がうまくいかなくなるケースもあり、様々な部分に影響が出ています。これらの課題に対処するために、現在解決策を模索しています。以上が、今回のNew Worldプロジェクトの発表です。
これはミイダス史上最大の転換型プロジェクトであり、多くの改善がある一方で、まだ課題も残っています。今後もこれらの課題に取り組んでいく必要があります。

リリース共有[支援金機能]

永留:それでは、次にリリース共有として、支援金機能についてY.Nさんからの発表をお届けしたいと思います。支援金機能とは、正式名称で言うと「助成金・補助金検索サービス」であり、企業が利用できる機能として2022年初頭にリリースされました。いくつかの項目を入力することで、受給可能な支援金を見つけることができる機能です。これにより、複雑な要件を大幅に簡略化することができます。

さて、ここからはY.Nさんにご紹介いただきますので、どうぞ宜しくお願い致します。

Y.N: はい、よろしくお願いします。私はバックエンドエンジニアとしてミイダスに参画し、現在5年弱が経過しています。以前はSREチームや速度改善などを担当しており、現在は支援金チームに所属しています。ちなみに先月、東京から東海地方に移住し、家賃や生活コストが抑えられていることから、快適に過ごしています。

私たちが「支援金」と呼んでいるものは、助成金と補助金をひとまとめにしたものです。助成金・補助金検索サービスの開発背景として、ミイダスを利用している顧客の多くが中小企業であることが挙げられます。ミイダスは競合サービスに比べて低価格で利用できますが、スタートアップや中小企業にとってはそれでも無視できない費用です。そこで、ミイダスを利用することで国や自治体から支援金を受け取れれば、顧客の負担を軽減しつつ、さまざまな機能を活用してもらえると考えました。

しかし、支援金の申請から受給までの手続きは各自治体でアナログな運用がされており、情報が一元化されていません。支援金の情報は各省庁や自治体のページに記載されていますが、Google検索のように一覧表示されるわけではありません。さらに、支援金が存在していても記載されていないものもあります。

また、一つの支援金の資料が調査されると、例えばPDFなどで公開されていることが多く、その資料が40〜50ページ程度になることがあります。さらに、このような資料のPDFが複数ファイル存在することもあります。これらのPDFには受給条件や受給可能な金額などが記載されていますが、実際に申請しようとすると記載のないものや考慮漏れがあることがあります。そういった場合は、担当部署に直接出向いたり、電話で問い合わせないと情報が得られません。

受給のためには、申請書や計画書、見積書など5種類から10種類ほどの書類を準備し、担当部署に提出する必要があります。私たちの支援金チームでは、ミイダス上で顧客が受給できる支援金を探すことができ、申請までを可能にすることを目指しています。

助成金・補助金検索サービスでは、最終的に7つのジャンルを検索可能にすることを予定しており、現在は雇用・働き方、人材育成の3つのジャンルをリリースしています。開発期間の大まかな流れでは、まず企画がそのジャンルの支援金について調査し、受給要件をまとめます。しかし、受給条件は支援金ごとに異なります。デザイナーはまとめられた受給条件をもとに、検索フローやワイヤー、デザインを作成します。

その後、支援金調査チームが支援金情報をまとめるスプレッドシートを作成します。バックエンドの私がそれを元にデータやAPIを作成します。次にデザインを元にフロントエンドエンジニアが画面やメールを作成します。実装が完了するとテストが行われ、問題がなければリリースされます。この期間は約3ヶ月ですが、サービスの使い勝手を向上させる試作修正なども行っているため、一つのジャンル追加に集中すれば約2ヶ月程度でできると考えられます。

続いて、助成金・補助金検索サービスで支援金を検索する流れをざっくりとご説明します。まず、左上のジャンル欄から、「雇用・働き方・人材育成」の中から検索したい項目を選択します。今回は「雇用」を選びます。次に、企業情報を入力します。例えば、法人格や本社・支社の所在地、業種、従業員数などです。

次に3番目のところですね。雇用ジャンルの場合、どのような条件で採用できるのかを入力します。例えば、正社員雇用が可能か、一度に複数人を雇用できるか、採用対象者の年代や体験入社の有無、インターンシップ受け入れができるかなどです。

これらの情報を入力することで、新規に検索結果が表示されます。先程触れたように、支援金ごとに独特な条件があるため、検索結果の「必要な残りの条件」項目でそれらを確認できます。本来は、50ページ程度の資料を読まなければ得られない情報ですが、当社の支援金調査チームが分かりやすくまとめています。検索結果には、資料へのリンクや問い合わせ窓口も掲載されており、自力で申請が可能です。

実際に、支援金調査チームがまとめたスプレッドシートの一部をご紹介します。

個人名はマスクしていますが、ミイダスではこのスプレッドシートをもとに、データベースを毎週更新しています。また、シートからデータベース更新用のSQLを生成するスクリプトが組み込まれています。ただ、個人的な課題として、プルリクエストまでの自動化がまだできておらず、毎週定期的に手作業が必要です。プルリクエストまで自動化できれば、作業時間やレビュー時間が減らせると考えています。

以上で、受給できそうな支援金が見つかるまでの流れをご理解いただけたかと思います。

今後の課題として、ミイダス上で支援金を代理で申請できるようにしたいと考えています。まだ機能としてリリースされていませんが、現在テスト運用を進めています。ミイダスの契約が決まった顧客に連絡し、支援金が半分の価格で返ってくることを説明し、申し込むかどうか確認しています。現在、10〜20社程度の企業が参加しています。

具体的には、「IT導入補助金」という支援金があり、全国で申請可能で現時点で100%受給ができています。IT導入補助金以外の支援金についても同様のテストを行い、問題がなければサービスとしてリリースする予定です。以上が、支援金チームからの発表です。ありがとうございました。

永留:支援金や補助金は非常に複雑で、自分で申請するのが大変なため、ミイダスの機能がこれを解消し、さらに代理申請機能が加われば、ユーザーの皆さんが非常に助かると思います。今後も機能開発を頑張っていただきたいですね。

リリース共有[動画視聴機能]

永留:それでは、次にリリース共有の続きとして、動画視聴機能についてTakanoさんからのご紹介をお願いします。動画視聴機能は、当社のタレントマネジメントチーム(通称タレマネチーム)が開発している機能の1つで、タレマネ機能という名前で総称されています。こちらはシンプルにミイダス上で動画が視聴できる機能となっております。詳細についてはTakanoさんからご紹介いただきます。
それでは、Takanoさん、よろしくお願いします。

Takano:Takanoといいます。現在はSES型の会社で4年半フロントエンドエンジニアを務めており、ミイダスには半年前から業務委託として参加して動画視聴機能の開発を行っています。趣味はボードゲームで、最近はまた熱が再燃しています。

開発背景としては、各部署から顧客に動画を見せたいという要望が上がっていました。営業担当者がメールで動画のURLを送って企業にアプローチしたい場合や、ミイダスを利用している企業のユーザーが紹介動画や使い方動画を常に見られるようにしたい場合、また社員がミイダスのコンピテンシーやバイアスに関する研修系の動画を見て知識を深めたい場合など、様々な課題がありました。外部サービスの利用も検討しましたが、今後のカスタマイズ性を考慮して内製することにしました。

開発期間は約3ヶ月で、バージョン1と2に分けて開発しました。バージョン1は主に企業向けの機能で、ミイダスの使い方動画などを配信する機能で、約1ヶ月かかりました。バージョン2は社員向けで、コンピテンシーやバイアスの研修講座などが見られる機能となっています。開発体制は基本的に各領域で1名ずつで、一部複雑な部分や量が多い部分に関しては、ヘルプを受けながら開発しました。

実際の機能は左側に表示される画面で、バージョン1の企業向け画面では、主に企業担当者向けの動画が一覧で配置されています。

この機能はシンプルで、上部のバーで動画をフィルタリングしたり、カテゴリーごとに整理したりできます。また、視聴位置を保存したり、視聴通知を営業担当者に送信することができます。この機能を開発する際にはまずモックアップを作成し、イメージが固まったところで実装に取り掛かりました。デザイナーは関与せず、開発者が簡単にデザインを整える形で進められ、約1ヶ月で完成しました。

次の機能は、「動画視聴機能v2」で、社員向けの研修動画が提供されます。2つの大きなカテゴリー、コンピテンシー活用講座とバイアス診断ゲーム研修講座があり、100件以上の動画が用意されています。階層構造になっていて、カテゴリーごとに見やすく整理されています。この機能の開発は、社員向けログイン機能やレスポンシブ対応が必要であったため、2ヶ月かかりました。部分的に他の担当者にヘルプを頼みながら実装を進めました。

開発を通して、動画活用の基盤ができたことで、今後さまざまな施策が展開できると考えられます。開発中の良かった点は、モックアップを使って認識を合わせたことや、作業担当者の柔軟なアサインがうまくいったことです。また、テストチームの存在によって安心感があり、助けられました。

ただし、改善点もあり、動画のマスター情報をフロント側で管理していることが問題となっています。これは、開発スピードや将来の変更に柔軟に対応できるようにするためですが、他のサービスとの連携で問題が生じているため、改善が必要です。

今後の展望として、動画コンテンツは増え続け、v2の社員向け動画機能はタレントマネジメント機能に統合され、よりリッチなものになるでしょう。進捗管理や理解度チェックなどの追加機能が実装され、使いやすさが向上します。以上が、動画視聴機能の紹介になります。ありがとうございました。

永留:Takanoさん、発表ありがとうございました。ミイダスのコンピテンシー診断やバイアス診断ゲームはシンプルで、結果を見るだけでも面白いですが、人事や会社の従業員がどう向き合うかが重要ですね。そのためにも、さまざまな動画を追加しています。いくつかの動画では、数値が高い人や低い人の特徴について詳しく説明されています。気になる方は登録して診断を受けてみてください。今後も動画が追加されていくので、楽しみですね。
これでミイダスTech LIVEのリリース共有は終了です。

MIIDAS NEWS

続いて、MIDAS Techチームの最近の出来事をMIDAS NEWSとして共有します。今回は3点あります。
まず、技術書典14にゴールドスポンサーとして参加が決定しました。技術書典は個人や企業が技術書を同人即売イベントのようにオフラインとオンラインで頒布、販売するイベントです。ミイダスは例年スポンサーとして参加しており、今年はゴールドスポンサーとして参加予定です。また、HRサイエンス研究所が機械学習とアセスメントに関する書籍を無料頒布します。技術書典にご興味がある方は、ぜひミイダスの書籍をご覧ください。

次に、Go Conference 2023にシルバースポンサーとして参加が決定しました。Go言語に関する大規模なカンファレンスで、今年もスポンサーとして参加します。過去にはGoルドスポンサーやシルバースポンサーで参加しており、今年は抽選に参加したものの、Goルドを逃しシルバースポンサーになりました。当日はオンラインブースに出展するので、ぜひミイダスのブースにお越しください。

最後に、2つの記事がリリースされました。1つ目は、今年1月にVPoEの小林さんが就任し、CTO磯崎さんとの対談が記事として公開されています。もう1つは、昨年、バーソルグループで共同開催した【PERSOL(パーソル)グループ Tech Talk #3 - 技術負債との向き合い方 - 】というイベントのレポート記事が公開されていますので、ぜひご覧いただければと思います。MIDAS NEWSでは、今回紹介した3つのトピックをお伝えしました。

それでは、今回の説明でミイダスについて詳しく知りたい、あるいは採用に興味を持たれた方のためにお知らせします。現在募集中の正社員ポジションは、バックエンドエンジニアフロントエンドエンジニアUIデザイナー社内SEの4つです。また、業務委託・フリーランスの方向けに、バックエンドエンジニアを募集しています。フロントエンドエンジニアについては、一度募集を停止していますが、6月から7月頃に再開予定です。

興味を持たれた方は、お話を聞くだけでも構いませんので、ぜひお問い合わせください。今回のイベントのアーカイブはYouTubeで公開し、レポート記事もnoteで発信しています。イベントのお知らせはTwitterconnpassで行っております。今後も定期的にイベントを開催する予定ですので、この機会にぜひフォローをお願いいたします。

以上で、第1回のMIIDAS Tech LIVEは終了となります。ご参加いただいた皆様、誠にありがとうございます。次回は6月に開催予定ですので、またのご参加を心よりお待ちしております。ありがとうございました。

書き起こし記事と一緒に、こちらのアーカイブ動画をぜひご覧ください。

ミイダス Techについて

ミイダスでは、様々な技術イベントを開催しています。connpassやYouTubeチャンネルでミイダスグループのメンバーになった方には、最新の開催情報やアーカイブの公開情報が届きますのでぜひご登録をお願いいたします。

イベントページ:https://miidas-tech.connpass.com/
Twitter:https://twitter.com/miidas_tech
Youtube:

ミイダス Tech


この記事が気に入ったらサポートをしてみませんか?