Mercari Engineering Blog

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

Advent Calendar

メルペイCTOと考える新しい経済学とエンジニアリング

12月1日にhidekさんの記事から始まったメルペイアドベントカレンダーも今日で最後です。締めくくりを私(@sowawa)が務めさせていただきます。私からはメルカリやメルペイの振り返りと「新しい経済学とエンジニアリング」の話をしたいと思います。 はじめに …

機械学習における解釈性について

こんにちは。Merpay Advent Calendar 2019 の24日目は、メルペイ Machine Learning チームの @yuhi が機械学習における解釈性についてお送りします。 機械学習における解釈性とは なぜ解釈性が必要なのか 1. サービスを提供する事業者としての説明責任 2. 推…

Sign in with AppleをCLIでも使いたい

Merpay Advent Calendar 2019 の 23日目は、IDPチーム の @kokukuma がお送りします。 はじめに Sign in with Apple(以降、SIWA)、コマンドラインツールでも使いたくありませんか?使いたいですよね?わかります。特定のAppleID持っている人じゃないと使え…

より良いコードレビューをするために気をつけていること

Merpay Advent Calendar 2019 の22日目は、メルペイスマート払いチーム/Backend Engineer の @oinume がお送りします。今日はコードレビューについて自分が普段から実践していることを書いてみたいと思います。 はじめに 世の中にはコードレビューをする時の…

メルペイ立ち上げの裏側 - 決済サービス開発のゼロイチ話

はじめに こんにちは。メルペイのPayment PlatformチームでPaymentServiceの開発を担当するエンジニアの @foghost です。この記事は、Merpay Advent Calendar 2019 の21日目の記事です。 3年前、ソーシャルゲーム業界からメルカリに転職してから、幸運なこと…

メルカリアプリのWebView向けWebアプリケーションの開発を支えるモック技術

こんにちは、メルカリでフロントエンドエンジニアをしている @karszawa です。 本日はメルカリアドベントカレンダー2019の21日目の記事として「メルカリアプリのWebView向けWebアプリケーションの開発を支えるモック技術」というニッチ(?)な題目の話をさ…

Fast and robust data transfer to Splunk indexer using custom aggregator for real-time transaction monitoring ⚡

This post of Merpay Advent Calendar 2019 is brought to you by @agro1986 from Merpay AML/CFT team. As explained in our previous articles (1 and 2), Merpay’s AML (Anti Money Laundering) system uses Splunk as its centralized database and rule…

マイクロサービスにクリーンアーキテクチャを採用する上で考えたこと

Merpay Advent Calendar 2019 の19日目は、Backendエンジニアチームの @toshinao がお送りします。 新しくマイクロサービスを立ち上げる機会があり、クリーンアーキテクチャをベースにしました。クリーンアーキテクチャはバックエンド・フロントエンド・アプ…

メルペイ Android のアーキテクチャとテスト

こんにちは。Merpay Advent Calendar 2019 の18日目を担当する、メルペイ Android チームの @KeithYokoma です。 前回の記事ではマルチモジュール構成なプロジェクトにおける画面遷移の実装について、簡単な設計の方針から解説しました。 今回の記事では、メ…

メルペイエキスパートチームの取り組み〜人類Gopher化計画の進捗報告〜

Merpay Advent Calendar 2019 の17日目は、メルペイ エキスパートチームの @tenntenn がお送りします。 筆者が所属するエキスパートチームでは「アウトプットをするところに技術は集まる」という考えのもと、工数の50%以上を技術コミュニティへの貢献に充て…

リモートのデータ取得のためのフックライブラリの SWR を使ってみる

こんにちは。Mercari Advent Calendar 2019 の 17 日目は Web UX Team 所属の @lightnet328 がお送りします。 どのようにリモートのデータを取得して管理するかは SPA 構成の Web フロントエンドにおいて大きなテーマの 1 つだと思います。最近では Apollo C…

メルペイ iOS にスナップショットテストを導入した話

Merpay Advent Calendar 2019 の16日目は、メルペイ iOS チームの @akifumi がお送りします。 メルペイ iOS の品質向上を目的に、スナップショットを用いたテストを行うことができる iOSSnapshotTestCase を導入した話について記載します。 目次 iOSSnapshot…

Rate Limiting Bank Transfers

The 15th day’s post of Merpay Advent Calendar 2019 is brought to you by Robert, a Backend Engineer @ Merpay. Hi, I already talked a little bit about how we have different challenges facing us in my previous post. tech.mercari.com Apart fro…

Maintain SLO 〜俺たちのSLOはこれからだ!〜

Merpay Advent Calendar 2019 の14日目は、メルペイSREチームの@Tがお送りします。 本記事では、メルペイSREチームのSLO運用状況について、紹介いたします。 メルペイリリース前 去年のAdventCalendar 2018で、メルカリのWeb MicroservicesにおけるSLI/SLOに…

メルペイの社内向け管理画面を振り返る

Merpay Advent Calendar 2019 の 13 日目は、メルペイフロントエンドチーム の @tanakaworld がお送りします。 メルペイの管理画面は 2019 年 2 月のサービスローンチに先立ち、2018 年 11 月にリリースされました。私は 2018 年 8 月に入社してから一貫して…

Specifying Kotlin tests with Spek

The 12th day’s post of Mercari Advent Calendar 2019 is brought to you by @kinnerapriyap from the US@Tokyo Android team. Writing unit tests usually means having to suffer through a lot of boilerplate code. I’m guilty of sometimes writing te…

メルペイのQRコードスキャン機能(QRScanner)を、OSSにしました

Merpay Advent Calendar 2019 の12日目は、 Merpay iOS チームの @hitsu がお送りします。 目次 QRScannerとは OSS開発の背景 QRScannerの特徴 使い方 基本な使い方 カメラのアクセスを許可 QRScannerの導入方法 CocoaPodsを使う場合 Carthageを使う場合 カ…

メルカリ・メルペイの社内勉強会についての簡単なご紹介

こんにちは、syumaiです。 本記事は Merpay Advent Calendar 2019 11日目の記事です。 今回は、私自身の日常として参加しているいくつかのメルカリ・メルペイの社内勉強会について簡単に紹介させていただこうと思います。 自己紹介 2016年に新卒でスタートア…

メルペイのキャンペーンを支えるサンタの秘密

Merpay Advent Calendar 2019 の10日目は、 メルペイ サンタチームのバックエンドエンジニアの @execjosh がお送りします。 弊社のキャンペーンを支えるサンタの仕組みについて少しご紹介します。 背景 サンタのアーキテクチャ 他マイクロサービスから受信し…

Datadog Dashboard at Scale w/ Terraform

こんにちは。株式会社メルペイSREチームの@kekeです。 Merpay Advent Calendar の9日目の記事です。 本記事ではスケーラブルなDatadogモニタリングシステムをTerraformによって実現した方法を紹介します。 はじめに すでに多くの発表があるのでご存知の方も…

バッチコマンドをテストしやすいようにリファクタリングする

Merpay Advent Calendar 2019 の8日目は、メルペイ backend payment platform チーム の @knsh14 がお送りします。 はじめに 私はメルペイでお客様の残高を管理しているマイクロサービス(以下Balance Service)の開発を担当しています。 Balance Serviceは次…

Write Your Own Go Linters with Parser Package

This is the seventh post of Merpay Advent Calendar 2019 from Adler, Backend Engineer in Payment Platform team at Merpay. What's a Linter? Why Do I Need One? Linters are tools that help to improve code readability, consistency, and maintain…

メルペイQAの今と未来と私の日常

Merpay Advent Calendar 2019 の6日目は、QAエンジニアチームの @miisan がお送りします。 メルペイは2019年2月にサービスを開始しましたが、これまでメルペイの品質保証(= Quality Assurance. 以下、QA)の話を公に発信したことはほとんどなく秘密結社のよ…

メルペイ社内ツールのお話

Merpay Advent Calendar 2019の5日目です。 メルペイ社内ツールのお話をしようと思います。 “個人事業主の集まりかよ”と評されることもある、メルペイソリューションチームの一員である、vvakameさんが開発・管理しているツールやシステムの紹介をします。今…

マルチモジュールなプロジェクトにおける画面遷移の実装

Merpay Advent Calendar 2019 の4日目担当は メルペイ Android チームの @KeithYokoma です。 Android アプリ開発ではこれまで、画面を構築するためのフレームワークとして Activity と Fragment があり、画面遷移もそれぞれに異なる API を使って実装してい…

メルペイで使っているBottomHalfModalをOSSにしました

Merpay Advent Calendar 2019 の3日目は、 Merpay iOS チームの @masamichi がお送りします。 メルペイで使っているBottomHalfModalというUIをOSSにしました。このOSSの紹介と中身の実装について紹介します。 github.com 目次 BottomHalfModalとは 使い方 内…

Web パフォーマンスのための HTML 最適化

Merpay Advent Calendar 2019 の2日目は @1000ch (id:hc0001) がお送りします。この記事は2019年11月16日に福岡で開催された Frontend Conference Fukuoka 2019 のセッション、HTML Optimization for Web Performance の書き起こし記事です。 docs.google.co…

メルペイ VPoE による2019年の振り返り

こんにちはこんにちは。前回のブログでお知らせしたとおり、Merpay Advent Calendar の1日目を、メルペイ VPoE の @hidek がお届けします。 はじめに 2019年もあっという間で、12月を迎えて終わろうとしています。ということで、メルペイとしての2019年を振…