マイクロアドのシステム開発部でサーバサイドエンジニアとして活躍する小林友明さん。学生時代から培ってきた高い技術力を武器に、入社1年目にして既に2度の月次MVPを受賞するなど、目覚ましい活躍を見せています。今回は、そんな小林さんにインタビューを実施。マイクロアドへの入社の決め手から、新卒として駆け抜けた激動の1年間、そして今後の展望まで、詳しくお話を伺いました。これからエンジニアとしてのキャリアを歩み始める学生さんにとっても、ヒントが満載の内容です。
自社サービスへのこだわりと、研究で培ったスキルを活かせる環境
―― まずは自己紹介と、学生時代からマイクロアドに入社するまでの経緯について教えていただけますか?
2024年にマイクロアドへ新卒入社しました、小林友明と申します。現在はシステム開発部マーケティングプロダクト開発ユニットに所属し、主に広告配信システムのサーバサイド開発を担当しております。どうぞよろしくお願いいたします。
学生時代は、ソフトウェアエンジニアと計算機科学者の2つの進路で悩んでいました。大学で取り組んでいた研究は非常に興味深く、研究者の道にも強く惹かれていたのですが、実装が得意なことや、ものづくりが好きなことから、最終的にソフトウェアエンジニアとしてのキャリアに挑戦する決断をしました。マイクロアドとの出会いは、就職活動の中でエージェントの方にご紹介いただいたのがきっかけです。
―― 就職活動では様々な企業から内定を得ていたと伺っていますが、最終的にマイクロアドを選んだ決め手は何だったのでしょうか?
就職活動では、「自社サービスを提供している企業」を重視していました。自社サービスであれば、自分の開発による貢献がサービスの価値向上に直結し、その手応えや成果を実感しやすいと感じたからです。
その中で特にマイクロアドに惹かれたのは、プログラミング言語のScala(※1)を技術スタック(※2)に採用していた点です。私は学生時代にプログラミング言語の研究に携わっていたため、Scalaのような「高度な言語」の理論的背景に一定の理解がありました。したがって、ここなら自分の専門性を最大限に活かした面白い開発ができるのではないかと感じました。
(※1 Scala:関数型言語とオブジェクト指向言語の特徴を併せ持つプログラミング言語)
(※2 技術スタック:システムやアプリケーションを開発・運用するために使用される技術の組み合わせ)
―― なるほど、ご自身の強みを活かせる環境に魅力を感じられたのですね。入社後の研修はいかがでしたか?
研修には、ビジネス研修(約1ヶ月)と技術研修(約2ヶ月)がありました。ビジネス研修では、社会人としての基本的なマナーやマインドセットを学びました。業務ではバックグラウンドの異なる様々な方々と協力して成果を出さなければならない場面がありますが、そのようなシチュエーションでこのときの知識や経験は役立ちましたね。
技術研修は、純粋に楽しかったです。同期に優秀なメンバーが多く、技術的な話で盛り上がることができて、あっという間に時間が過ぎました。研修では、新卒エンジニア8人で「1on1面談管理ツール」を開発したのですが、なかなか良いものができたんですよ。これはシステム開発部の1on1面談で実際に使われていて、1年間安定稼働しています。
―― 1on1面談ツール、面白そうですね!研修を経て、RDU(※当時の広告配信システム開発ユニット)に配属された時の心境はいかがでしたか?
就職活動中から「Scalaをやりたい、RDU(広告配信システム開発ユニット)に行きたい」とアピールしていたので、「まあ、RDU配属になるだろうな」と思っていました。むしろ、「他のチームだったら何も知らないけどどうしよう」と思っていたくらいです(笑)。希望通りのチームだったので、特に驚きはなく、スムーズに業務に入ることができました。
新卒1年目から裁量を持って挑戦。技術で課題解決に貢献
―― 配属後、初めて取り組んだ開発はどのような内容でしたか?
最初に取り組んだのは、「IM-UID」というユーザーIDに紐づくデータの蓄積に関する改修でした。マイクロアドでは、IM-UID(※)という Intimate Merger 社のユーザーIDを使用しているのですが、それに紐づくデータ量がかなり多く蓄積されてしまっていたんです。
(※ https://lp.intimatemerger.com/im-uid)
―― IM-UID…?もう少し詳しく教えていただけますか?
Web広告では、ユーザーを識別するためにCookieなどのID(識別子)が使われています。広告枠の情報がDSP(※)に送られてくる際、DSPが「この広告枠はどのユーザーのものか」を識別するためにIDが付与されるのですが、その一つにIM-UIDがあります。IM-UIDは推定IDと呼ばれる種類のIDで、プライバシー規制の強いmacOSやiOSのような環境で、個人を特定することなくユーザーを識別する際に役立ちます。
マイクロアドでは、macOSとiOSユーザの広告リクエストに対しては主にIM-UIDを使用していますが、それ以外の場合はCookie などの「より識別精度の高いID(確定ID)」を取得できるため、そちらを優先的に使用しています。つまり、IM-UIDは使われていない場合が多かったんですね。にもかかわらず、そういった使われていないIM-UIDでもログに記録していたため、後続のログ加工処理やデータストアへの蓄積処理で無駄な負荷が大きく発生している状況でした。そこで、「必要な場合のみIM-UIDを取得し、不要な場合は破棄する」という改修を行い、システム全体の負荷軽減を図りました。
(※ DSP (Demand-Side Platform):広告主側の広告効果最大化を支援するプラットフォーム)
―― なるほど、システムの効率化に繋がる重要な改修だったのですね。初めての開発は難しかったですか?
いえ、先輩方がかなり丁寧にサポートしてくださったので、スムーズに進めることができました。私の場合はもともとScalaが書ける状態で入社したので、純粋な技術面でのハードルはなかったです。とはいえ、デプロイの手順など、運用周りの社内知識のキャッチアップは大変でした。
―― それは心強いですね!1年間で様々な開発に携わったと思いますが、特に印象に残っているプロジェクトは何でしょうか?
色々ありますが、個人的に印象深いのは「VAST APIサーバー」のScala 3への移行プロジェクトです。VAST(※)は動画広告のリクエストを処理するマイクロサービスで、Scala 2.12で書かれていました。Scala 2.12は徐々にサポートが終了していく可能性が高いため、将来的な保守性を考えてScala 3へ移行する必要があったんです。
(※ VAST (Video Ad Serving Template): デジタル動画広告の標準規格)
このプロジェクトが印象に残っているのは、移行作業について技術ブログ(※)を書いたところ、社外のScalaコミュニティの方々からTwitterなどで反応をいただけたからです。それがとても嬉しかったですね。
(※ https://developers.microad.co.jp/entry/2025/01/31/180000)
―― 社外からも注目されるような技術的な貢献をされたのですね!このScala 3移行は、どのような意義があったのでしょうか?
これは直接的なビジネス改善というよりは、技術的な負債を解消し、将来に備えるためのプロジェクトです。Scala 3に移行することで、新しい言語機能が使えるようになり、開発効率の向上も期待できます。誰かがいつかはやらなければいけない重要なタスクでしたが、幸いにも優先度の高いビジネス案件を早期に終わらせることができ、時間を見つけることができたので、「ぜひやらせてください」と自ら手を挙げました。
―― 自ら手を挙げて挑戦されたのですね。プロジェクトを進める上で、小林さんの役割や担当範囲はどのように決まっていたのですか?
基本的に、マイクロアドでは案件ごとに開発担当者が割り振られ、その担当者が設計、開発、テスト、リリースまで一貫して責任を持つことが多いです。もちろん、入社直後は、先輩に設計段階での仕様策定などは手伝っていただきましたが、徐々に全て自分で担当するようになりました。
最近では、インフラコスト削減のために、アプリケーションのデプロイを工夫してサーバー台数を削減するプロジェクトに取り組んでいます。これにはインフラチームとの連携が必要なため、複数名(4名程度)でミーティングを重ねながら進めていますが、その中でも自分の担当であるアプリケーション領域での開発については、仕様策定から実装まで責任を持って進めています。
乗り越えた壁と成長実感。スピードと品質の両立を目指して
―― 新卒として初めて本格的な業務開発に携わる中で、最も挑戦だと感じた点は何でしたか?
いくつかありますが、一つはチーム開発における「暗黙知」への対応です。例えば、基本的な運用ルールはドキュメント化されていますが、例外的なケースや細かいニュアンスの汲み取りが必要な場合などでは、やはり経験豊富な先輩に口頭で聞かないと分からないことが多いんです。したがって、忙しそうにしている先輩にも、変に遠慮して気後れせず、勇気を出し聞きに行く姿勢が必要だと感じましたね。
もう一つは、研究とビジネスにおけるソフトウェア開発の違いです。ビジネスは変化のスピードが速いので、品質、開発のしやすさ、納期など、様々な要素のバランスを取りながら、最適な落とし所を見つけて開発を進める必要があります。つまり、研究のように論理の緻密さを重視してじっくり時間をかけるのではなく、曖昧性を許容しながらスピード感を出すことが求められる。この切り替えには少し苦労しました。
―― スピードと品質のバランス、難しいですよね。特にドメイン知識(広告業界の知識)が必要な案件は大変だったのでは?
そうですね。広告のドメイン知識が深くないと理解が難しい案件を担当した時は、社内のドキュメントを読み漁っても分からず、先輩に何度も質問しに行きました。最近だと、「UNIVERSE Ads ※」における広告配信のターゲティングで使われたデータをログに記録する開発をやっています。その際に、何をもって「ターゲティングで使われた」とするかを仕様設計段階で明確に定める必要があるのですが、それに伴っている複雑な仕様・実装になっている既存の3種類のターゲティングを同時に理解する必要があり、納期までに全てを把握するのが大変でしたね。当然、セグメント、デモグラフィック、サイコグラフィック、ビヘイビアルという用語は、案件に着手するまでは全く聞いたことがなかったです。
※UNIVERSE Ads:マイクロアドが提供する広告配信プラットフォーム(DSP)
―― 専門知識を短期間で吸収しながら開発を進めるのは、かなりのプレッシャーだったかと思います。どのように乗り越え、モチベーションを維持しましたか?
難しい仕様や大きな案件ほど、「これをやり遂げれば自分の実績になる」という明確な目標があったので、モチベーションには困りませんでした。エンジニアとして成長したい、という気持ちが原動力になっていたと思います。
―― この1年間で、技術的に最も成長したと感じる点はどこですか?
やはり、ビジネスのスピード感に対応しながら品質を落とさずに開発を進めるためのタスクマネジメント能力は格段に上がったと思います。つまり、全体のバランスを見て、効率的かつ着実にプロジェクトを前に進められるようになってきたと思います。また、自分だけが分かるコードではなく、チームメンバーが読みやすく、メンテナンスしやすいコードを書く意識も高まりましたね。
風通しの良いチームと「楽しんでやる」文化
―― チームの雰囲気や、周りからのサポートはいかがでしたか?
マネージャーの中野さんや酒井さん(※)をはじめ、チームメンバーは皆さんとても話しやすいです。定期的に1on1面談もありますし、普段から気軽に質問や相談ができる雰囲気なので、非常にやりやすい環境だと感じています。
(※ https://www.wantedly.com/companies/microad_recruit/post_articles/940168)
―― マイクロアドの開発チームには、どのような文化があると感じますか?
まず、「やりたい」と手を挙げれば、基本的にやらせてくれる文化があると思います。もちろん、それに見合う能力と信頼を事前に示す必要はあると思いますが、挑戦を推奨してくれる環境です。
また、個人的に特徴的だと感じるのは、「楽しんでやる」という文化ですね。システム開発部の役員の坂田さん(※)も「変化を楽しむ力が大事だ」とよく言っていますし、若い社員が多いこともあって、和気あいあいと、前向きに仕事に取り組む雰囲気があると思います。
(※ https://www.wantedly.com/companies/microad_recruit/post_articles/904634)
2度のMVP受賞と、その先の目標
―― 無事に機能がリリースされた時の、率直な感想を教えてください。
最初の方は毎回緊張しましたね。リリースはビジネスに直接影響するので、「失敗したらどうしよう」と。リリースボタンを押すだけなのですが、全サーバーに無事反映されるまで、ずっとモニターとにらめっこしていました。「全部にリリースできた、よかった!」と、ほっとしたのを覚えています。
―― この1年の経験を経て、ご自身のエンジニアとしての自信や考え方に変化はありましたか?
大きな案件をやり遂げたことで、自信はもちろんつきました。考え方の変化としては、先ほども触れましたが、ビジネスの状況やチーム全体のことを考えた上で、バランスの取れた開発をすることの重要性をより強く認識するようになりました。
―― 今後の目標や、挑戦してみたいことはありますか?
現在の業務の大半は既存システムの改修に関するものですが、今後はある程度規模の大きなサービスをゼロから設計して実装する経験を積んでみたいです。
また、キャリアの方向性としては、マネジメントというよりは、技術を突き詰めるスペシャリスト、いわゆるIC(Individual Contributor)の方向に進みたいと考えています。
―― そして、2024年12月には月次MVPを受賞されました。おめでとうございます!受賞を知った時の気持ちと、ご自身ではどのような点が評価されたと考えているか教えてください。
ありがとうございます。実は、配属直後の7月にも一度MVPをいただいているんです。その時は、配属後すぐに複数の案件でパフォーマンスを出せた点を評価していただけたと聞いています。自分の技術力が認められたようで、安心しました。
12月の受賞は、Googleの広告配信プロトコル変更への対応プロジェクトが評価されたものです。Googleはこれまで独自のプロトコル(Authorized Buyer RTB)を採用していましたが、業界標準のOpenRTBに移行するという大きな変更があり、それに伴って弊社のDSPでGoogleと接続している部分でのシステム改修を担当しました。これは3〜4ヶ月かかる大規模なプロジェクトで、技術的にも難易度が高く、納期も厳しかったので、やり遂げた時は「さすがに評価してもらえるかな」と思いつつ、まずは無事に完了してほっとした、というのが正直な気持ちです(笑)。
―― 大規模プロジェクトを成功に導いたことが評価されたのですね。MVPという形で成果が認められた経験は、小林さんにとってどのような意味がありましたか?
やはり、実績を出すことで社内での信頼が積み重なり、より難易度の高い、大規模な案件を任せてもらえるようになったと感じています。「小林くんなら大丈夫だろう」と思ってもらえるようになったのかなと。ちゃんとやれば評価してもらえる、という実感は、仕事へのモチベーションにも繋がっています。
未来の仲間に向けたメッセージ
―― 最後に、エンジニアを目指す学生さんへ、就職活動やこれからのキャリアに向けてアドバイスをお願いします。
エンジニアの就職活動では、多くの場合、最初にコーディング試験があります。まずは、この技術スクリーニングを突破することが重要なので、基本的なアルゴリズムやデータ構造を用いたコーディングに関しては、普段からしっかり身につけておくことをお勧めします。僕自身は研究などで自由にコードを書きながら学んだタイプでしたが、LeetCodeなどのコーディング試験学習サイトを活用すればもっと効率よく対策できたように思います。
コーディング試験を突破したら、次は面接です。面接では、自分がその会社にどのような貢献ができるかをアピールすることが大切です。自分の強みや経験を整理し、自信を持って伝えられるように準備しましょう。頑張ってください!
【編集後記】
インタビューを通して、小林さんの高い技術力はもちろん、課題に対して真摯に向き合い、周囲と協力しながら着実に成果を出していく誠実な人柄が伝わってきました。新卒1年目とは思えないほどの活躍ぶりは、休日も自己啓発に充てるほどの本人の努力に加え、マイクロアドの「挑戦を応援し、成長を支える文化」が後押しをしていると感じます。「楽しんでやる」という言葉通り、難易度の高い課題にも前向きに取り組む小林さんの姿は、まさに「シゴトでココロオドル」を体現しているのではないでしょうか。今後の更なる活躍から目が離せません。