STORES Product Blog
https://product.st.inc/
こだわりを持ったお商売を支える「STORES」のテクノロジー部門のメンバーによるブログです。
フィード

Girls AI Scholarship by STORES を始めます
STORES Product Blog
プログラミング学習をたのしみながら続けるための支援として、AI活用によるプログラミング学習継続支援 Girls AI Scholarship by STORES を開始します! STORES は、「2030年までに、エンジニア職における女性採用比率を30%以上にする」を目標に掲げ、これまでもSTORES Tech Girls Camp、Rails Girls Japanの協賛などテクノロジーのたのしさに「出会う」プログラムと、テックカンファレンスでの託児サポートや女性エンジニア向けランチ会など仲間と共に学びを「深める」ための活動をしてきました。 Girls AI Scholarship by …
13日前

RubyKaigi 2025 に STORES から5名が登壇、2名がLTに登壇します
STORES Product Blog
こんにちは、STORES のima1zumiです。RubyKaigi 2025では、STORES から5名が登壇、2名がLTに登壇します。 発表内容について登壇者それぞれから紹介します。ぜひトークを聞きに来てください! Ruby Taught Me About Encoding Under the Hood 文字コードの面白さについて、自分の経験やRubyのUnicodeのバージョンアップの実装からお話します。文字をコンピュータで扱うとはどういうことなのか、その一端をお見せします。(ima1zumi) Make Parsers Compatible Using Automata Learnin…
15日前

STORES はRubyKaigi 2025も全力!ブース、ミートアップ、関連イベント、Nursery Sponsorのご紹介
STORES Product Blog
こんにちは、技術広報のえんじぇるです。RubyKaigi 2025が近づいてきましたね! STORES はRubyKaigi 2025もNursery Sponsor(託児サポート)として協賛しています。 Nursery Sponsorの他にも、さまざまな取り組みをするので下見時の写真をまじえながら紹介させてください! 松山空港で蛇口みかんジュースを飲みました Nursery Sponsor 今年もNursery Sponsorとして、20名弱のFuture Rubyistを託児所でお預かりします。Future RubyistにもRubyKaigiを楽しんでもらうため、キーホルダー作りや紙コッ…
18日前

SchemaSpyを使って最新のER図を保つ
STORES Product Blog
はじめに nannanyです。 STORES では今まさに複数のプロダクト・システムを横断して、ものづくりをしていくフェーズにいます。 言語・プロダクト・技術領域ごとになっていたWebエンジニアの採用ポジションを統合します - STORES Product Blog そのため、今まで関わってきたプロダクトから離れて、別のプロダクトを扱うようになる人も多くいます。 はじめて触るプロダクトを理解するために必要なものとはなんでしょうか? 諸説あると思いますが、私はデータベースのER図を見ることがプロダクトの理解に大きく貢献すると考えています。 この記事ではSchemaSpyを利用して、最新のER図を…
1ヶ月前

言語・プロダクト・技術領域ごとになっていたWebエンジニアの採用ポジションを統合します
STORES Product Blog
STORES でソフトウェアエンジニアをしている morihirok です。 このたび STORES のエンジニア採用ポジションを大きく刷新し、これまで多数あった採用ポジションを「Web エンジニア」のひとつに統合しました。 このブログでは意思決定に至るまでの背景とその意図についてご紹介し、私たちが作っていきたい組織や挑戦する課題について知っていただければと思っております。 これまでどうなっていたか 前提として、STORES は複数のスタートアップが合併してできた会社です。 しばらくもともとの会社の単位で事業部制組織を取っていたため、エンジニアの採用ポジションも組織ごとに存在し、採用フローもエ…
1ヶ月前

PPL 2025で笹田がポスター発表をします&プラチナスポンサーとして協賛します
STORES Product Blog
STORES は3月5日(水)〜7日(金)に開催される第27回プログラミングおよびプログラミング言語ワークショップ PPL 2025にプラチナスポンサーとして協賛します。 発表 Rubyコミッターの笹田がポスター発表にて採択されました。 『RubyにおけるRactorローカルGCにむけて C3 ポスター』 発表者:笹田 耕一 日時:3月6日(木)20:00–21:00 セッション12 ポスター・デモ(2) グループB スポンサーブース スポンサーブースではアンケートにお答えいただいた方に、ノベルティをお渡しします。 ノベルティは、STORES を利用されている愛知県の事業者さんの商品やオリジナ…
2ヶ月前

STORES はINTERACTION 2025に協賛します
STORES Product Blog
STORES は、3月2日〜4日に開催されるINTERACTION 2025に協賛します。 www.interaction-ipsj.org Women’s Luncheon 女性研究者の交流を促進し、日本国内のインタラクション研究全体を盛りあげることを目的としたWomen’s Luncheonのスポンサーをしています。当日は、VP of People Experienceの佐俣がゲストトークとしてお話しします。 www.interaction-ipsj.org 展示ブース 展示ブースでは、STORES レジ と STORES 決済 のデモを体験いただけます。 またノベルティとして、STORE…
2ヶ月前

賞味期限切れのissueを無慈悲に閉じよう
STORES Product Blog
こんにちは!STORES ブランドアプリ のバックエンドエンジニアをしているotariidaeです。春風の季節ですね。たまに風で舞い上がった砂塵が目に入ってつらいです。 issue管理の課題 さて、私が所属する開発チームではGitHub Projectsを用いてバックログを管理しています。バックログアイテムはissueとして作成される形となり、GitHubとネイティブに統合された円滑な開発体験が構築できてすごく便利です。 しかし、issueはともすると完了される速度よりも新しく起票される速度の方が大きくなります。そうすると管理コストが増大するという問題が生じます。内容を最新の状態に保ったり、優…
2ヶ月前

3ヶ月間の挑戦と成長:個人としての学びと成果を振り返る
STORES Product Blog
はじめに テクノロジー部門QAグループの梅内です。 私は2023年8月からQAグループのテスターとして働いているのですが、QAは全くの未経験で入社しました。入社から約1年、やっと慣れてきたなと思っていた2024年7月にQAグループ内での新チームが発足し、新OSや新端末の対応方針の策定や、動作確認・検定の管理をする「保証スコープ管理チーム」の所属となりました。 「保証スコープ管理チーム」発足から約3ヶ月間、さまざまな課題に向き合いながら業務を進める中で、スケジュール管理やフロー整備、外部とのやり取りなど、多岐にわたる業務を経験しました。本記事では、その過程で取り組んだ業務や身につけたスキルを振り…
2ヶ月前

Women in Agile Tokyo 2025に協賛します
STORES Product Blog
STORES は、2月4日・5日に開催されるWomen in Agile Tokyo 2025に協賛します。 www.wiajapan.org スポンサートークの紹介 タイトル:STORESのQAチームが開発スクラムに参加して見えてきた成果と気づき 登壇者:Nazuki Kaneko 日時:2月4日(火)14:00〜 場所:ROOM C confengine.com スポンサーブース STORES のブースでは、STORES のconnpassグループメンバーになっていただくと、くじにチャレンジできます。 くじの賞品は、STORES を利用されているオーナーさんの商品です。ぜひブースに遊びに来…
3ヶ月前

開発版のRubyを用いてCIを定期実行する試みとその成果
STORES Product Blog
こんにちは。本記事は ykpythemind、mame、 ko1 が共著しています。 今回は開発版のRuby(Ruby head)を用いてSTORESのRailsアプリケーションのCIを定期実行していることと、それによってRuby本体の開発にフィードバックをしていることについてお話します。 モチベーション STORES はRubyを用いて10年選手のRails製アプリケーションを複数開発・運用しており、事業の柱となる技術として大きく投資をしています。 具体的にはRubyのフルタイムコミッター2名がジョインしていたり、RubyKaigiを始めとする各カンファレンスへ協賛をしております。 prod…
3ヶ月前

STORES はRubyKaigi 2025に参加したい学生さんを支援します
STORES Product Blog
こんにちは、id:hogelogです。2025年1月よりSTORES で VP of Engineeringという役職で仕事をしていくこととなりました。(宣伝) VPoEとして始めてのご挨拶ブログがRubyKaigi学生支援告知ブログになるというのもなかなか乙なものですね。 さて、今回はじめての試みとして学生のRubyKaigi参加を支援させていただきます。 チケット代や交通費・宿泊費を負担することなく、カンファレンスに参加いただけます。 本記事では支援の概要と、応募方法を案内させていただきます。 今回ささやかながらRubyKaigi 2025に参加したい学生さんを支援させていただくこととしま…
3ヶ月前

東京Ruby会議12で「混沌とした例外処理とエラー監視に秩序をもたらす」というタイトルで登壇しました
STORES Product Blog
STORES でソフトウェアエンジニアをやっております @morihirok です。タイトルの通り先日行われた東京Ruby会議12で登壇しました。 regional.rubykaigi.org 発表資料はこちらとなります。 speakerdeck.com STORES は Sliver Sponsors として協賛させていただきました。 会自体すごく大盛況で、前夜祭から懇親会まで含めてめちゃくちゃ楽しかったです!オーガナイザー、スタッフのみなさま、素晴らしい会を本当にありがとうございました! 今回「Regional.rb and the Tokyo Metropolis」というタイトルで東京圏…
3ヶ月前

技術的負債ではなく庭なのではないか。庭活のすゝめ。【ep.33 #論より動くもの .fm】
STORES Product Blog
CTO 藤村がホストするPodcast、論より動くもの.fmの第33回を公開しました。今回はykpythemind(以下、ykpy)とyubrotと、技術的負債ではなく庭なのではないかという話をしました。 creators.spotify.com 論より動くもの.fmはSpotifyとApple Podcastで配信しています。フォローしていただくと、新エピソード公開時には自動で配信されますので、ぜひフォローしてください。 コードベースを自分の庭にする 藤村:こんにちは、論より動くもの.fmです。 論より動くもの.fmは STORES のCTO 藤村が技術や技術じゃないことについてざっくばらん…
3ヶ月前

一括生成された大量のデータを効率的に基盤システムへ送信する設計
STORES Product Blog
はじめに 基盤システムへのデータ送信 コールバックを利用したデータ送信 課題 データ作成のバッチと送信処理を分ける 実装の概要 バッチ処理で作成された事実を記録するテーブルを用意 バッチ処理でのログ記録 コールバック処理 送信バッチ処理 まとめ はじめに こんにちは、mochizukiです。 STORES には、ネットショップ、予約システム、POSレジなど、複数のプロダクトがあります。これらは元々独立して開発されてきたものですが、現在ではサービス間の連携を進め、新たな価値を提供する取り組みを行っています。 詳しくはこちら product.st.inc その中で私が所属するチームでは、各プロダク…
3ヶ月前

東京Ruby会議12に2名が登壇&Silver Sponsorとして協賛します
STORES Product Blog
STORES は、1月18日(土)に開催される東京Ruby会議12にSilver Sponsorとして協賛します。 regional.rubykaigi.org 登壇者の紹介 STORES から2名が登壇します!意気込みを聞きました! 前夜祭(1月17日) 時間:20:20〜 タイトル:An OptCarrot Retrospective 登壇者:mame 「Rubyを3倍に高速化する」というスローガン"Ruby 3x3"のベンチマークプログラムだったoptcarrotは、9年前に開催された東京Ruby会議11で発表したものでした。その後、optcarrotは予想以上に反響を呼び、さまざまな成…
3ヶ月前

Action Mailerに学ぶ闇の魔術と闇の魔術に対する防衛術
STORES Product Blog
はじめに STORES 予約でエンジニアをやっている@ucksです。 大体年内にやりたかったタスクが捌けてきたので空いた時間でブログを書いています。 Railsからのメール送信でお世話になるAction Mailer。 インスタンスメソッドを定義しているのにクラスメソッドから呼び出しをしています。 どの様な仕組みになっているのか不思議に思ったことはないでしょうか。 様々な方法で、OSSのソースコードを追うことがあると思いますが、今回は追い方の一例として、実際のAction Mailerのロジックを追いながら、どの様な仕組みになっているのか、参考になるロジックはあるのかを、探索したり、拡張できな…
4ヶ月前

ジオコーディングとGeolocation APIを用いて店舗と現在地との距離を計算する
STORES Product Blog
はじめに 初めまして、STORES でエンジニアをしているhiromu617です。この度、STORES では、STORES モバイルオーダーというサービスをリリースしました。 www.st.inc 今回は、STORES モバイルオーダー内に現在地から店舗までの距離を表示してみようと思います。 なお、モバイルオーダーを開発する上での取り組みについて、wanijiさんが紹介されているのでこちらも合わせて閲覧していただけると幸いです。 product.st.inc やりたいこと STORES モバイルオーダーには、注文する店舗を選択するための店舗一覧画面が存在します。 モバイルオーダーの店舗一覧画面…
4ヶ月前

モノレポでのVSCode Dev Container
STORES Product Blog
STORES 予約 でエンジニアをしている水野です。VSCode Dev Containerを利用すると開発環境のセットアップが迅速化されたり必要なライブラリ、ツールをコード化できたりとメリットが多いため導入している現場も多いかと思います。 STORES 予約 でもVSCode Dev Containerを利用しています。しかし今後モノレポな環境に携わる機会が見えたとき、そういえばモノレポでもVSCode Dev Containerって使えるんだっけ?となったので調べてみました。 Multiple containers モノレポの場合は公式で紹介されているMultiple containers…
4ヶ月前

AlloyDBを業務システムのバックエンドとして利用するためのアイデア
STORES Product Blog
はじめに fujiuです。この記事ではGoogle CloudのフルマネージドPostgreSQL互換データベースであるAlloyDBについて、業務システムのバックエンドとして利用する方法を紹介します。 AlloyDBはPostgreSQL互換なインターフェースを備えているためOLTPのユースケースにおいて高速にクエリすることができます。 さらに、AlloyDBはカラムナエンジンという仕組みを備えており、これをうまく扱えるようなSQLでクエリすることで、OLAPのユースケースでも使えるようなパフォーマンスを発揮します。 STORES において顧客データを集約し活用することは、事業者さまのビジネ…
4ヶ月前

モバイルオーダーを開発する中で役立った5つの取り組み
STORES Product Blog
始めに STORES エンジニアの waniji です。このたび STORES では STORES モバイルオーダー というサービスをリリースしました。 www.st.inc 価値の高いプロダクトをスピード感を持って開発するため、チームでさまざまな取り組みを実施してきました。その中でも、特にやってよかったと感じた取り組みを5つ紹介します。 1. リリースフェーズを区切る モバイルオーダーで実現したいことは多岐にわたりましたが、すべてを盛り込むとリリースが後ろ倒しになってしまうため、優先順位を明確にする必要がありました。そのため、リリースまでのマイルストーンとしてリリースフェーズを区切り、そのフ…
4ヶ月前

GitHub の Sub-issues はいいぞ
STORES Product Blog
GitHub の Sub-issues はいいぞ はじめに こんにちは! STORES でソフトウェアエンジニアをしている @m0nch1 です。 今回は GitHub issues に新しく追加された Preview 機能の1つである Sub-issues について紹介しようと思います。 Sub-issues は GitHub Projects と組み合わせることでより便利に機能するものになっており、GitHub Projects での活用例についても紹介しようと思います。 ちなみに STORES ではバックログの管理に GitHub Projects を活用しているチームが多く、日々活用し…
4ヶ月前

自動化でスクラムを後押しする
STORES Product Blog
こんにちは。STORES ブランドアプリ のバックエンドエンジニアをしているotariidaeです。2024年4月に新卒入社して初めてブログを書きます。 リモートワーク環境下でのスクラムイベントの課題 みなさんはスクラムをやっていますか?透明性・検査・適応を日々実践していますか? 私が所属するチームでも開発プロセスとしてスクラムを採用しています。 また STORES ではリモートワーク中心の働き方になっており、社内の多くの会議はオンラインで行われています。スクラムイベントも例外ではありません。 スクラムイベントをオンラインで実施する上で重要なことは何でしょうか? そうですね、わいわいスレですね…
4ヶ月前

Oktaの SMS/音声認証終了に対応しました
STORES Product Blog
こんにちは、コーポレートエンジニアの伊藤(ito2)です。 今回は、先日対応した Okta のSMS/音声認証の停止について書いていきます。同様のケースを検討される際の参考になれば幸いです。 以下、前置きです。 私は、PX 部門 IT 本部コーポレートエンジニアリンググループに所属しています。 PX は、人事、採用、労務、広報、社内IT からなる部門で、人事はプロダクト開発と同じ、従業員と考えるのではなく、ユーザーと捉えようという考えから「People Experience(PX)」と名乗っています。社内 IT についても同じ文脈で活動しており、ユーザー体験を重視するメンバーが集まっています。…
4ヶ月前

スクラム開発で行った改善の話
STORES Product Blog
はじめに こんにちは、STORES のエンジニアの takeuchi です。 私が現在所属しているチームは2024年の春に新規に編成され、現在まで新規プロダクトの開発に取り組んできました。 このチームでは、スクラム開発を採用しています。2週間スプリントごとにスプリントゴールを設定し、そのスプリントゴールの達成を目指しプロダクト開発を前進させています。 本記事では、私たちのチームのスクラム開発の概要と、スプリントを重ねながらチームで改善してきたことについて紹介します。 スクラム開発の概要 スクラムイベント スクラム開発は、短い開発サイクル(スプリント)を通じて計画・作業・振り返りを繰り返すソフト…
4ヶ月前

KMP / CMPを使った新規プロダクトの開発
STORES Product Blog
このたび STORES では STORES モバイルオーダー というサービスをリリースしました。 www.st.inc 名前からも想像できるように、店頭から離れた場所からもスマートフォンでテイクアウト注文できる特徴をもったサービスです。 注文するお客様にとって、移動中に注文をして待ち時間を短縮できるとても利便性が良いサービスですが、お店にとっても行列を見てお客様が返ってしまう機会損失をなくしたり、電話を使わずに新規の注文を受け付けられるなどメリットがあります。 では、お客様が注文したオーダーをお店の方はどのように把握し、調理を開始するのでしょうか。また、調理が終わったら、どのように受取に来てほ…
4ヶ月前

プロと読み解くRuby 3.4 NEWS
STORES Product Blog
プロと読み解くRuby 3.4 NEWS テクノロジー部門技術基盤グループの笹田(ko1)と遠藤(mame)です。Ruby (MRI: Matz Ruby Implementation、いわゆる ruby コマンド) の開発をしています。お金をもらって Ruby を開発しているのでプロの Ruby コミッタです。 本日 12/25 に、恒例のクリスマスリリースとして、Ruby 3.4.0 がリリースされました(Ruby 3.4.0 リリース )。今年も STORES Product Blog にて Ruby 3.4 の NEWS.md ファイルの解説をします(ちなみに、STORES Adven…
4ヶ月前

STORES レジ のビルド時間を改善したかった話
STORES Product Blog
こんにちは! STORES レジ の開発をしている iOS / Android エンジニアの @satoryo056 です。 今回は STORES レジ のビルド時間を短縮するために実験したことを紹介します。 STORES レジ について STORES レジ (以下、レジアプリ)は iPadOS 専用のモバイルアプリで、実店舗とネットショップの商品・在庫・売上の管理をしたり実店舗(オフライン)でのお会計をすることができます。 最近は 予約システムとの連携機能を実装 したり、長年課題だった技術的負債の改善 に取り組んだり、プロダクト監視の時間 を設けたりと開発面・運用面でアップデートを続けていま…
4ヶ月前

enableEdgeToEdge のデフォルト引数を理解しよう
STORES Product Blog
こんにちは、naberyo(@error96num)です。今年4月に STORES へ入社し、 STORES ブランドアプリ のAndroidエンジニアをしています。 Androidエンジニアのみなさま、アプリのターゲットSDKは35に上げましたか? もし上げたなら、エッジツーエッジ対応もお済みでしょうか? Android 15 (SDK 35) 以降をターゲットとするアプリでは、画面の端から端までコンテンツが描画される「エッジツーエッジ」がデフォルトで適用 されるようになりました。この変更は、没入感あるUXを実現する素晴らしい機能ですが、対応を間違えると思わぬ落とし穴にはまる可能性があります…
4ヶ月前

Passkeyの作成・取得に関するWebAuthn APIの重要オプション解説
STORES Product Blog
はじめに こんにちは!@m11oです。 この記事はSTORES Advent Calendar 2024の17日目の記事です。今回はWebAuthn APIにおけるPasskeyの作成・取得に関する主要なオプションを網羅的に解説しようと思います。 というのも、自分がPasskeyを実装した際に、WebAuthn APIのドキュメント以外でまとまった記事が見つからず、試行錯誤したり、色々な人に教えてもらったりしながら、苦心して実装しました。 なので、この記事ではオプション一つひとつの役割や返ってくるデータを明示することで、実装時の参考にしていただければ嬉しいです。 想定読者 これからPasske…
4ヶ月前