タグ

ブックマーク / engineering.mercari.com (58)

  • メルカリ ハロ リリースのQA戦略 | メルカリエンジニアリング

    こんにちは。メルカリのQAエンジニアリングマネージャーの@____rina____ です。今回は、連載『Mercari Hallo, World! -メルカリ ハロ 開発の裏側-』の第4回を担当します。 記事では、メルカリ ハロのサービスローンチまでのQAプロセスを通じて、私たちはどのようにして安心・安全なプロダクトを迅速にリリースするための戦略を実行したか、具体的な方法とともに詳述しています。 この記事を通じて、以下の点についての理解を深めていただけることを目指しています: QAの役割とプロジェクト概要 効率的なQAアサイン戦略 成果物の透明性と管理ツールの効果的な活用方法 また、この記事を書くにあたり、私自身が学んだことや得た教訓についても触れています。これらの経験は、今後のプロジェクトにおいて更なる品質向上と効率化を目指す上で非常に貴重なものとなりました。 プロジェクト概要とQAの

    メルカリ ハロ リリースのQA戦略 | メルカリエンジニアリング
    tjnet555
    tjnet555 2024/06/07
  • Gitブランチ戦略 Stacking手法のケーススタディ | メルカリエンジニアリング

    こんにちは。メルカリのBackendエンジニアの@osari.kです。 この記事は、Mercari Advent Calendar 2023 の9日目の記事です。 一般に大きなプルリクエストはレビューが大変で、マージまでに時間がかかります。一方で複数の小さいプルリクエストに分割するとコードレビュー待ちの間、関連する開発がブロックされることがあります。今回は機能の開発時間を短くするために、チームで試したGitのブランチ戦略の1つであるStacking手法をケーススタディを交えて紹介します。 大きなプルリクエストがもたらす問題点 大きなプルリクエストがもたらす問題とは何でしょうか? コードレビューで読むサイズが増える コードレビュー中の修正回数が増える(可能性が増える) コードレビューで必要な知識の範囲が広がる(可能性が増える) 変更箇所が多いのでリリースのリスクが増加する プルリクエストが大

    Gitブランチ戦略 Stacking手法のケーススタディ | メルカリエンジニアリング
    tjnet555
    tjnet555 2023/12/11
  • 強いエンジニア組織に必要な、6つの技術以外のこと – メルカリ編 | メルカリエンジニアリング

    はじめに メルカリ Engineering Office マネージャーのhiroiです。 我々のチームでは「Establish a Resilient Engineering Organization」というミッションを元に、エンジニアリングにおける、組織横断課題の解決を目指しています。 組織横断というと、Platformチームや、インフラ周りのチームを想像する方も多いと思いますが、我々のチームでは、プロダクト開発における技術的な課題を除く、組織課題や横断的な取り組みを推進しています。 具体的には、各技術領域ごとの研修プログラムの構築、エンジニア向けのイベント企画運営、技術広報(このEngineering Websiteも我々の活動の一つです)、ナレッジマネジメント、エンジニア文化の言語化や醸成、技術戦略策定、果てはインド開発支部の立ち上げのプロマネなどをしています。 この記事ではそんな我

    強いエンジニア組織に必要な、6つの技術以外のこと – メルカリ編 | メルカリエンジニアリング
    tjnet555
    tjnet555 2023/12/07
  • テストコードの改革を進めている話 | メルカリエンジニアリング

    はじめに この記事は、Merpay Tech Openness Month 2023 15日目の記事です。 こんにちは。メルペイ加盟店精算チームのバックエンドエンジニア@r_yamaokaです。 今日は現在自分がリードして取り組んでいるテストコードの改善について紹介したいと思います。 抱えている課題 私が所属している加盟店精算チームのマイクロサービスは加盟店さま向けサービスとして欠かせないものであり、メルペイ最初期から存在するサービスです。他のマイクロサービスにあまり無い特徴として多数のバッチ処理を行っている点が挙げられます。 お客さま(メルペイユーザー)がお店で行った決済は、一定の頻度で集計し決済手数料を差し引いた上で加盟店さまの銀行口座へ振り込むことになります。 最終的な振込金額を算出するまでの流れとしては 個々の決済金額のリコンサイル(会計マイクロサービスとの金額照合) 日次集計 締

    テストコードの改革を進めている話 | メルカリエンジニアリング
    tjnet555
    tjnet555 2023/06/27
  • 社内用GitHub Actionsのセキュリティガイドラインを公開します | メルカリエンジニアリング

    この記事は、Merpay Tech Openness Month 2023 の4日目の記事です。 こんにちは。メルコインのバックエンドエンジニアの@goroです。 はじめに このGitHub Actionsのセキュリティガイドラインは、社内でGithub Actionsの利用に先駆け、社内有志によって検討されました。「GitHub Actionsを使うにあたりどういった点に留意すれば最低限の安全性を確保できるか学習してもらいたい」「定期的にドキュメントを見返してもらい自分たちのリポジトリーが安全な状態になっているか点検する際に役立ててもらいたい」という思いに基づいて作成されています。 今回はそんなガイドラインの一部を、社外の方々にも役立つと思い公開することにしました。 ガイドラインにおける目標 このガイドラインは事前に2段階の目標を設定して作成されています。まず第1に「常に達成したいこと

    社内用GitHub Actionsのセキュリティガイドラインを公開します | メルカリエンジニアリング
    tjnet555
    tjnet555 2023/06/09
  • メルカリの2023年技術研修DevDojoの資料と動画を公開します! | メルカリエンジニアリング

    こんにちは!メルカリ Engineering Office チームの@aisakaです。 メルカリのエンジニア組織は、メンバーが相互に学び合い、メンバー自身が自走し、成長できる組織を目指し、「互いに学び合い、成長し合う文化」の醸成を行っています。 こうしたメルカリの「互いに学び合い、成長し合う文化」を体現する仕組みの一つが、社内技術研修「DevDojo」シリーズです。 昨年から、一部のDevDojoシリーズを外部公開(参考)していますが、今回さらに新しいコンテンツを公開することになりました! 今日のブログでは公開するセッションとその内容をご紹介します! Learning materials Website 技術研修DevDojoとは DevDojoは、技術開発を学ぶ場として「Development」と「Dojo(道場)」をかけ合わせて名付けられた完全In-houseの社内研修シリーズです。

    メルカリの2023年技術研修DevDojoの資料と動画を公開します! | メルカリエンジニアリング
    tjnet555
    tjnet555 2023/05/27
  • メルカリShops 注文システム反省会 | メルカリエンジニアリング

    こんにちは。ソウゾウ Software Engineer の @sou です。連載:メルカリShops 開発の裏側 Vol.2 の6日目を担当させていただきます。 この記事ではメルカリShops 注文システム反省会として、リリースから半年を迎える中で注文システムにどのような問題が起こり、どのような改修が必要になったかを振り返ってみたいと思います。 注文システムの概要 メルカリShops はマイクロサービスで構成されており、注文の受付を行うために様々なマイクロサービスにまたがって API を呼び出す必要があります。 まずは購入画面をご覧ください。 メルカリShops の購入画面 「購入する」を押すとローディングアイコンが表示されて待ちに入り、クライアントがレスポンスを受け取ると購入の完了を示す画面が表示されます。 一方裏では購入を完了させるまでに在庫確保や決済など様々な操作を行っています。

    メルカリShops 注文システム反省会 | メルカリエンジニアリング
    tjnet555
    tjnet555 2022/02/22
  • バッチプログラムの運用と監視について検討しよう | メルカリエンジニアリング

    こんにちは。メルペイでバックエンドソフトウェアエンジニアをしている id:koemu です。 バッチプログラムのお話、今回は運用・監視についてお話したいと思います。当社はすべての業務が24時間行われていますので、システムがオンラインのときに動作するバッチプログラムについてのみ議論します。 過去の記事はこちらにあります。 運用に備えて バッチプログラムの運用について、「プリモーテム」「実行管理」そして「ログ管理」の3点について述べていきます。 プリモーテム ポストモーテムという言葉を聞いたことがある方はいらっしゃるかと思います。ポストモーテムとは、GoogleのSREの15章*1によれば、障害などの失敗を振り返り、今後に活かすプロセスの総称と捉えることができます。 さて、プリモーテム(プリモータム)とは何でしょうか。この言葉は、私が最近読んだThe Manager’s Path*2*3で使

    バッチプログラムの運用と監視について検討しよう | メルカリエンジニアリング
    tjnet555
    tjnet555 2022/02/21
  • メルカリ Shops の開発を支える Automation 化 | メルカリエンジニアリング

    こんにちは。ソウゾウで Software Engineer をしている @sottar です。連載:メルカリShops 開発の裏側 Vol.2の 5 日目を担当させていただきます。 この記事ではメルカリShops における、開発をサポートするための Automation 化について紹介します。 メルカリShops での開発手法 先日のプロダクト組織に関する記事でも言及がありましたが、ソウゾウでは全員ソフトウェアエンジニアを標榜しており、これまで経験がない分野でも積極的にコードを書いていく文化があります。 組織の人数も当初に比べ増えてきており、より様々なバックグラウンドを持ったエンジニアが参画しています。 エンジニアが自らの経験が少ない分野のコードを書くと、その言語ならではの書き方がわかっていなかったり、意図していない変更が起きてしまったりすることが起こりやすくなります。基的にはコードレビ

    メルカリ Shops の開発を支える Automation 化 | メルカリエンジニアリング
    tjnet555
    tjnet555 2022/02/18
  • PubSub/Redisを用いたGoによるスケーラブルなworkerの構築と運用 | メルカリエンジニアリング

    こんにちは。メルカリのNotification teamでソフトウェアエンジニアをしている@naruseです。 この記事は、Mercari Advent Calendar 2021 の19日目の記事です。 はじめに 私が所属しているBusiness Platform Notification teamでは、2つの役割で通知周りの基盤を担当しています。 1つ目はアプリケーションとしての役割の通知です。メルカリでは、アプリ内でのお知らせや個別メッセージ、やることリストなどを提供しています。私たちはそれらの膨大なデータを管理し、作成や取得のリクエストに応えています。これらの膨大なデータに対する私たちのチームの過去の記事として、昨年のAdvent calenderの一部である番稼働中の Spanner にダウンタイム無しに57時間かけてインデックスを追加して得た知見をぜひご覧ください。 2つ目は

    PubSub/Redisを用いたGoによるスケーラブルなworkerの構築と運用 | メルカリエンジニアリング
    tjnet555
    tjnet555 2021/12/20
  • メルカリで築くエンジニアキャリア | メルカリエンジニアリング

    メルカリ Engineering Office チームの@yuki.tです。 私たちのチームでは、「全てのエンジニアに最高の従業員体験を」というミッションを元に、様々な活動を行なっています。私はその中でも、エンジニアの評価や異動のための仕組みづくりに携わっています。 この記事では、メルカリエンジニアのキャリアパス・評価制度などを紹介し、メルカリでエンジニアがどのようにしてキャリアを築いていけるかを書いていきます。 メルカリにはワークスタイルを限定せず、多様な働き方を尊重する制度 “YOUR CHOICE” がありますが、キャリアに関しても、それぞれのwillを尊重しながら、バリューを最大限に発揮することを目指した仕組みや制度があります。 メルカリにおけるキャリアタイプ メルカリでエンジニアとしてキャリアを積み重ねる上で、「マネジメント」「Iindividual contributor(スペ

    メルカリで築くエンジニアキャリア | メルカリエンジニアリング
    tjnet555
    tjnet555 2021/12/15
  • 新しいメルカリDesign System Web | メルカリエンジニアリング

    @nekobatoです。メルカリDesign SystemのWeb版開発者をしています。以前の記事で新しくなったメルカリ Webの紹介がありましたが、記事ではそこで使われている、同じく新しくなったDesign System Webの紹介をします。 Design System Webの提供 Design Systemを元にした実装の構造はプラットフォームごとに異なりますが、Design System Webはmonorepoで管理されたnpm module群で、プロダクトはモジュールを用途に合わせて利用可能です。全てを使う必要はなく、基的にはコンポーネントモジュール(CoreまたはReact)を利用すればDesign Systemの恩恵を受けられます。現在は新しくなったデザインのメルカリ Webで実際に利用例を見ることができます。 この記事はDesign System Webの技術的な概

    新しいメルカリDesign System Web | メルカリエンジニアリング
    tjnet555
    tjnet555 2021/08/24
  • メルカリShops のフロントエンド | メルカリエンジニアリング

    こんにちは。ソウゾウの Software Engineer の hiroppy です。「連載:「メルカリ Shops」プレオープンまでの開発の裏側」 の最後は、Web フロントエンドの紹介をしたいと思います。メルカリ Shops は既存のメルカリアプリの中に独立した Web アプリケーションとして動いています。記事では、どのようなライブラリを選定し、どのようにアーキテクチャを設計してきたかを解説します。 なぜ Web なのか? アプリの上で動いているのであれば、WebView ではなくても良いと感じる人はいると思います。今回採用した 1 つの理由としては、リリースが柔軟な点が挙げられます。iOS/Android の両方に対して開発サイクルを早めることが可能であり、また機能追加やバグ修正が容易です。どのように WebView で動いているかについては、6 日目のメルカリ Shops のため

    メルカリShops のフロントエンド | メルカリエンジニアリング
    tjnet555
    tjnet555 2021/08/24
  • メルカリShops での monorepo 開発体験記 | メルカリエンジニアリング

    こんにちは!ソウゾウのSoftware Engineerの@ogataka50です。連載:「メルカリShops」プレオープンまでの開発の裏側の9日目を担当させていただきます。 1日目の記事「メルカリShops の技術スタックと、その選定理由」にあった通りメルカリShopsではMonorepoで開発を行なっています。この記事では主にSoftware Engineerとして、DX (Developer eXperience)の観点からPJ初期からMonorepo上で開発を進めていった中で経験したこと感じたことを実際に起きた出来事とともに共有したいと思います。 Monorepoとは Monorepoとは単一のリポジトリに特定のプロジェクトのコードをすべて含めるパターンです。 下記のような利点があると言われています。 コードの可視性 統一されたバージョン管理, Single Source of T

    メルカリShops での monorepo 開発体験記 | メルカリエンジニアリング
    tjnet555
    tjnet555 2021/08/19
  • メルカリShops の技術スタックと、その選定理由 | メルカリエンジニアリング

    こんにちは。ソウゾウの Software Engineer (CTO) の @suguru です。連載:「メルカリShops」プレオープンまでの開発の裏側の1日目を担当させていただきます。 7月末にメルカリShopsという新しいサービスが公開されました。メルカリShops は、2021年1月にメルカリのグループ会社として設立したソウゾウが新たに立ち上げたサービスです。 この記事では、メルカリShops を作るにあたり、どういった技術、アーキテクチャを選定したのか、その背景と意思決定をまとめて共有したいと思います。 monorepo まず最初にプロジェクトをスタートしたときに、サービスのリポジトリを作るのですが、迷わず monorepo による構成を選択しました。monorepo は、システムを構成する複数のコンポーネントの独立性を保ちつつ、全ての構成を1つのリポジトリで管理する手法です。今

    メルカリShops の技術スタックと、その選定理由 | メルカリエンジニアリング
    tjnet555
    tjnet555 2021/08/11
  • Engineering Ladder | メルカリエンジニアリング

    エンジニアの成長段階ごとに期待される行動を明文化

    Engineering Ladder | メルカリエンジニアリング
    tjnet555
    tjnet555 2021/02/11
  • エンジニア選考プロセスの改善 | メルカリエンジニアリング

    Mercari Advent Calendar 2020 の10日目は、メルカリ Engineering Office の sadah がお送りします。僕はエンジニア採用や育成を担当しています。所属している Engineering Office はこんなチームです! 「全てのエンジニアに最高の従業員体験を」メルカリEngineering Officeってどんなチーム? TL;DR メルカリでは継続的にエンジニア採用活動の改善を行っています。今回はエンジニア選考プロセスの概要と、ライブコーディングインタビューの導入についてご紹介します。エンジニア採用に関わっているエンジニアや人事の方、メルカリの選考に興味のあるエンジニアの方には、参考になる情報もあると思います。 メルカリのエンジニア選考プロセスの概要 エンジニア選考プロセスには、書類選考、コーディングテスト、技術課題、面接などがあります。各

    エンジニア選考プロセスの改善 | メルカリエンジニアリング
    tjnet555
    tjnet555 2021/01/11
  • Cloud Spanner の実行計画の活用に関する取り組み | メルカリエンジニアリング

    Merpay Advent Calendar 2020 の11日目は、メルペイ Solutions Team の apstndb がお送りします。 色々な場所で既に書かれている通り、メルペイはサービス開始当初から主要なデータベースとして Google Cloud Platform(GCP) の DBaaS である Cloud Spanner を使っています。 この記事ではメルペイにおける Cloud Spanner の実行計画の活用のために取り組んだことについて紹介します。 Cloud Spanner の特性である外部一貫性による強い一貫性保証、レプリケーションによる高い可用性、水平分散による高いスケーラビリティ、リレーショナルデータモデルによるスキーマ、フルマネージドなことによる低い運用負荷などは多くの業界にとってメリットがあるものですが、金融サービスであるメルペイも例外ではありません。

    Cloud Spanner の実行計画の活用に関する取り組み | メルカリエンジニアリング
    tjnet555
    tjnet555 2020/12/12
  • チームで運用と戦い、おいしい牛カツと出会った話 | メルカリエンジニアリング

    Merpay Advent Calendar 2020 の 9 日目は、バックエンドエンジニアの @sou がお送りします。 今日は少し泥臭く、この一年チームを成長させながら運用と戦ってきた話を書こうと思います。 私の所属するチームは加盟店情報の管理を担っており、その性格から運用に伴う作業が数多く発生します。 どんなプロダクトにも運用はあると思いますが、このチームが直面した運用の負荷はそのボリュームと複雑さから、私のキャリアの中でも最大と言えるものでした。 その運用に私たちがどのように立ち向かい改善を行ってきたか、みなさまの参考になれば嬉しく思います。 なぜそんなしんどい運用を頑張っているのか、メルペイでのやりがいや楽しさ、頑張った結果の美味しい牛カツと日酒のお店に出会えた話も添えさせていただければと思います。 ここで言う運用とは、事業を進めていく上でさまざまな場面で発生する、自チーム以

    チームで運用と戦い、おいしい牛カツと出会った話 | メルカリエンジニアリング
    tjnet555
    tjnet555 2020/12/09
  • 画像検索システム再設計のお話 | メルカリエンジニアリング

    こんにちは。メルカリの画像検索チームでTech Leadをしています葛岡です。 今回は、メルカリのMLシステムの中で一、二を争う複雑なシステムである画像検索の基盤を再設計し、経済的にも技術的にもみんなが幸せになったお話をしたいと思います。 画像検索ってなぁに? その名の通り、画像をベースに視覚的に似ている商品を検索する機能です。この機能は2年ほど前にリリースされていて、すでにiOSバージョンのメルカリではご利用いただけます。 当時のシステムはブログ記事になっているので、ご確認ください。 再設計?なにそれ?おいしいの? さてこの機能を支えるシステムですが、当時開発されて以来、大きな再設計などは特になく、つい最近まで運用されていて、画像検索やその他のメルカリサービスでも内部的に呼ばれていて、プラットフォーム的な立ち位置を担っていました。 画像検索は定期的に新しい画像インデックスを構築するのです

    画像検索システム再設計のお話 | メルカリエンジニアリング
    tjnet555
    tjnet555 2020/12/08