Mercari Engineering Blog

We're the software engineers behind Mercari. Check out our blog to see the tech that powers our marketplace.

Engineering Team in Mercari 2017

Happy Holidays、みなさまいかがお過ごしですか。エンジニアブログでは久々の @sotarok です。こんにちは。 この記事は Mercari Advent Calendar 2017 最終日の記事となります。昨日は Engineering Operations Team (EOT) の @jollyjoester から、”技術コミュニティを支援する「Mercari Tech Sponsorship Program」” をお送りしました。

いよいよ最終日となりましたが、今日は私目線で、メルカリのプロダクトと開発組織について、今年起こったことのまとめをお送りします。

メルカリは、昨年12月時点で70名 (海外拠点・ソウゾウ含め) ほどだったエンジニアも、200名を超える規模にまでなってきています。この1年、組織面含め多くのことが起こりました。主だった出来事を、かいつまんでお届けできればと思います。

CTO と VP of Engineering 体制

mercan.mercari.com

いきなり自分の話から入って申し訳ないのですが、今年の4月にこれまで私が CTO として、技術マネジメントと開発組織マネジメントの両方を兼ねる形で担ってきた役割を、技術マネジメントおよびリードアーキテクトとしてのCTO、採用・育成・評価などの組織マネジメントの統括としての VP of Engineering の2つに分ける、ということをしました。上記メルカンの記事はグレーパーカー x デニムに思いがけず注目が集まりました … 🎃

IT系スタートアップが、成長の過程で主要なリーダーの業務を分割していくという1つの事例として良い決断ができたのではないかと思います。

新しいエンジニアリングチームと採用

2017年、メルカリには様々なチームが誕生しました。その一部を紹介します。

Team AI とMLエンジニア

去年〜今年にかけては、あまりにもあらゆるところで “AI” という言葉が飛び交うのをみなさまも聞いたのではないでしょうか。

メルカリにおいても、今年頭には2名だった機械学習を専門とするエンジニアは、10名に近い規模にまでなってきました。

ところで、MLの領域は、ともすれば、「モデルは作れるけど、プロダクトに機能として乗せるのが難しい」領域の1つだと感じていますが、初期にいたメンバーが、専門領域からプロダクト側まで、幅広く見ることのできるジェネラリスト型MLエンジニア (と、勝手に名付けた) であったことは、この領域の専門チームとプロダクト機能の両方を立ち上げる大きな助けになったのではないかと感じています。

同時に、技術系カンファレンスだけでなく、関連のある学会等へのスポンサード・ポスター出展 *1 もこうしたメンバーを中心に活発に行われるようになってきています。

Engineering Operations Team

昨年までも、メルカリのエンジニア採用や組織づくりの面では、HRチームと協力しつつも、エンジニアがフルコミットしてやってきていたのですが、今年はそのチームメンバーであった @kajiken がマネージャーとなり、 “Engineering Operations Team (EOT)” という名前がつけられ、メンバーも倍に (2名体制に!) なった年でした。

EOTは、今後もメルカリのエンジニア採用・技術ブランディング・組織づくりを主導していきますので、こうした領域に興味のあるエンジニアの方は、是非お声がけください。

Security Team

今年メルカリとしてはしっかり振り返らなければいけないことの1つとして、セキュリティに関する大きな障害がありました。

その後メルカリとしては、お客さまに対しての「あんしん・あんぜん」のために、これまで以上にしっかり技術面・体制面から向き合っていく必要があると考え、専任の Security Team を立ち上げました。

Security Team は、特に、自動的にソフトウェアで行うテストやペネトレーションテストの運用といったものだけでない、より専門的な知識を要するビジネスロジックを含むアプリケーションセキュリティの担保していくためにどうしたら良いのかを考えて仕組み・体制化していきます。

海外採用

新卒採用・中途採用含め、メルカリの東京オフィスにも外国籍のエンジニアが非常に増えました (もちろんエンジニアだけではありませんが)。

アメリカ、アジア、ヨーロッパ各地のエンジニアも増えていて、各チームが国際色豊かになってきています。また、来年はインドからの新卒も来日予定で、楽しみです。

こうした、様々な地域からの社員が増えるという変化は、国内の組織・オフィス環境に、グローバル化への意識という意味で良い影響を与え始めています。社内でも英語が自然と飛び交うようになったり、「ダイバーシティ」についてのプレゼンテーションが行われたり、グローバルメンバーが中心となって異文化理解のための社内イベントが行われたり … *2

リージョンごとのソースコードのフォーク

チームの変化に加え、技術面でも様々な決断を行ってきました。

UK アプリリリース

3月にUKアプリがリリースされたことでメルカリの展開するリージョンは3つになりました。

JP、US、UK の3拠点では、各地の提供サービスと開発チームが相互に連携しつつ開発を進めていますが、次に述べるように、クライアント、サーバーサイド共に、状況に応じて、最適な体制は何か考え続け、変化を続けています。

US アプリのリニューアル

これまで、日本向けのアプリをベースとして開発が進められていた、US アプリは、昨年末からフルスクラッチで書き直すプロジェクトが動いており、この4月にAndroid、8月には iOS のリリースが行われ、ついにまったく新しいアプリに生まれ変わりました。

Android、iOS 共に、アーキテクチャも再考され、より開発のスピードと品質の両方を高め、お客さまの求めるユーザー体験をアプリに落とし込んでいくということを進めています*3

サーバーサイドのフォーク

クライアントアプリは、上記の通り、UI面でローカルのPM/デザイナーを中心に組み立てられていることから昨年末にフォークしてJP、US、UKそれぞれで開発をすすめる体制になったものの、ビジネスロジックを提供する処理の大部分をしめるサーバーサイドは、単一ソースコード、かつ、モノリシックなアーキテクチャであったのがこれまでのメルカリでした。

しかし、US、UK が様々なことにトライしたい、という思いがある一方で、JP においても、ソウゾウやメルペイといった様々な新しい取り組みや戦略がある中で、ひとつのソースコードで3つリージョンでサービスを提供することは、メリットよりもデメリットのほうが上回ってきました。

結果、サーバーサイドのソースコードもフォークし、それぞれのリージョンごとの要件にあった開発をしていく、という体制となりました。

マイクロサービス化への舵取り

こうしたソースコードのフォーク、US版メルカリのリニューアルを皮切りに、メルカリのサーバーサイド全体として、マイクロサービスへと舵を切り始めています。マイクロサービスにしていく、というところは実態としては、アーキテクチャの話だけでなく体制面含めた話をしなければいけません。実際、マイクロサービス化の1つの大きな狙いは「オーナーシップの分離」です。

とはいえ、しかし、これだけでも話始めたらクリスマスが終わってしまうので、またの機会に。来年はこれにともなう様々な環境の変化や開発体制の変化についての話題をお伝えできることが増えるのではないかと思います。

Mercari Tech Conf 2017 開催

9/30 (土)、メルカリとしての技術カンファレンス Mercari Tech Conf 2017 を開催しました。

tech.mercari.com 
 初めての試みとして不安と緊張感のある中で、当日はたくさんのお客さまにご来場いただきありがとうございました!

当日のみなさまのフィードバックも、ひとつひとつありがたく読ませていただきました。

togetter.com

来年も、さらに大きく開催できればと思っておりますので、よろしくお願いします。

エンジニアブログ編集長と活性化、そして Advent Calendar

最後に、時系列は前後しますが、実はこのエンジニアブログはこの5月に @b4b4r07 が編集長に任命されました。「いかにアウトプットさせるか」という意識の編集長を中心に、全体のアウトプットが増えた結果、(Advent Calendar を含む、ではありますが) 去年32記事 → 今年93記事 (この記事含む) と、このブログ自体も大きく活性化していくことになりました。 エンジニアブログについての思いは、今年 個人のブログ にも書いた通りなのですが、アウトプットが豊富に行われる開発組織というのは、それだけ多くのインプットが集まっていて、このアウトプットをきっかけにさらに人や組織が動いていく、とても良い状態であると感じています。

Advent Calendar も今年始めての試みですね。ここまでの記事も、どれも非常に読み応えがありますので是非みなさまお読みいただければと思います。(インターンも参加しているという…!)

qiita.com

来年に向けて

思い返してみると、去年の今頃からここまで、あっという間ではありつつも恐ろしく早く時が過ぎているような感覚をもっています。これはひとえにメルカリ自体が大きく変化し続けているということも言えるでしょう。ここ数ヶ月でも、メルカリNOWteachaR4Dメルペイ *4 等の非常に大きな動きが出てきています。

来年もさらに Go Bold な変化を起こして大きく成長していければ、と思っていますので、よろしくお願いいたします。

さて、せっかくなので私自身の決意表明もしておきましょう。

実は現在私は Corporate Engineering Team の立ち上げを行っています。メルカリはこれまで、メルカリのアプリ、ソウゾウでの新規事業、メルペイなど、事業・サービス開発におけるプロダクトチームの構築・そのための採用にフォーカスしてきました。

一方、組織の拡大とともに、人事、労務、法務、経理、総務などといった、コーポレート部門を主管とする業務もそのチームも拡大を続けています。また、プロダクト組織においても、子会社、拠点、新規事業など、多くの人や環境で仕事が行われるということは、それだけ多岐にわたる課題がそこに発生することも意味しています。Corporate Engineering Team は、こうした業務領域にエンジニア目線を掛け合わせて、より効率的に本質的な仕事に打ち込めるようにしていくチームとして、基盤開発から行っています。

さらに言えば、そうしたコーポレート業務だけでなく全社的な目線で見たときに「経営課題をエンジニアリングで解決するためのチーム」と位置づけています。

これまで、CTO、VP of Engineering と、プロダクトと開発組織に向き合い続けてきた私が今、そこにフルコミットする形でチームづくりをしている、というところでメルカリ経営陣 (と私) の本気度を感じていただければと思います。

来年はこうした Corporate Engineering Team からも、面白い話題を提供できる年になれば、と思っています :)

私のチームも全力で最強のメンバーを募集しておりますので、こうした領域に興味のある方は是非ご応募ください :)

さいごに

と、ここまで長きにわたってお読みいただいたみなさま、ありがとうございました。

それでは、みなさま、良いお年を!来年も Happy Hacking!