シンクロ・フード エンジニアブログ
https://tech.synchro-food.co.jp/
飲食店ドットコムを運営する、株式会社シンクロ・フードの技術ブログです
フィード

S3とLambdaでEXIF 情報除去機能を作成する
シンクロ・フード エンジニアブログ
SREチームの下野です。 以前こちらの記事で紹介したリアルタイム画像リサイズAPI に対し、 その前段で EXIF情報除去(および画像の回転補正)を行う仕組みを追加する対応を行いました。 今回はその対応や検討の経緯を紹介させていただきたいと思います。 tech.synchro-food.co.jp 前提 リアルタイム画像リサイズAPIとは 以下のようにCloudFront 、API Gateway、Lambda、S3(Public Bucket)を組み合わせて動的に画像をリサイズするAPIです。 弊社の各サービス共通で画像のリサイズに使用しています。 リアルタイム画像リサイズAPIの処理内容は…
4日前

複雑化していた Java の環境構築を Dev Container 化して Eclipse から移行しました
1

シンクロ・フード エンジニアブログ
こんにちは、アプリケーション基盤チームの坂本です。 今回は Java の開発環境を Dev Container 化した対応について紹介します。 弊社の開発環境について 弊社では「飲食店ドットコム」をはじめとした飲食店向けのサービスを多数運用しています。 それらのサービスは元々全て Java で書かれていましたが、数年前から段階的に Rails への移植を行っています。 主要なサービスのいくつかはすでに移植が完了していますが、一部のサービスはまだ移植の途中であり、Java で実装された機能と Rails で実装された機能が混在しています。 また、社内システムの中には Rails 移植の工数をかけ…
7日前

「内装建築.com」から「店舗デザイン.COM」へのデータ移行対応の紹介
シンクロ・フード エンジニアブログ
こんにちは、開発部デザイン開発チームの神尾です。 今回は、弊社サービスの「内装建築.com」から「店舗デザイン.COM」へのデータ移行の対応をしたため、その内容と苦労した点について紹介したいと思います。 「内装建築.com」、「店舗デザイン.COM」とは 「内装建築.com」は約2年前に他社から事業譲受したサービスになります。 店舗を構えたい施主さんとその内装デザインを請け負うデザイン会社さんをマッチングするサービスです。 「店舗デザイン.COM」は弊社が2005年から運営しているサービスになります。 「内装建築.com」と同様に施主さんとデザイン会社さんをマッチングするサービスなのですが、施…
1ヶ月前

Rails アプリケーションのフロントエンドを webpack から Rspack に移行しました
シンクロ・フード エンジニアブログ
はじめに こんにちは。開発部の竹内です。 弊社のプロダクトの1つである モビマル におけるフロントエンドビルドツール刷新の取り組みについてご紹介します。具体的には webpack から Rspack への移行を行いましたので、手順や結果をお伝えしたいと思います。 既存のプロジェクトの構成 モビマルはRailsアプリケーションとして構築されており、Reactで書かれたフロントエンド部分はwebpackでバンドルされ、app/assets/ディレクトリに出力されていました。その後、アセットパイプラインを通して利用するというワークフローになっていました。 ですが、この構成には以下の課題がありました。…
2ヶ月前

手続き的なCSVパーサーをDSLで宣言的に書き換えて保守性を改善した話
シンクロ・フード エンジニアブログ
こんにちは。開発部 HR事業管理開発チームの田中です。 主に求人飲食店ドットコムの社内・代理店向け管理機能を担当しています。 今回は、チームで開発・保守しているCSV一括処理機能を技術的に改善しましたので、そのときのことについてお話しします。 なぜCSV一括処理の改善をしたのか 「求人飲食店ドットコム」に掲載される求人情報やその他関連情報は、シンクロ・フードの営業メンバーや提携している代理店の方々によって日々大量に作成・更新されています。 そのため、管理システムの入力フォームから一件ずつデータを入力するよりも、CSVファイルに情報をまとめて入力し、一括でデータを操作する方が効率的に業務を進めら…
2ヶ月前

「ふりかえりカタログ」の振り返り手法をチームで実践してみました
シンクロ・フード エンジニアブログ
こんにちは、開発部会員企画開発チームの日比野です。 今回は、私たちのチームで導入したいくつかの振り返り手法についてご紹介します。 背景 私たちのチームでは週次で KPT(Keep, Problem, Try) を用いた振り返りを行っていましたが、次第に意見が出にくくなり、チームとして取り組むべき課題も挙がりにくくなるという問題を抱えていました。 この状況を改善するため、私たちは新しい振り返りの手法を試してみることにしました。 ふりかえりカタログ 「何か新しい振り返りのやり方はないか?」と探していたときに見つけたのが、こちらの「ふりかえりカタログ」です。 qiita.com このサイトには目的や…
3ヶ月前

RubyKaigi2025に参加した弊社メンバーで感想を話し合いました
シンクロ・フード エンジニアブログ
開発部・アプリ基盤チームの深野です。 今回、弊社から自分を含む3名が松山で開催されたRubyKaigi2025に参加して色々なセッションを聞いてきました。 その3名で印象に残ったセッションのことや参加しての感想などを話し合ったものを文字起こしして、再構成したものが今回のブログになります。 なお、弊社はSilver SponsorとしてRubyKaigi2025に協賛させていただきました。 自己紹介 竹内: シンクロフード3年目の竹内と申します。普段は主にモビマルというキッチンカー関連のサービスの開発を行っています。Rubyに関しては、高校生くらいの時からやっていて、もう20年くらい前から触れて…
3ヶ月前

本番環境 DB の個人情報マスキングフローを Jenkins から StepFunctions に移行しました
シンクロ・フード エンジニアブログ
初めまして、SRE チームの 辻井 です。 先日、本番環境 DB の個人情報マスキングフローを Jenkins から Step Functions に移行しました。 今回はその対応や検討の経緯を紹介させていただきたいと思います。 背景 本番環境 DB の個人情報マスキングフローでは、最初に本番環境 DB のクローンを作成し、マスキングした後に社内公開しています。 (なお、本稿では上記フローで作成する DB を クローン DB と呼称させて頂きます。) そもそもクローン DB は何を目的に作成している? クローン DB が作られている理由は2つあります。 理由1: サービス指標などの分析のため、…
4ヶ月前

parallel_testsを使ってCIの実行時間を改善しました
シンクロ・フード エンジニアブログ
こんにちは、シンクロ・フードの中川です。 今回は、弊社で運用している Rails アプリケーションにおける、CI での RSpec 並列実行のための parallel_tests 導入と、その結果について紹介します。 背景 弊社ではGitHub Actions を使って Rails アプリケーションの自動テストを実行しています。しかし、テストケースの増加に伴い、CI の実行時間が長くなり、開発サイクル全体の速度を低下させるという課題がありました。 そこで、RSpec を並列で実行できる parallel_tests という gem を導入し、CI の速度改善を行うことにしました。paralle…
5ヶ月前

2025年3月時点のシンクロ・フードの技術構成
シンクロ・フード エンジニアブログ
シンクロ・フードの越森です。 以前、2022年8月に技術構成を紹介する記事を書きましたが、2025年3月末時点での代表的な技術構成をお伝えする記事を書きたいと思います。 求人票にも書いたりしていますが、ここではより詳しく説明をしたいと思います. 言語・フレームワーク Ruby & Ruby on Rails Java & Seasar2 PHP & Lumen Express.js React, TypeScript 3年前から変わったこととしては、M&Aによりサービスを譲受したことで PHP & Lumen、Express.js のシステムが増えました。 PHP & Lumen のシステムに…
6ヶ月前

生成AIを利用して物件登録にかかる時間を大幅削減した話
シンクロ・フード エンジニアブログ
はじめまして。開発部の小関と髙木です。 今回は弊社のサービスである「飲食店ドットコム 店舗物件探し」の機能として、生成AIを活用した物件登録補助機能を提供することになったので、開発の進め方と実装した機能についてお話できればと思います。 飲食店ドットコム 店舗物件探し まず、弊社のサービスである「飲食店ドットコム 店舗物件探し」について紹介いたします。本サービスは、飲食店が得意な物件探しサイトとなっており、店舗に強い不動産会社と提携することで、多数の店舗物件や居抜き物件を掲載しております。掲載されている物件には、最寄駅や賃料など物件情報が満載となっております。 機能開発の背景とプロジェクトの流れ…
6ヶ月前

DevOpsの変更リードタイムの可視化システムを作成する
シンクロ・フード エンジニアブログ
こんにちは、2024年新卒入社、開発部の岡塚です。現在は主に求人飲食店ドットコムなどの開発に携わっています。 弊社の新卒エンジニア研修ではWeb開発技術の基礎からシステムの設計・開発までがカリキュラムとして組み込まれています。今回はその中でもシステムの設計・開発を学ぶ「システム設計研修」で私が開発を担当したテーマであった「変更リードタイム可視化機能」について紹介します。弊社の新卒研修については、以下の記事で詳細に紹介されています。 tech.synchro-food.co.jp 背景 弊社では開発生産性向上活動の一環としてFour Keysを用いた生産性計測が行われています。生産性可視化の取り…
6ヶ月前

クロスブラウザテストツールに LambdaTest を導入しました
シンクロ・フード エンジニアブログ
こんにちは。開発部の竹内です。 Web開発において、異なるブラウザやデバイスでの表示・動作確認は欠かせません。しかし、物理デバイスでの確認には限界があり、すべての環境を網羅するのは困難です。より効率的にクロスブラウザテストを実施するために、クラウドベースのテストツール LambdaTest を導入しました。本記事では、その導入の背景や運用、課題について紹介します。 背景 開発時に Web ページのクロスブラウザでの確認が十分にできていないことがありました。特に iOS や Android といったモバイル環境の確認は開発者が私物のデバイスを使って行っており、以下のような課題がありました。 確認…
6ヶ月前

Railsで稼働しているWebサービスをサブディレクトリから新規ドメインに移行しました
シンクロ・フード エンジニアブログ
開発部の光永です。 店舗デザイン.COM・求人@インテリアデザイン・内装建築.com・グルメバイトちゃんなどのサービスの開発に携わっています。 弊社が運営しているサービスの1つであるグルメバイトちゃんで新規ドメインに移行するという開発が行われました。1つのRailsアプリケーションで2つのドメインを利用する形となっていて、あまり見ない例だと思うので、開発の内容や、リリースの手順を紹介します。 グルメバイトちゃんについて まず初めにグルメバイトちゃんがどんなサービスなのか紹介します。 グルメバイトちゃんは2023年から弊社で開発をしている新規サービスです。ショート動画を使ってアルバイト募集をする…
7ヶ月前

プッシュ通知一括送信をFCM Topic送信に置き換えた話
シンクロ・フード エンジニアブログ
はじめまして、開発部の濱野です。 普段は飲食店ドットコムや求人飲食店ドットコムといった弊社の「飲食店と求職者のマッチングサービス」に関わるサービスや業務システムの開発に携わっています。 今回はFirebase Cloud Messaging(以下FCM)のBatch Send API廃止に伴い、プッシュ通知の一括送信機能をFCM Topicへ移行した経緯と移行時の対応方針や検討したことを紹介します。 背景と課題 弊社では求人飲食店ドットコムのAndroid/iOSアプリを作成しており、ユーザの操作に伴って送信される通知のほか、メールマガジンのような一度に大量の通知を送信する機能にFCMを活用し…
7ヶ月前

アプリのローディングUIをスケルトンビューに変える対応で試行錯誤した話
シンクロ・フード エンジニアブログ
はじめまして、モバイルアプリチームの佐々木です。普段は主に求人飲食店ドットコムアプリ(以下、求人アプリ)のiOS開発を担当しています。 「求人飲食店ドットコム」では飲食店専門で求人情報を掲載しており、アプリで求人情報の閲覧から応募、応募先とのやりとりまで行えます。 今回は、初めて調査からリリースまでを一貫して担当した、求人アプリのローディングUIを変更する対応でスケルトンビューを導入したので、その過程で悩んだことや学んだことについて共有します。 スケルトンビューとは そもそもスケルトンビューとはどのようなものかご存知でしょうか? アプリやウェブサイトでデータを読み込んでいる間にページのレイアウ…
8ヶ月前

Lambda(Ruby) + Slack スラッシュコマンドで社内ジョブをクラウド化
シンクロ・フード エンジニアブログ
初めまして、SREチームの柴山です。 今回は 社内サーバーで動いていたデプロイ補助ツールを、 Lambda+Slack でクラウド化した際の作業を備忘録として共有します。 背景 このツールはオンプレミスの社内サーバー上の Jenkins のジョブとして用意され、都度ウェブブラウザからジョブを実行して実行結果をジョブのログとして確認していました。 この度オンプレミスの社内サーバーを廃しクラウドに移行するにあたり、 Slack からも見れるようにしたいとの要望があり、本対応を行いました。 構成概要 処理の流れは以下のようになっています。 ユーザーがスラッシュコマンドを実行 Slack から 認証用…
9ヶ月前

Slackを活用したチームの課題解決と共有プロセス
シンクロ・フード エンジニアブログ
こんにちは、開発部の椿です。 飲食店ドットコムやモビマルなどのサービス開発・運用保守を担当する「会員企画開発チーム」のチームのリーダーを務めています。 今回は、チーム内で実践している「問題・課題をチーム全体で解決していく」という運用方法についてご紹介します。 運用を始めた経緯 最初のきっかけ 私たちのチームでは毎月バグの振り返り会を開催し、バグ抑制のための対策立案とその振り返りを行っています。 この過程で、技術不足に起因するバグを抑えるため、問題のあるコードをメモし、チームのコーディング規約としてまとめていく方針を立てました。 発展 まず、Slackに問題のあるコードをメモしていく運用を開始し…
10ヶ月前

Kaigi on Rails 2024に参加しました
シンクロ・フード エンジニアブログ
アプリケーション基盤チームの深野です。 普段は社内の開発環境の整備やいくつかのアプリケーションのRuby/Railsのバージョンアップなど、SRE的な業務のインフラ寄りでない部分を主に行っています。 弊社では、業務時間内の扱いとして勉強会や技術カンファレンスに参加できる制度があるため、Ruby Kaigi 2024に続いて人生で2回目の大規模な技術カンファレンスとしてKaigi on Rails 2024に参加してきました。 Ruby Kaigi 2024とは異なり、Kaigi on Rails 2024は弊社は特にスポンサードなどはしていないのですが、快く送り出していただけました。 Kaig…
1年前

社内サーバー上のJenkinsジョブからAWS Codeサービス群にデプロイ処理を移行しました
シンクロ・フード エンジニアブログ
はじめまして、SRE チームの佐藤です。 SREチームの業務として、サービス信頼性向上のためのインフラの構築/改善や保守業務や、開発業務効率向上のためのCI/CD整備等に携わっています。 先日、社内サーバー上のJenkinsジョブで実装されていたビルド/デプロイの仕組みをAWS Code サービス群やAWS Step Functionsを利用した新構成へ移行しました。 今回はその対応や検討の経緯を紹介させていただきたいと思います。 移行の背景 既存構成 シンクロ・フードで提供しているサービスは基本的にRuby on Railsで構築されているのですが、昔から使っているシステムではJava (S…
1年前

シンクロ・フードのエンジニアが書籍購入補助制度を利用して2023年度に購入した書籍ランキングTOP5を紹介します
シンクロ・フード エンジニアブログ
こんにちは、シンクロ・フードの越森です。 昨年、書籍購入補助制度を利用して2022年度に購入した書籍を紹介する記事を書いていますが、今年も2023年度(2023年4月〜2024年3月)に購入した書籍のランキングを紹介してみようと思います。 tech.synchro-food.co.jp 2023年度の購入書籍 2023年度の1年間で購入された書籍数は195冊で、エンジニアは35名在籍していることから1人当たり5.6冊購入している計算になります。 2023年度の購入書籍ランキングTOP5 次に2023年度に購入された書籍のランキングTOP5は以下になります。 順位 書籍名 購入冊数 1位 システ…
1年前

求人@インテリアデザインのRailsリプレースが完了したのでリプレースの効率とバグの傾向を分析してみた
シンクロ・フード エンジニアブログ
はじめまして、開発部の大沼です。 求人インテリア・内装建築・グルメバイトちゃんなどのサービスの開発に携わっています。 2019年から始まった求人@インテリアデザイン(以下求人インテリア)のRailsへの移行プロジェクト(以下Railsリプレース)が完了したので、それについてお話ししたいと思います。 Railsリプレースの報告と共に他サービスでリプレースを行っていくときの参考になればと思い効率とバグの傾向を分析することにしました。 求人インテリアとは 求人インテリアは2005年にサービスを開始しているインテリアデザイン業界に絞った専門求人サービスです。 以前はJavaとSeasar2を使用して開…
1年前

担当サービス体験会をやってみた
シンクロ・フード エンジニアブログ
こんにちは。開発部の飛澤です。 求人飲食店ドットコム関連サービスの開発・運用保守を担当している開発チームのチームリーダーをやってます。 普段は飲食店ドットコムや求人飲食店ドットコムといった弊社の「飲食店と求職者のマッチングサービス」(※以下求人事業)に関わるサービスや業務システムの開発に携わっています。 今回はチーム活動の一環として、担当サービス体験会を実施したのでその感想などをお伝えしたいと思います。 担当サービスについて 弊社の飲食店向けサービス「飲食店ドットコム」は、飲食店の出店・開業から運営、退店までをサポートする経営・運営支援プラットフォームです。私たちの開発チームは、「飲食店運営」…
1年前

突撃!隣のキーボード 2024年
シンクロ・フード エンジニアブログ
こんにちは。 開発部の四之宮です。 エンジニアブログ界で定番となっているであろう「突撃!隣のキーボード」ですが、弊社では記事にしたことがなかったので、この度記事にしてみました。 弊社開発部ではフルリモート制度が導入されており、日本国内であればどこからでもリモートワークで勤務可能となっています。 そのため、自宅の開発環境に投資する社員も増えていますが、まずはキーボードに投資する方も多いのではないでしょうか? そこで、エンジニアを対象にアンケートの実施と、数名にこだわりについて語っていただきました。 アンケート結果 弊社のエンジニアを対象に、使っているキーボードについてのアンケートを実施しました。…
1年前

Railsアプリケーションで使われているモデルをRSpecを使って自動的に機能ごと一覧化する
シンクロ・フード エンジニアブログ
こんにちは。開発部の竹内です。 飲食店ドットコムやモビマルといったサービスで Ruby on Rails での開発に携わっています。 Railsアプリケーションで使われているモデルをRSpecを使って自動的に機能ごと一覧化する対応を行いましたので、それについてお話ししたいと思います。 背景 コードを修正するにあたり、既存の機能に影響がないか・整合性があるかを調べるのは重要です。ですが私が所属する会員企画開発チームでは影響範囲の確認が漏れてバグや仕様上の不整合が発生することが多く、課題となっていました。 そのため機能ごとにどのモデルが使用されているかが分かるドキュメントを整備し、影響範囲の調査や…
1年前

Aurora MySQL v3 (MySQL 8.0 互換) へのアップグレード対応
シンクロ・フード エンジニアブログ
はじめまして、SRE チームの村山です。 今回、弊社の主要サービスで使用している Aurora MySQL のアップグレードを行いましたので、対応内容や得られた知見についてご紹介したいと思います。 背景 弊社で使用している Aurora は、2022 年 10 月に Aurora MySQL v1 (MySQL 5.6 互換) から Aurora MySQL v2 (MySQL 5.7 互換) へとアップグレードしております。その際の対応については、以下の記事をご覧ください。 tech.synchro-food.co.jp その後も v2 を使用していましたが、2024 年 10 月 31 日…
1年前

RubyKaigi 2024に参加しました
シンクロ・フード エンジニアブログ
はじめまして、開発部の大庭です。 普段はRuby on Railsを用いたアプリケーション開発を行なっています。 今回、那覇で開催されたRubyKaigi 2024に参加してきましたので、印象に残ったセッションや感想をお伝えしたいと思います。 なお、弊社はSilver SponsorとしてRubyKaigi2024に協賛させて頂きました。 rubykaigi.org 印象に残ったセッション Day1 Keynote 「Writing Weird Code」 発表資料はこちらから確認できます。 Day1のキーノート Writing Weird Code の発表資料です。My day1 keyno…
1年前

中途入社モバイルアプリエンジニアが入社後4ヶ月で感じたこと
シンクロ・フード エンジニアブログ
自己紹介 こんにちは、開発部モバイルアプリチームの横山です。 普段は求人飲食店ドットコムのAndroidアプリの開発をしている私ですが、今年の2月に中途入社しました。 社会人になって10年目になります。 新卒でIT業界とは関係のない業界に就職し、コロナの影響など紆余曲折を経て前職でエンジニアとしてのキャリアをスタートしました。 前職は会社ではWebサイト開発とFlutterを使ってiOS・Androidアプリケーションの開発をしていました。 そんな私が入社して4ヶ月を経とうとしている今、入社エントリーとして、転職活動をしていた当時や、入社してからのシンクロ・フードでの経験を振り返り、感じたこと…
1年前

便利な社内アシスタントBotのシステム構成を大公開!
シンクロ・フード エンジニアブログ
こんにちは、開発部モバイルアプリチームの小関です。 普段は求人飲食店ドットコムのiOS・Androidアプリの開発をしている私ですが、昨年4月に設立された「GPTプロジェクトチーム」にも参加しており、この1年でより一般的にも身近になってきた生成AIをサービスや普段の業務に使えないかと模索する仕事もする日々です。 今回は、そんな「GPTプロジェクト」の一環で作成した社内アシスタントBotによって、ナレッジの検索しづらさを解決しようとした事例をご紹介しようと思います。 GPTプロジェクトとは 弊社では2023年4月から、CTO直下に「GPTプロジェクトチーム」を新設して(*1)、ChatGPTのよ…
1年前

Four Keys によるシンクロ・フード開発チームの生産性可視化
シンクロ・フード エンジニアブログ
はじめまして、シンクロ・フード開発部の眞田です。 今回、シンクロ・フードにおける開発生産性向上活動の一環として開発部 各開発チームのFour Keysを計測しパフォーマンスレベルを比較しました。Four Keysの指標値やデータの分布などを比較していくと各開発チームごとの差異が見られ課題も見えてきましたので、ご紹介しようと思います。 Four Keysの概要 Four Keysは、GoogleのDevOps Research and Assessment(DORA)チームの研究・調査により示されたソフトウェア開発チームのパフォーマンスを表す指標で、4つの指標と指標それぞれに対する4つのレベルで…
2年前