Mercari Engineering Blog

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

メルカリ社内ドキュメントツールの Crowi を Kubernetes に載せ替えました

最近、SRE になった @b4b4r07 です。今回は、直近のタスクだった社内アプリを Kubernetes に載せ替えた話をします。 前置き メルカリでは全社的 1 に Crowi という Markdown で書ける Wiki アプリケーションをナレッジベースとして採用しています。 site.cro…

NLP若手の会 (YANS 2017) に参加 & スポンサーいたしました

はじめまして。機械学習・自然言語処理エンジニアの@Hmj_kd です。 2017/09/03(日) ~ 2017/09/05(火) にて開催されましたNLP若手の会 (YANS) にて、 スポンサー発表とポスター発表をしてきました! YANSとは NLP若手の会 (YANS) は、Young Researcher Associ…

Souzoh Android Talkを開催しました #SouzohAndroidTalk

Androidエンジニアの @mhidaka です。 先日8月25日(金)にソウゾウ社内においてSouzoh Android Talkを開催しました。 ソウゾウのAndroidエンジニアが注目する技術、プロダクト開発で培ったテクニック、技術的な挑戦についてまとめて発表しました。 今回は、当…

【Mercari Summer Internship】商品画像の色推定を行いました!

はじめまして! Mercari Summer Internship 2017 機械学習エンジニアコースに参加していました上川優太です。 現在は大学院に所属し、機械学習を学んでいます。 レベルの高い環境で成長したい!あのメルカリの社内の雰囲気を感じてみたい!と考え、メルカリの…

Markdown Night 2017 Summer という勉強会が開かれました

connpass.com @magnolia_k_さん主催による、Markdown Night 2017 Summer という勉強会が開かれ、今回メルカリはその第1回目の会場提供をさせていただきました [^1]。 イベントページ公開後から結構な反響を頂いており、期待をしていたのですが、実際に開催し…

Knuth multiplicative hash が最小完全ハッシュ関数であることの証明

こんにちは!サーチチームの @metal_unk です。普段はサーバーサイドエンジニアとして、メルカリの検索を改善する仕事をしています。 メルカリには Be Professional Day という「普段できないことをやろう」をテーマとする日があり、その日は業務に直接関係…

WEB+DB PRESS Vol.100の特集記事は「メルカリ開発ノウハウ大公開」です!

こんにちは。@daipresentsです。メルカリでは、QA-SETチーム(後述)のマネージャをぶりぶりしています。 8月24日に発売される『WEB+DB PRESS Vol.100』において、「1日100万出品のフリマアプリの舞台裏!メルカリ開発ノウハウ大公開」という記事を書かせて…

「hbstudy#75 SRE大全:メルカリ編」で登壇しました

こんにちは。SREの @kazeburo です。8月17日に株式会社ハートビーツ様が主催する「hbstudy#75」において、メルカリSREの取り組みについての発表をしてきましたので、資料を公開します。 hbstudyでは、SRE大全というテーマで、#74において先日発売となりまし…

SpinnakerによるContinuous Delivery

SREの@deeeetです。 新しい機能を素早くリリースしフィードバックを得てすぐにPivotの決定を行う、もしくはリスクを抑え小さな改善を継続的に行うContinuous Deliveryはソフトウェア開発において非常に重要です。 メルカリではこのContinuous Deliveryのため…

「技術をアウトプットするところに技術は集まる」ソウゾウ エキスパートチームの役割

ソウゾウのエキスパートチーム所属の@mhidakaです。今回はソウゾウのエキスパートチームが、どんな活動をしているのか紹介します。 エキスパートチームについて ソウゾウでは「技術をアウトプットするところに技術は集まる」という思いから、 稼働の50%以上…

メルカリQA-SETチームが考えているQAやテストの未来のはなし

こんにちは。メルカリの自動化エンジニアとして、スマホアプリのテスト自動化をぶりぶりしている@daipresentsです。 今年のはじめに、QAエンジニアとSET(Software Engineer in Test)で構成される「QA-SETチーム」が誕生しました。現在は、そのチームのマネ…

ポスター発表 @ MIRU2017: メルカリの画像認識・機械学習への取り組み

機械学習エンジニアをやっていますKumonです。 以前、ディープラーニングと画像認識をテーマに記事を書きました。 tech.mercari.com その後も画像系の取り組みをやっておりまして、 その内容を、画像の認識と理解技術に関する国内最大規模の会議 「画像の認…

竹迫 良範氏がメルカリの技術顧問に就任 セキュリティ分野の体制強化

こんにちは、エンジニアの cocoiti です。 竹迫 良範氏が8月1日付けでメルカリの技術顧問として就任したことをお知らせいたします。氏には、主にセキュリティ分野の体制強化にご尽力いただきます。 これまでもメルカリではセキュリティの取り組みとして、内…

Be Professional Days が開催されました

Be Professional Days とは? メルカリ社内にて 6/29、30 の 2 日間に渡って Be Professional Days (BPD) が開かれました。 BPD とは何か?かんたんにいうと、 普段できないことをやろう やりたいことをやろう 業務外のことも歓迎 すぐできるタスクなんだけ…

愚直にESLintを導入した話

こんにちは、エンジニアの@sota1235です。 タイトルの通り、今回は愚直に改善をした話をします。 メルカリのJavaScript メルカリにおけるJavaScriptの活用場面は以下のようなものがあります。 メルカリWeb アプリ内Webview 社内ツール React Native Node.js…

Brand new US Mercari (Android 編)

Mercari Android チームの @tsuyogoro です。US 版 Mercari Android アプリの開発を担当しています。 この度、より一層 US マーケットにフィットしたアプリをユーザへ提供し US での成長を更に加速すべく、US 版 Mercari を刷新しました (https://play.googl…

社内勉強会「エキスパートGo」を開きました #golang

こんにちは。 ソウゾウのエキスパートチーム所属の@tenntennです。 7月9日に3時間半かけてみっちりと「エキスパートGo」という社内勉強会を開催しましたので、今回はそのレポートを書きます。 また良い機会ですので、私が所属するエキスパートチームについて…

CDN切り替え作業における、Web版メルカリの個人情報流出の原因につきまして

本日コーポレートサイトでお知らせした通り、Web版のメルカリにおいて一部のお客さまの個人情報が他者から閲覧できる状態になっていたことが判明しました。原因はすでに判明して修正が完了しております。また、個人情報を閲覧された可能性のあるお客さまには…

PHPカンファレンス福岡2017に参加してきました #phpconfuk

こんにちは。@sota1235です。 2017/6/10に開催されたPHPカンファレンス福岡2017にてメルカリからは3人のエンジニア登壇しました。 PHPカンファレンス福岡2017

メルカリ/ソウゾウのエンジニアがGoogle Cloud Next'17 Tokyo と Google Cloud Community fes に登壇します

こんにちは。@tenntennです。 6月14日(水)、15日(木)にGoogle Cloud Next'17 in Tokyoが開催されます。 また、6月14日(水)の夜にはGoogle Cloud Community fes @ Google Cloud Next'17 Tokyoというイベントが開催され私も登壇する予定です。 今回はGoo…

メルカリのデータサイエンティストの取り組みを大公開! Drink Meetupを開催しました

プロダクトの分析全般を担当している@hikaruです。 日々、メルカリのプロダクト改善のPDCAを定量分析の面からサポートしております。 以前、メルカリのデータサイエンティストが日々どのようなツールを使って分析をしているのかをお伝えしました。 tech.merc…

Go言語LT大会で登壇しました #golang

こんにちは。@tenntennです。 6月5日に開催されたGo言語LT大会で登壇してきましたので、そのレポートを書きたいと思います。 go-beginners.connpass.com

【資料公開します】AWS Dev Day Tokyo 2017 にて登壇しました/choconの簡単なご紹介

こんにちは。SREの @kazeburo です。2017年5月31日から6月2日にAWS Summit Tokyo 2017と同時に開催された「AWS Dev Day Tokyo 2017」に登壇しました。 登壇する機会をいただき、また数あるセッションの中から会場に足を運んでいただいた皆様、ありがとうござ…

golang.tokyo#6で登壇しました #golang

こんにちは。@tenntennです。 6月1日に開催されたgolang.tokyo#6にて登壇しました。 今回はそのレポートを書きたいと思います。 golangtokyo.connpass.com

AltConf 2017に登壇します!

こんにちは、iOSエンジニアの@kitasukeです。6/5-8にサンノゼで開催されるAltConf 2017に、弊社から自分が登壇します。 AltConfとは AltConfとは、WWDCのチケットの抽選に外れてしまったエンジニア達が有志で開催しているカンファレンスです。WWDCと同じ期間…

Gopher Fest 2017に参加してきました #golang

こんにちは。@tenntennです。 現地時間の5月15日にアメリカのサンフランシスコで行われたGopher Fest 2017に参加してきましたので、参加レポートを書きたいと思います。 www.meetup.com

Google I/O 2017 わいわい報告会を開催しました #io17jp

こんにちは、Software Engineerの @yui_tang です。 先日5月26日(金)に、メルカリ社内においてGoogle I/O 2017 わいわい報告会 @ Mercariを開催しました。 弊社からGoogle I/O 2017に参加したメンバーが、それぞれの分野について内容をまとめて発表しました…

「絶対要らないハズだけど、なかなか削除できずにいるもの」を対応した小話

はじめましてこんにちは。SREの@masartzです。 私は最近joinしたのですが、今回は本番環境に古くからあるテーブルの掃除作業をした案件をご紹介します。 tl;dr; 本番の住所情報テーブルを消したけど問題なかった話 絶対要らないハズだけど、なかなか削除でき…

GolangでSlack Interactive Messageを使ったBotを書く

SREの@deeeet です。 MercariではSlack Botを使い様々な業務の自動化を行っています。例えばメインのAPIのReleaseはBotによる自動化がされており、JPとUSとUKの3拠点で1日に10回以上のReleaseをSlack上で実現しています(これ以外にも多くの事例があります)…

Google I/O 注目のAndroidセッション Day3

Androidエンジニアの @mhidaka です。 Google I/O 2017 Day3(最終日)のおすすめAndroidセッションを紹介します。 Day1, Day2と紹介してきましたがDay3ではAndroidの技術要素(TensorFlowやKotlin、Chrome OSなど)を中心に解説します。 Google I/O 注目のA…

Google I/O 注目のAndroidセッション Day2

Androidエンジニアの 久木野(@cookych)です。 昨日の Google I/O 注目のAndroidセッション Day1 に続き、I/O 2017 Day2に行われたおすすめのAndroidセッションを紹介します。 What’s new in Android Support Library www.youtube.com 今回発表されたSupport …

メルカリのデータサイエンスチームと分析エコシステムのはなし

この記事について メルカリでプロダクトの分析全般を担当している @hikaruです。 日々、メルカリのプロダクト改善のPDCAを定量分析の面からサポートしております。 この記事ではそんなメルカリの分析を支える、分析環境について書いてみたいと思います。 分…

Google I/O 注目のAndroidセッション Day1

Androidエンジニアの @mhidaka です。 今回はGoogle I/O 2017の会場よりおすすめのAndroidセッションを紹介します。 Google I/Oは毎年5月に開催されるGoogleの開発者向けカンファレンスです。 今後の技術動向を示すキーノートや、AndroidやTensorFlow、Webテ…

lltsvでLTSV形式のデータをサクサクパースしよう

SREチームの@cubicdaiyaです。 今回はlltsvというツールを利用してLTSV形式のデータを処理する術について解説します。 LTSV LTSVはLabeled Tab-separated Valuesの略で、コロンで区切られたラベルと値の組み合わせ(key:value)をタブ区切りで表現したフォーマ…

iOSCon 2017 in LondonでProtocol Buffersについて発表しました

iOS

iOSCon 2017 iOSConとは、iOSやSwiftに関わるエンジニアのためのカンファレンスです。今年は3/30, 31の2日間にロンドンで開催されました。参加者は約200人が集まり、27人のスピーカーがそれぞれLT、セッション、ワークショップ形式で発表します。 skillsmatt…

"High 意識 Android Team" のチームワーク - その 2

Mercari Android チームの @tsuyogoro です。US 版 Mercari Android アプリの開発を担当しています。 先日の “High 意識 Android Team” のチームワーク - その 1 に続き、今回は 2016 年秋頃におこなった US 版 Mercari のカメラ機能 (日本版メルカリとは別…

"High 意識 Android Team" のチームワーク - その 1

Mercari Android チームの @tsuyogoro です。US 版 Mercari Android アプリの開発を担当しています。 今年 1 月に弊社で開催した Mercari Day 2017 において、我々 Android チームは 「High 意識 Android」というお話をしました。 これから数回に分け “High …

「Be Professional Day」でちょっと便利なQAテストツールを作った話

こんにちは。メルカリのテストエンジニアとして、スマホアプリのテスト自動化をぶりぶりしている@daipresentsです。 先月のおわりに、Be Professional Day (BPD)というイベントが開催されました。BPDとは以下のような取り組みです。 この先、人やコンポーネ…

Appiumの新しいGUIツール、appium-desktopがよくなってきてるぞう

こんにちは! メルカリのテストエンジニアとして、モバイルアプリのテストをぶりぶり自動化している@tadashi0713です。 メルカリでは、モバイルアプリのテスト自動化のために、一部、Appiumを使用しています。 今回は、現在ベータ版で公開されているGUIツー…

Gitのステージング領域の正体を探る

Git

ソフトウェアエンジニアの @DQNEO です。こんにちは。 Gitの内部構造を深掘りするシリーズ3回目です。 前回までのお話はこちら Gitのつくりかた - Mercari Engineering Blog Gitのコミットハッシュ値は何を元にどうやって生成されているのか - Mercari Engi…

プログラマーの三大美徳 その2

SREチームの@shmorimoです。今日はプログラマーの三大美徳の続きのお話しです。 プログラマーの三大美徳 その2 みなさんはプログラマーの三大美徳ってご存知ですか? プログラミング言語Perlの作者である Larry Wall が http://www.perl.com/pub/1998/08/sho…

モダンなテスト管理プロセスのためにテスト管理ツール3つを比較検討したはなし

こんにちは。メルカリのテストエンジニアとして、スマホアプリのテスト自動化をぶりぶりしている@daipresentsです。 テスト自動化をすすめるにあたり、効率のよいテストを作るために、既存のテストケースについて調べる機会がありました。その過程で現状のQA…

golang.tokyo#4でGo開発環境Goglandのライブデモを見てきた

こんにちは、メルカリアッテのAPIチームでGoエンジニアをしている@sonatardです。 この記事は弊社ソウゾウの社員である@tenntennが運営しているgolang.tokyo #4のブログ枠として書いています。 golang.tokyo #4では、ゲストスピーカーとしてJetBrains社のSer…

スタンドアロンAMPのススメ

CSS

こんにちわ、@t32kです。先日、3/18に大阪で開催されたFRONTEND CONFERENCE 2017に登壇してきました。また弊社メルカリは懇親会スポンサーでした。今回は『スタンドアロンAMPのススメ』というタイトルで講演した内容をシェアしたい思います。 私が所属してい…

AMP Conf 2017へ行ってきました #AMPConf

こんにちは、Software Engineerの @yui_tang です。 3月7-8日にニューヨークにて開催されたAMP Conf 2017に参加してきましたので、そのレポートを書きたいと思います。 メルカリでのAMPの取り組み まずは、現在までのメルカリにおけるAMP(Accelerated Mobile…

QAのためのChatOps!テストデータを作成するSlackコマンドを作ってみた

こんにちは。メルカリのテスト自動化エンジニアとして、スマホアプリのテスト自動化をぶりぶりしている@daipresentsです。 ChatOpsが運用の効率化として誕生したのであれば、それはソフトウェア開発に関連するどんな手作業にでも適用できそう。そう思いつい…

DroidKaigi 2017 に登壇します!

こんにちは、Androidエンジニアの @operandoOS と @mhidaka です。 「DroidKaigi 2017で僕達と握手っ!! 」 ということで、DroidKaigi 2017に弊社から 岡野(@operandoOS)と 日高(@mhidaka)の2名が登壇します。 DroidKaigiとは DroidKaigiはエンジニアが…

Appdevcon 2017 in Amsterdam に登壇します!

iOS

こんにちは、iOSエンジニアの@yoichitgyです。 3月16-17日にオランダ・アムステルダムで開催されるAppdevcon 2017に弊社から私が登壇します。UK版アプリでヨーロッパに進出したメルカリもスポンサーとして協賛します! Appdevcon 2017 - Conference by App D…

iOSCon 2017 in Londonに登壇します

iOS

こんにちは、iOSエンジニアの@kitasukeです。 弊社から、@yoichitgyと自分の2名がiOSCon 2017に登壇します! iOSCon 2017 - The conference for iOS and Swift Developers iOSConとは、iOSやSwiftに関わるエンジニアのためのカンファレンスです。 今年もロン…

Mercari Day 2017 Tech Track 発表資料まとめ

Mercari Day iOS チームの @jarinosuke です。 2017年1月20日に Mercari Day 2017 というイベントを開催しました。 当日はあまり天気も良くない中、とてもたくさんの方々に足を運んで頂き大盛況の中イベントを終えることができました。 ご参加いただいた皆様…