私がメルカリ・メルペイのインターンで学んだこと

はじめまして。現在メルペイでバックエンドエンジニアとして2ヶ月の就業型インターンをさせていただいている@momomです。本記事では、主に私がこのインターンを通して技術的なことや、メルカリ/メルペイという組織に関して学んだこと、自分自身がどのように成長できたかについてお話できればと思います。

本記事は、Merpay Tech Openness Month 2021 の19日目の記事です。

インターン前に期待していたこと

  1. Goを使った実践的なサービス開発を学ぶ

  2. マイクロサービスアーキテクチャやgRPCなど自分にとって新しい技術の吸収

  3. 組織理解

私は元々Goを使用した企業でのサービス開発にとても興味がありましたが、これまで機会がありませんでした。なのでGoを全面的に採用し開発を行っているイメージのあったメルペイで、どのように開発/運用をされているかこの機会に沢山学べたら良いなと考えてました。 また、メルカリ/メルペイではマイクロサービスアーキテクチャとそのサービス間のやりとりにgRPCを採用していますが、これらの技術を始めとした新しい技術を吸収したかったというのもあります。 組織の理解という点では、会社の体制やカルチャーについてをこの機会に体験したいと考えていました。

実際に学んだこと

インターン中、私の在籍していたチームではインターン生であっても社員の方と同様にタスクを割り振っていただき開発を進めました。なので自然と実践的なGo開発を学ぶことができたと思います。沢山のチームがありながらGoのシンプルで統一性のある書き方の恩恵を受けて、他のチームのコードも比較的理解が早くできました。

マイクロサービスアーキテクチャやgRPCといった技術も初めて触れました。一番驚いたのはマイクロサービスの数でチーム内だけでも8つも運用されていたことです。これだけのサービスがあるにも関わらず、適所に自動化されたワークフロージョブやエンジニアの方の高い技術力によって運用されていました。

開発サイクルについていくつか学ぶことができました。例えば、私は今まで比較的モノリシックなアーキテクチャしか体験したことがなかったので、各サービス間のデータシリアライズに採用されているProtocol Buffersについては、定義ファイルでAPIの定義さえ決めておけばサービスごとに開発ペースを調整でき、開発サイクルを早められる点がとても良いと感じました。実際にチームでは週一回のペースでリリースを行っており、お客さまや加盟店さまに素早く価値を届けられる仕組みになっていました。

組織に関しては、それぞれのバリューを体現されている方が多いと感じました。例えば、同じチームの@micchieさんが社会人をされながら大学院に入学されていて、Go Boldだと感じたり、Be a Proのバリューに関しては、技術的な面に関してはもちろんインターン前から抱いていたイメージ通りエンジニアの方々は技術力が高くプロフェッショナルさを感じました。また実際にインターンをしてみてエンジニア以外の様々な職種の方と交流したり話を伺える機会もあり、それらを通して、その方々のプロフェッショナルさも感じることができました。それぞれの職種の方が、メルカリ/メルペイのプロダクトをどのように良くしていけばよいか日々主体的に考えられていることを感じることができました。 そしてAll for oneに関しては、一番良い意味でのギャップを感じました。インターン前は大人数での会議などは特に一部の方が発言をされて場が進行されていくイメージを勝手に抱いていました。しかし、全体定例や各所属、各ポジションの定期的に行われているミーティングのいずれも皆さん積極的に肯定的な意見だけでなく否定的な意見であっても建設的に議論をされていて、非常にその姿が印象的でした。

自分自身の成長

今回のインターンで私自身技術力の向上も成長したと感じましたが、一番の収穫は自分自身の積極性が高くなったことだと思います。みなさんの技術やプロダクトに対する積極的な姿勢をみて、自分もより知識を吸収し、なにかアウトプットしてみたいと思うようになりました。メルカリ/メルペイではインターン生であってもOKRを設定し、その目標に向かって取り組むことができます。私は今回OKRのひとつに「Go製のOSSに貢献する」を掲げていました。その結果今まで以上に本や文献を読むようになったり、今まで壁に感じていたOSSへのコントリビューションをいくつか行ったり積極的に行動することができ、バリューを発揮することができました。これからもこの機会に学んだことを大切にしながら、インターン中に出会った高い技術力を持つエンジニアの方々を目標にがんばります!