Mercari Engineering Blog

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

SXSW 2018に参加してきました #MBSSXSW

R4DでXR領域を担当している @ikkou です。最近はバーチャルSHOWROOMERの #東雲めぐ に注目しています。

昨年末、Mercari Advent Calendar 2017 20日目の記事として「Mercari BOLD Scholarship をはじめる話」を書きました。

tech.mercari.com

その後、書類選考と面接を経て5名の学生が選ばれ、メルカリメンバーと合わせて総勢10名以上で、現地時間の3月9日から16日にかけてアメリカはテキサス州のオースティンで開催されたSXSW 2018に参加してきました。

続きを読む

Go Conference 2018 Spring スカラーシップのご案内

こんにちは。 ソウゾウでエキスパートチームに所属している@tenntennです。

4月15日にプログラミング言語Goの日本最大のカンファレンスであるGo Conferenceが開催されます。 メルカリでもスカラーシップという形でGo Conferenceに関わらせて頂いています。 そこで、この記事では今回行う予定のスカラーシップについてのご案内をさせていただきます。

Go Conference 2018 Spring - connpass

スカラーシップを行う背景

Go Conferenceは毎年2回開催され、今回で10回目の開催となります。 毎回多くの方に注目を頂いているカンファレンスですが、東京で開催されるため関東圏に住んでいない方には、なかなか参加しづらかったのではないでしょうか。 全国各地でGoの技術イベントが開催され、各地の技術コミュニティが盛り上がって来る中で、メルカリとしても何かお手伝いできないかと考え、旅費や交通費をサポートするスカラーシップはどうだろうかという話になりました。 また、特に需要があるであろう学生のみなさま向けが良いのではないかと考え、学生向けのスカラーシップを行うことになりました。

募集要項

募集資格

  • 日本国内に在住の方
  • 関東圏以外にお住まいの方(参加にあたって飛行機や新幹線を使う必要のある方)
  • 2018年4月15日時点で学生の方
  • 博士、修士、学部、学年不問(高専生、高校生歓迎)

募集人数

  • 最大4名

期間

  • 4月15日(日) 〜 4月16日(月)
  • 1泊2日(前泊が必要な場合はご相談ください)

サポート内容

  • 交通費・宿泊費(合わせて上限5万円)
  • Go Conference 2018 Springへの参加

オフィスツアー

4月16日(月)のお昼にメルカリ東京オフィスにてオフィスツアーを行う予定です。 また、オフィスツアー後には、メルカリのGoエンジニアと一緒にランチ会を開催する予定です。

選考方法

以下について申し込みフォームに回答してください。 private gistなどに回答して頂き、そのリンクを貼り付けて頂いても問題ありません。 回答内容により選考いたします。 詳細については申し込みフォームをご覧ください。

  • Go Conferenceに参加したい理由
  • Goで開発したプログラムやソフトウェアについての説明

参加レポート

採択された方には、Go Conferenceの参加レポートを書いて頂く予定です。 書いて頂いたレポートは後日ブログなどで公開する予定です。 詳細な形式などは採択後にご案内させていただきます。

応募期限

  • 3月31日 23:59

発表方法

申し込みフォームにて頂いたメールアドレスにてお知らせ致します。

注意事項および免責事項

  • 未成年者の応募には保護者の同意が必要です
  • 参加にあたって授業などを欠席する場合は所属する学校の許可を得て下さい
  • 期間中に発生しましたいかなる事故などによる損害につきましては責任を負いかねます
  • カンファレンス当日に学生であることを確認するために学生証などを提示をお願いする場合があります

申し込みフォーム

さいごに

ぜひ、学生のみなさまには今回ご案内したスカラーシップを利用して頂き、Go ConferenceでさまざまなGoに関する技術やノウハウを吸収して頂ければと思います。 もちろん、発表者として登壇することもオススメします!

ご応募お待ちしております!

メルカリ・ソウゾウ・メルペイでは中途・新卒を問わず一緒にGoで開発して頂けるエンジニアを募集しております!

PHPStanで始めるPHPのための静的解析 #phperkaigi

こんにちは。最近メルペイに異動になった @hiraku です。

2018年3月10日(土)に、PHPerKaigi 2018というイベントで登壇してきました。「PHPStanで始める継続的静的解析」ということで、メルカリで使用しているPHPStanというツールについて解説しました。

phperkaigi.jp

発表内容を短くまとめると

  • メルカリではPHPStanというツールをCIフローに組み込み、PHPコードの静的解析を行ってコードの信頼性向上に努めています。
  • PHPStanはautoloadファイルを解釈し、一部のコードを実行することで解析の高速化を行っており、よくできています。
  • とはいえ、PHPに対して可能な解析に限界はあるので、テストも合わせて行っていきましょう。
    • 大事なのは、品質向上のアプローチが用意され、心配せずにリリースできることです。

autoloadを認識するということ

スライドの中でも触れていますが、"静的"解析ツールにもかかわらずautoloadを解釈するという機能はかなり画期的です。 autoloadを使わずに静的解析をしようとすると、おそらく全部のプロジェクトファイルを読み込まない限り解析ができません。単発で「src/A/B/C.phpだけチェックしたい」というときもsrc配下とvendor配下全部のファイルを読み込むことになり、非常に時間がかかります。

autoloadベースで読み込むと、不要なファイルは読み込まなくなるため、解析速度が向上します。ちょうど、Makefileが依存関係を辿って、必要な部分だけビルドするようなイメージに近くなります。(Phanというツールはautoloadを解釈しませんが、プロセスを常駐する機能があり、そこで高速化を図っているようです)

プロジェクトがcomposerベースでなくても、独自のオートローダーを書いて読み込ませてもいいですし、何なら全PHPソースをrequire_onceしているファイルを一個作ってオートローダーとして読み込ませても構いません。 設定の柔軟さという意味でも、autoloadは素晴らしいと思います。

続きを読む

CREチーム始めました

こんにちは!メルカリでサーバーサイドエンジニアをしている @bravewoodと申します。 このPostでは、最近できた「CREチーム」について紹介します。

CREとは

CREはCustomer Reliability Engineering(顧客信頼性エンジニアリング)の略で、Googleが提唱した専門職です。

メルカリには従来CXI(Customer Experience Improvement:顧客体験改善)と呼ばれるチームがあり、このチームが、お客さまからのお問い合わせなどを通した顧客体験を改善するという業務を行ってきました。

新たにできたCREチームは、このCXIチームを内包し、「負の顧客体験の解消」という意味だけではなく、「顧客の信頼性向上」という部分にも着目した様々な活動を行う新たな専門チームとなります。

これは例えるなら、メルカリのSREチームがサイトの信頼性にフォーカスするという形で従来インフラチームという名前から発展を遂げた事例と似たような視点であると考えることができます。

f:id:bravewood:20180221145311p:plain

CREチームの意義

最近は報道等でメルカリが取り上げられることも増え、メルカリの社会に対する影響は益々高まっています。 メルカリがこのように皆様に広くご認識いただいた理由の一つは、やはり、「安心・安全」な取引が手軽に行えるということだと思っておりますが、これを支えているのはメルカリのカスタマーサポートチームです。

カスタマーサポートチームが日々業務に使う「CSツール」と呼ばれる内製ツールはメルカリのアプリに合わせて様々なサポート業務が行えるように作られております。メルカリを使っていてわからないことやトラブルになった場合にはお客さまがアプリ内からお問い合わせを行います。するとCSツール上にはお問い合わせの内容とお問い合わせの種類に基づいた付随する情報が画面に表示され、これをもとにカスタマーサポートチームが素早く正確にお問い合わせへの返信や場合によっては返金なども含めた対応を行うことができます。

CREチームの前身であるCXIチームは、このCSツールを改善するというのが主なミッションでした。

一方で、アプリ本体の改善は別チームが担当しており、お客さまがアプリに対して感じた「わかりにくい」、「使いにくい」、「トラブルがあった」など負の顧客体験部分を解消するためのアプリの修正はCXIチームで見ておらず、あくまで、CSツールの改善によってお客さまのお問い合わせを通した顧客体験を改善するという限定された範囲しでしか影響を与えることができませんでした。

真の意味で「安心・安全」な取引を実現し、お客さまにメルカリというサービスを「信頼」していただくためには、「そもそもお問い合わせが発生しない」ような、アプリの使いやすさの改善であったり、トラブルなどにつながる商品を自動発見しマーケットを健全化するためのモニタリングツールの開発など、CSツールの改善以外のアプローチも重要になってきます。これら両面からのアプローチを包括的に行う専門チームが必要との認識から、われわれは新たにCREチームを設立し、今後の重要な領域として運営していきます。

Tech Talkを開催します

われわれCREチームが行っている各種施策については、AIやMicroservicesなどの新しい分野も積極的に取り入れて行っています。 もし、これらの技術的なお話も含め、新しいCREチームがどのようなものか聞いてみたいという方がいらっしゃれば、是非とも3/22(木)にメルカリ六本木オフィスで行われるTech Talkイベントへお越しください!

mercari.connpass.com