エニグモ開発者ブログ
https://tech.enigmo.co.jp/
海外ファッション通販No1サイトBUYMA(バイマ) を運営する株式会社エニグモのエンジニアブログです。
フィード

BUYMAのWebエンジニアインタビュー/20年続く大規模サービスで、裁量を持って開発の全工程に携わる魅力
エニグモ開発者ブログ
こんにちは、UXデザイングループの宮川です。今回は、エニグモが運営するソーシャルショッピングサイト「BUYMA」で、購入者向け機能を開発するチームのエンジニア、東野さんにインタビューしました。エニグモに入社したきっかけや普段の業務内容、そしてエニグモで働く魅力について伺います。 これまでのキャリアとエニグモに入社した経緯を教えてください 元々、エンジニアとしてキャリアをスタートさせたわけではなく、建築業界で施工管理の仕事をしていました。そこからエンジニアという職業に興味を持ち、独学で勉強してエンジニアとして転職しました。 前職ではエンジニアが5名ほどの小規模な組織に所属し、Web上の店舗情報を…
1ヶ月前

AppSheet初心者向け YouTubeおすすめ動画(見る順番付き)
エニグモ開発者ブログ
こんにちは、エニグモ 嘉松です。 データ活用推進室という部署でデータ活用の推進やマーケティング・オートメーションツール(MAツール)を活用した販促支援、CRMなどを担当しています。 この記事は エニグモ Advent Calendar 2024 の 25 日目の記事です。 はじめに この記事では、AppSheetを学び始めたばかりの私が実際に視聴して役立ったYouTube動画をご紹介します。 効率的にスキルアップできるよう、おすすめの視聴順も一緒にご紹介します。 AppSheetとは AppSheetとは、プログラミングの知識がなくても簡単にアプリを作成できるGoogle社が提供するノーコード…
8ヶ月前

Datadog Live Tokyo 2024 Reprise に参加してきました!
エニグモ開発者ブログ
こんにちは!Webアプリケーションエンジニアの 川本 です! この記事は Enigmo Advent Calendar 2024 の 23日目の記事です。 2024年12月18日に開催された Datadog Live Tokyo 2024 Reprise へ参加してきました。 www.datadoghq.com 10月に行われた Datadog Summit Tokyo 2024 にも参加したのですが、イベント内容の充実度とそこから得た学びが多かったことから今回のイベントにも参加を決めました。 Datadog Summit Tokyo 2024 へ参加した際のレポートを 2日目のAdventC…
8ヶ月前

ノーコード・ローコード:AppSheetがもたらす開発手法と業務スタイルの変化
エニグモ開発者ブログ
こんにちは、GASエンジニア の 佐伯 です。 この記事はEnigmo Advent Calendar 2024の 21 日目の記事です。 この記事ではGoogle製のアプリ開発ツールである、AppSheet について紹介します。 軽く自己紹介になりますが、普段はGAS(Google Apps Script)やBigQueryなどを用いて業務用ツールの開発を行っています。最近はGASとの親和性も高いAppSheetに挑戦しているので、その中で気づいたことをまとめます! 概要 AppSheetの利用を検討している方向けに、AppSheetの基本的な特徴やメリットをまとめる。また、より高度に使いこ…
8ヶ月前

BigQuery上のデータへのアクセス制御
エニグモ開発者ブログ
こんにちは、データエンジニアの中村です。 新卒で入社してから、気づけば2年が経とうとしています。時間の流れは本当に早いものですね。 今回は、私がこれまで取り組んできたデータ基盤におけるアクセス制御に関する技術と取り組みについてお話ししようと思います。 昨日に引き続きデータ基盤関連の記事になりますが、ぜひ最後までご覧ください! この記事はEnigmo Advent Calendar 2024 の20日目の記事です。 目次 背景 ポリシータグとは ポリシータグの利用イメージ ポリシータグによるアクセス制御の仕組み 使ってみた感想 まとめ 最後に 背景 弊社のデータ基盤はBigQueryを利用してお…
8ヶ月前

Lookerで大幅にコスト削減できた話
エニグモ開発者ブログ
こんにちは、データエンジニアの中村です。 弊社ではBIツールとしてGoogle Cloudから提供されているLookerを利用しています。 Lookerの利用者も徐々に増えており、日々データ活用が進んでいることは嬉しいですが、それと比例して気になるのはダッシュボードの表示速度やクエリコスト等のパフォーマンスです。 最近AggregateAwarenessという機能を利用してパフォーマンスを改善することができたので、その機能を利用するに至った背景と、その改善効果を紹介したいと思います。 AggregateAwarenessの詳細な使い方は説明しないので、その点はご了承ください。 この記事はEni…
8ヶ月前

システムリプレイスを乗り越える!成功体験に導く3つの心構え
エニグモ開発者ブログ
こんにちは。エンジニアの竹田です。 BUYMAの検索システムやMLOps基盤の開発・運用を担当しております。 こちらはEnigmo Advent Calendar 2024の18日目の記事です 🎄 はじめに 2024年もいよいよ年の瀬ですね!寒さが増すこの季節、みなさまいかがお過ごしでしょうか? 早速ですが本記事の主題のシステムリプレイスについてです。 ここ言うシステムリプレイスとは、老朽化したシステムの刷新、管理目的での移設など、既存システムがあり、それを何かしらの方法で置き換えることを指しています。 例えば、古くなったオンプレミス環境をクラウドに移行したり、データベースをより新しいものに入…
8ヶ月前

PHPerがRubyistになろうとしてつまづいたところ③SQL
エニグモ開発者ブログ
こんにちは!WEBアプリケーションエンジニアの小松です! この記事は[Enigmo Advent Calendar 2024]の17日目の記事です。 Railsの場合: 自動的に日付オブジェクトとして認識 サンプルコード(Rails) Laravelの場合: 明示的な型変換が必要 サンプルコード(Laravel) RailsとLaravelの比較表 開発者の観点からの結論 Railsのメリット Laravelのメリット Railsの場合: 自動的に日付オブジェクトとして認識 RailsはActiveRecordのORMを利用する場合だけでなく、rawクエリを用いた場合でもdate型はRubyの…
8ヶ月前

PHPerがRubyistになろうとしてつまづいたところ②コンソール
エニグモ開発者ブログ
こんにちは!WEBアプリケーションエンジニアの小松です! この記事は[Enigmo Advent Calendar 2024]の16日目の記事です。 コンソールを使ったデバッグは開発において非常に重要です。フレームワークや言語ごとに特性が異なるため、それぞれの仕組みに慣れる必要があります。以下にPHPやRailsを例に、デバッグ手法や注意点を詳しく解説します。 1. PHPのデバッグ方法 2. Railsのコンソール機能 3. RSpecでのデバッグ 結論 1. PHPのデバッグ方法 PHPにはRuby on Railsのような標準的なコンソール機能(例:rails console)が存在しま…
8ヶ月前

PHPerがRubyistになろうとしてつまづいたところ①シンボル?
エニグモ開発者ブログ
こんにちは!WEBアプリケーションエンジニアの小松です! この記事は[Enigmo Advent Calendar 2024]の15日目の記事です。 PHPの場合 呼び方の具体例 文字列キーを使ったハッシュアクセス 文字列キーアクセスを使う場面 シンボルキーを使ったハッシュアクセス オブジェクト形式(OpenStruct)のアクセス 確認方法 クラス内のインスタンス変数の確認方法 シンボルはRubyのみ存在? PHPの場合 model['full_name'] こういう変数の持ち方を連想配列と呼んでいただけなので、シンボルキーという言葉と発想がなかったです。 呼び出し方でも model['fu…
8ヶ月前

表計算ツールでのサーバ管理台帳を卒業してDCIMツールのNetBoxに移行のことはじめ
エニグモ開発者ブログ
こんにちは、インフラグループの片桐です。 この記事はEnigmo Advent Calendar 2024の 14 日目の記事として、サーバ機器管理台帳を表計算ツールから OSSの「NetBox」に移行した取り組みについて紹介します。 はじめに サーバ機器やネットワーク機器、各機器に付随するIPアドレスの情報など、サーバ機器や関連情報をまとめる為に「機器管理台帳」は欠かせないものになっています。その中で、機器管理台帳はExcelやGoogle スプレッドシート等の表計算ツールで管理されているケースもよく見られます。 表計算ツールを台帳として機器管理している場合、台帳の規模が拡大するにつれて、管…
8ヶ月前

GoogleスプレッドシートとZapierを用いた勉強会チームのリマインド自動化(Zapier編)
エニグモ開発者ブログ
こんにちは!インフラエンジニアの森田です! この記事はEnigmo Advent Calendar 2024の12日目の記事です。 また、11日目のGoogleスプレッドシート編の続きであるため未読であればそちらからご一読いただければと思います。 前回の記事ではZapierで扱うデータのインプットとなるスプレッドシートの解説を行いましたので、今回は処理とアウトプットを行うZapの解説を行います。 現在以下のZapが稼働していますが、 毎月22日に翌月の発表者へまとめてリマインド 毎週月曜日に発表者へリマインドし、発表予定がなければ募集する 発表があれば開始のアナウンスをし、発表予定がなければス…
8ヶ月前

GoogleスプレッドシートとZapierを用いた勉強会チームのリマインド自動化(Googleスプレッドシート編)
エニグモ開発者ブログ
こんにちは!インフラエンジニアの森田です! この記事はEnigmo Advent Calendar 2024の11日目の記事です。 私は社内の勉強会チーム(DeveloperRelationsチーム)としても活動しており、 人力で行なっていたリマインドをZapierで自動化したのでそのご紹介をしたいと思います。 今回は毎週金曜日に実施している軽い勉強会(Hacker'sDelight)のリマインドの自動化を例に記載します。 元々は以下のようなスケジュール管理シートがあり、こちらを人の目で見て翌月の発表者やその週の発表者にSlackでリマインドを送るという運用をしていました。 ただずっと人力でリ…
8ヶ月前

ruby-lspを少し便利にするruby-lsp-addons
エニグモ開発者ブログ
ruby-lspを少し便利にするruby-lsp-addonsの紹介と、vscode でどのように活用できるのかについて紹介したいと思います。
8ヶ月前

データアナリストがネガティブなことを伝えなければならない時に気を付けていること
エニグモ開発者ブログ
こんにちは、データアナリストの井原です。 この記事はEnigmo Advent Calendar 2024の9日目の記事です。 私は、普段データアナリストとしてエニグモで働いています。データからビジネスの意思決定を行うための示唆を出し、関係者に正しく伝えることが主要な業務です。 最近、チームの勉強会でも話題になったのですが、データアナリストは伝え方って大事だよねという話がありました。その場ではさらっと話が進んだのですが、確かに、データアナリストはいつもポジティブな結果ばかりを伝えるわけではありません。企画者が苦労をしてリリースにこぎつけた施策で、結果も期待されていてという状況で、数字がよくなか…
8ヶ月前

KamalでRailsアプリケーションを迅速にデプロイする方法
エニグモ開発者ブログ
こんにちは!Webアプリケーションエンジニアのレミーです! この記事はEnigmo Advent Calendar 2024の 8日目の記事です。 Ruby on Rails 8が新しくリリースされ、Kamalという迅速かつ便利なデプロイツールが統合されました。私はこれまでRuby on RailsアプリケーションのデプロイにCapistranoを使用していましたが、Kamalを試してみると、その便利さと簡単さに魅了されました。 この記事では、Kamalを使用してRuby on Rails 8アプリケーションをAWS EC2サーバーにデプロイする手順を詳しく説明します。 Kamalとは? Ka…
8ヶ月前

BUYMAのユーザーインタビュー『ユーザーの声からまるわかりBUYMA公式スタートガイドを作った話』
エニグモ開発者ブログ
こんにちは!UIUXデザイナーの和田です。 こちらはEnigmo Advent Calendar 2024 の7日目の記事です。 この記事では、定期的に実施しているBUYMAのユーザーインタビューについてご紹介します。 また、ユーザーインタビューで得た気付きをもとに新設した【まるわかりBUYMA公式スタートガイド】についても後述します。 www.buyma.com 1. ユーザーの声を直に聞くメリット エニグモでは、社内のデータアナリストがBUMYAの利用データを分析して日々サービス改善に努めています。 定量的な分析に加えて、的確なUX改善・向上を進めていくためには、ユーザーさまの声を直にお聞…
8ヶ月前

コスト削減と精度維持を両立!類似画像検索システムの内製化成功事例(システム編)
エニグモ開発者ブログ
こんにちは、データサイエンティストの髙橋です。業務では企画/分析/機械学習モデル作成/プロダクション向けの実装/効果検証を一貫して行っています。 この記事では類似画像検索システムの内製化にあたり、システム面での課題をどのように解決したかについて紹介します。内製化の背景や機械学習部分などについては以前作成した記事で説明しており、この記事はその続きとなります。 この記事は Enigmo Advent Calendar 2024 の 5 日目の記事です。 内製化の目的・事業インパクト 類似画像検索のシステム化における課題 システム化における各課題の解決策 「商品画像ダウンロード > セグメンテーショ…
8ヶ月前

効率もモチベーションも爆あがり!Neovimという最強エディターについて
エニグモ開発者ブログ
こんにちは!フロントエンドエンジニアの張です! この記事はEnigmo Advent Calendar 2024の3日目の記事です。 エンジニアは日頃のタスクを対応するためにいろんなツール駆使していますが、絶対になくてはいけないツールと言いますと、やはりテキストエディター一択だと、私は思っています。 そのテキストエディターですが、実は何種類もあって、側から見ると、どれも同じように見えるかもしれませんが、毎日何時間もそれで仕事をするエンジニアにとって、自分に合うエディターを選ぶことは実は仕事の効率とモチベーションに大いに関わっています。 本記事では、ここ約一年半、私が毎日使っている最強エディター…
9ヶ月前

開発エンジニアがDatadog Summit Tokyo 2024に参加した感想
エニグモ開発者ブログ
こんにちは!Webアプリケーションエンジニアの川本です! 最近はBUYMAの出品者向けのチームでパフォーマンス改善に取り組んでおります。 この記事はEnigmo Advent Calendar 2024の 2日目の記事です。 少し日が経ってしまいましたが、2024年10月16に開催された「Datadog Summit Tokyo 2024」に参加してきました。 www.datadoghq.com 直近の業務でパフォーマンス改善に取り組む機会が多かったのですが、その際にオブザーバビリティーの向上を支えてくれる、Datadogに興味を持ちました。開発エンジニアにとってもこれらを活用できると視野が広…
9ヶ月前

パフォーマンスを95%改善!Sidekiqで実現する効率的なジョブ並列化と状態管理
エニグモ開発者ブログ
こんにちは!WEBアプリケーションエンジニアの川本です! この記事はEnigmo Advent Calendar 2024の1日目の記事です。 弊社の運営する BUYMA では、社内システムよりタイムセールを毎週 約100万商品 に設定しています。しかし従来のシステムでは、この処理に 約100時間 もかかっており、運用負荷が大きな課題となっていました。本記事では、パフォーマンス改善によって処理時間を 約5時間 に短縮し、運用効率を向上させた事例をご紹介します。 タイムセール設定機能について 処理フロー タイムセール設定機能はざっくり以下のような処理フローになっています。 CSVファイルのアップ…
9ヶ月前

コスト削減と精度維持を両立!類似画像検索システムの内製化成功事例(機械学習編)
エニグモ開発者ブログ
類似画像検索システムを内製化し、社内で利用していた他社製のものと比較して精度を維持しながらコスト削減が実現できたことについて紹介します。
9ヶ月前

INSERT SELECTやCREATE TABLE ASでWITH句を使う時の注意点
エニグモ開発者ブログ
こんにちは、エニグモ 嘉松です。 BUYMAのプロモーションやマーケティングを担当している事業部に所属しており、その中のデータ活用推進室という部署で会社のデータ活用の推進やマーケティング・オートメーションツール(MAツール)を活用した販促支援、CRMなどを担当しています。 さて、SELECT文で得た結果のデータを(そのまま、直接)テーブルに挿入する INSERT SELECT や、SELECT文で得た結果からテーブルを作成して更にデータまで挿入するCREATE TABLE ASは何かと便利な機能(文法、技?)ですが、WITH句(SELECT文による結果を一時的に名前を付けてテーブルのように利用…
1年前

OAuth2Proxyは便利だよって話
エニグモ開発者ブログ
こんにちは、インフラグループ Kubernetesチームの福田です。 突然ですが、Webアプリケーションでユーザの認証にOIDCを使うことはよくあると思います。 弊社でも様々な箇所でOIDCが利用されてます。 自社で開発しているWebアプリケーションや最近のログイン機能を持つOSSの多くは、OIDC Providerさえ用意すればOIDCを利用することができます。 しかし、現実的にはログイン機能を持たないOSSのWebアプリケーションでOIDC認証を使いたいケースや自前で開発したWebアプリケーションにおいてもわざわざOIDCのクライアント機能を追加実装するのが面倒なケースがあります。 そんな…
1年前

Global Buyma Glimpse Into the Future: Two-Day AI Conference Journey in Istanbul
エニグモ開発者ブログ
Hello, this is Fernand from the Global Buyma Team. As an engineer, I am responsible for maintaining the English version of Buyma. I recently had the opportunity to attend an AI conference along with my manager. I’m excited to share our experiences and insights with you. So fasten your seatbelt, rela…
1年前

Argo Workflowsを使ったPersistentVolumeの定期バックアップ
エニグモ開発者ブログ
Argo Workflowsを使ったPersistentVolumeの定期バックアップ こんにちは。 インフラグループKubernetesチームの福田です。 今回はPV(PersistentVolume)の定期バックアップシステムについて紹介したいと思います。 PVのバックアップについて PVのバックアップといっても色々とありますが、本記事ではスナップショットの取得を意味します。 スナップショットの取得はCSIが対応していれば、external-snapshotterを利用することで、CustomResourceを書くだけで実現できます。 extenal-snapshotterを全く知らない方…
1年前

BUYMAのプロダクトマネージャー/ディレクターの役割とは?
エニグモ開発者ブログ
「安心して何度も利用したくなるマーケットプレイス」を作る!UXデザイングループを紹介 エニグモでTech職種の採用や、採用広報を担当している廣島です。 この記事は、エニグモで新入社員向けのオンボーディング研修として実施する部署紹介プログラムの中で プロダクトマネージャーやディレクター、UI/UXデザイナーが所属するグループであるUXデザイングループマネージャーの山田さんがグループの説明をした内容をまとめた記事です。 グループのミッションや、チーム体制、カルチャー、どのように他チームと連携しながらプロジェクトを推進しているかについて説明します。最後に、BUYMAサービスやUXデザイングループの今…
2年前

BigQueryマニュアル「関数のベストプラクティス(Best practices for functions)」を試してみた結果(その1)
エニグモ開発者ブログ
こんにちは、エニグモ 嘉松です。 BUYMAのプロモーションやマーケティングを行っている事業部に所属、その中のデータ活用推進室という部署で会社のデータ活用の推進やマーケティング・オートメーションツール(MAツール)を活用した販促支援、CRMなどを担当しています。 この記事は Enigmo Advent Calendar 2023 の 25 日目の記事です。 はじめに この記事ではGoogleから提供されているBigQueryのオンライマニュアル「関数のベストプラクティス(Best practices for functions)」を試してみた結果を紹介していきます。 「関数のベストプラクティス…
2年前

元SEがコーポレートエンジニアに転職してみた
エニグモ開発者ブログ
こんにちは! 今年7月に中途入社しました、コーポレートエンジニア(コーポレートIT[CO-IT]チーム) のフルセです! 今年も終盤(早いですねぇ、、)ということで、 Enigmo Advent Calendar 2023 の季節になりました!! クリスマスイブである24 日目を担当する私は入社エントリ・振り返りなど中心に自由に書きたいと思います! なお、この記事が少しでもコーポレートエンジニアに興味がある方や入社を検討してくださっている方の参考になれば幸いです。 Embed from Getty Images 簡単な経歴紹介 そもそもコーポレートエンジニアって何? 実際に入社してみて感じたこ…
2年前

Argo Workflowsを使ったKubernetes(EKS)のアップグレード
エニグモ開発者ブログ
こんにちは、インフラグループ Kubernetesチームの福田です。 この記事は Enigmo Advent Calendar 2023 の22日目の記事です。 皆さんはKubernetesのアップグレード、どうしていますか? Kubernetesは4ヶ月に一回、新しいマイナーバージョンがリリースされ、最新の3つのマイナーバージョンのみサポートされます。 つまり、原則は4ヶ月に一度、アップグレードをやらなければなりません。(最新バージョンであれば最大12ヶ月はサボれるという考え方もありますが。。。) 弊社ではKubernetes環境としてEKSを使っており、Kubernetes本体のリリースと…
2年前