最年少でGoの「Next Experts」就任。新卒2年目エンジニアが、社内外でリーダーシップを発揮できる理由

技術・デザイン

当社には、特定の分野に抜きん出た知識とスキルを持ち、第一人者として実績を上げているエンジニアを選出する「Developer Experts制度」があります。その次世代版である「Next Experts」として選出した12名のエンジニア※は、各専門領域において培った知見をサイバーエージェントグループ全体に還元すべく、技術力の向上に努めています。

今回話を聞いたのは、2022年に新卒入社し、現在AI事業本部にてサーバーサイドエンジニアを務める渋谷です。入社して約1年でGoにおけるNext Expertsに選出された渋谷ですが、史上最年少での就任を目指して、社内外で様々な努力を重ねてきました。地道な努力の原動力は何なのか、詳しく聞きました。

※2023年8月現在

Profile

  • 渋谷拓真
    2022年新卒入社。Goにおける当社Next Expertsであり、AI事業本部 協業リテールメディアディビジョン所属のサーバーサイドエンジニア。広告配信システムのサーバー開発を行うほか、エンジニアのための開発支援にも取り組んでいる。

「きれいなコードを読むのは、小説上のきれいな文章を読むことに通じる」プログラミングに没頭した理由

── 学生時代から積極的にプログラミングに取り組んでいたのでしょうか?エンジニアを志し、Goを極めたいと思ったきっかけについて教えてください。

大学は文学部フランス学科だったので小説ばかり読んでおり、その他はバンド活動に励んだりとプログラミングとは無縁の日々を過ごしていました。そんな中コロナ禍によりバンド活動ができなくなったため、「最近流行っているし、手元にMacがあるからプログラミングでもやってみようか」とふと思い立ったのがきっかけです。その後オンラインの某プログラミングコミュニティに参加し、プログラミングを始めると、次第に時間を忘れて没頭するようになりました。情報系の同級生は周囲にはいませんでしたが、プログラミングがとにかく楽しかったので、自分1人でも学び続けられました。

やがてシステムの裏側を開発する面白さに気付き、サーバーサイドエンジニアを志す中でたまたま参加した初めてのインターンシップが、サイバーエージェントの「CA Tech Dojo Go編」でした。それ以前はGo以外の言語ばかり触っていたのですが、このインターンシップでGoの魅力に目覚めました。Goを極めたいと思った大きな転機は2つあって、1つ目は学生ながら「Go Conference」に登壇できたこと。2つ目は、内定者時代に自ら企画して、Goの仕様書を読む会を主催したことです。毎週他の内定者たちと仕様書を読み進めながら、疑問点は実際にコードに書いたり、皆で議論することで理解を深めていきました。

── Goの魅力は何だと思いますか?

あくまで個人的な意見ではありますが、Goは学問に向いている言語だと考えています。Goを理解したいと思い学び続けていると、コンピュータサイエンスの知識がないと分からない領域が出てくるんです。自分は情報系学部出身ではないので、Goを学びながら、コンピュータサイエンスの知識も身につけられる点に大きな魅力を感じています。

また、GitHubのissueで、仕様への疑問点や新たな機能の提案をフィードバックすると、制作者から「過去にそのような議論があった」と該当の議論を示すリンクを送ってもらったことが何度かありました。加えて、自分自身でProposalやissueを読み進めていくと、Goの後方互換性を担保した新たなAPIの導入や、syntaxの決定をかなり前に行っていたことが分かりました。既にその時点で、今後生じうるリスクや将来的な拡張性に気付いていることに驚きました。Goの制作者たちは新たな機能を導入する際にかなり慎重な判断を行っています。それまでの議論を見れば、なぜこのタイミングで機能追加を行ったのか深く納得できる、その信頼できる姿勢も魅力の1つです。

── エンジニアとして働く上で、情報系学部出身ではないことにコンプレックスを感じることはありますか?

コンピューターサイエンスやそれに準ずる学問を学ぶという点では、確かに情報系学部出身の方のほうが習得しやすいとは思います。ただ、意欲さえあればこれらを学べる環境は多くあるため、私自身は特にコンプレックスを感じたことはありません。

また、文学部出身のため、プログラミングを学ぶこと自体が難しかったのでは、とよく聞かれます。でも個人的に感じるのは、プログラミング言語も結局のところ “言語” なので、語学を学ぶスタンスと重なる点が多いこと。きれいなコードを読むのは、小説上のきれいな文章を読むことに通じると考えています。一見エンジニアとは何のつながりもない文学部で培った学びの姿勢が、楽しくプログラミングを習得するのに大いに役立ちました。

── 所属部署でこれまでどのような役割を担ってきたのでしょうか?

協業リテールメディアディビジョンにおいて、広告配信を行うためのDSPをゼロから開発したほか、リリース直前のパフォーマンスチューニングを1人で行い、基準を満たすパフォーマンスにまで改善しました。また、他社との協業プロジェクトのため、外部システムと連携して行うポイント付与システムを開発しました。業界的には手動で行う会社もまだ多いと思うので、所属プロジェクトにとって大きな貢献になったと考えています。

好きで続けてきたことが、「Next Experts」に全て繋がった

── 入社時に、1年目でNext Expertsに就任することを目標にしていたと聞きましたが、その理由を教えてください。また、選出されるために具体的にどのような実績を積み上げてきたのでしょうか?

本当はDeveloper Expertsを志したいと思っていたものの、まずは史上最年少である新卒1年目でのNext Expert就任を目指すことにしました。Goが何よりも好きなので、自分がGoを極めていると社内外に言える状態をつくるには “22卒の渋谷” よりも “Next Expertsの渋谷” の方が、周囲の方々にとってさらに納得感があるのではと個人的に考えたからです。

選出されるために1年間様々な活動に取り組んだのですが、社内ではGoに関する勉強会や採用イベントなどは全て運営メンバー、もしくは講師として関わることを心掛けました。当社主催のGoに関する勉強会「CA.go」では徐々にリーダーを務める機会も増え、AI事業本部内の社内勉強会「ai.go」も主催しています。
AI事業本部内で実施した新卒エンジニア向け勉強会では長時間の講義を受け持ち、資料も自ら作成しました。社外にも公開したところ、多くの反響をいただき、とても嬉しかったです。

新卒エンジニア向けの社内勉強会「CA 1Day Youth Boot Camp」にてGoの講義を行った際に、渋谷が作成した資料。
X(Twitter)上で500件以上の「いいね」を集める反響があった

また、所属チームが1年目の自分にも大きな裁量を持たせてくれるチームであったことが、Next Experts就任を後押ししたと感じています。2022年6月ごろに立ち上がった新規プロジェクトなのですが、私が参画すること、そして新たな挑戦をしたいということで、AI事業本部内の広告配信としては初めてGoを採用することを上長が決断してくれました。自分自身、上長や環境にとても恵まれていると思います。
事業部内で事例がないため、決められた期間内でゼロからGoで書くこと、そして既存システムと同等のパフォーマンスをしっかり担保できるかという点は正直不安もありました。ただ、推奨されているGoの書き方をある程度守りつつも一部は自分なりに工夫したり、パフォーマンス向上のためにGoのパッケージへの理解をさらに深めたことで、無事ゼロからDSPを開発することができました。配属後のこれらの経験が、自分自身の成長にも大きくつながったと思います。

さらに、社外での活動としては、大学4年から毎年「Go Conference」に登壇し、運営にも携わっています。今後は主要メンバーの1人として、これまで以上に深く運営に注力する予定です。

── Next Expertsとして、自身が培ったGoの知見をグループ全体にどのように貢献していますか?

2023年7月に開催した、学生向けの「1day技術ワークショップ ~Deep Dive into Go~」で講師を勤めましたが、嬉しいことにサーバーサイドに関する勉強会においてこれまでで過去最高の応募者数がありました。また、3ヶ月間の特別育成プログラム「Go Academy」の最終審査も担当させてもらいました。
ワークショップ等で学生と話していると「目標です、憧れています」といった言葉をもらう機会もありました。自分が好きで続けてきたことがNext Expertsという結果につながり、学生にそのように感じてもらえることが嬉しく、もっと頑張ろうと思えました。

さらに、継続的デリバリーシステム「PipeCD」を活用する上で感じた課題を解決するため、他チームに所属するメンバーと共に、インナーソースとして「Terraform Provider」を開発しました。サイバーエージェントグループらしく、所属部署の垣根を超え、互いに知見を共有しながら開発に取り組めました。

また、Goで非常に有名なライブラリのメンテナーを務めているのですが、私が追加した機能「containedctx」は当社のプロダクトでも活用されています。

── 最後に、今後の目標を教えてください。

少なくとも3年以内には、Developer Expertsに就任するのが目標です。
現状、Goの機能や仕組みへの理解には自信を持っていますが、これらを活かした実践的なプラクティスや技術力の向上についてはNext Expertsの威厳を守るためにも、もっと努力する必要があると考えています。そのためには、自分が強く興味を持っており、Goが多く活用されているクラウドネイティブの分野で頑張りたいです。具体的には、KubernetesをはじめとしたOSSへの積極的なコントリビュートのほか、KEP(Kubernetesに対する新機能の提案)を行えるレベルにまで力をつけたいです。KubernetesにおけるDeveloper Expertsの青山が所属するCIU(CyberAgent group Infrastructure Unit)に今後異動するため、クラウドネイティブの知識とスキルをしっかり身につけたいと考えています。

また、Goにおいては、自分の考えた機能を1つGo本体に導入することが今の目標です。さらに「Go Conference」の主催をはじめとして、Goの日本語コミュニティをさらに盛り上げていきたいと考えています。これまでのようにGoを楽しみながら、社内外の活動を通じてNext Expertsとして会社に貢献していきたいです。

この記事をシェア

オフィシャルブログを見る

記事ランキング

未来のクリエイターへ贈る実践的カリキュラム!日藝×サイバーエージェントが仕掛ける、学生の未来を拓く産学連携

技術・デザイン

~クリエイターのビジネス視点を育む講座「芸術総合講座Ⅳ コンテンツビジネス実務」レポート~

Page Top