香りEC カラリアを支える技術
こんにちは。株式会社High LinkのCTOの野川賢二郎 (@nogaken)です。この記事では、新しくハイリンクにジョインした方や、これからするかもしれない候補者を主な対象に、カラリアを支える技術スタックを紹介しそれぞれの技術を使用するに至った経緯などを簡単に紹介していきます。サービス概要と全体の構成についてハイリンクでは「COLORIA...
View Articledbtを導入して小規模チームでも運用可能なデータマネジメント体制を構築した話
はじめにこんにちは。株式会社High Linkのデータユニットマネージャーの芦川 (@assy)...
View ArticleBigQueryへEmbulkで転送するバッチ処理を改善した話
はじめにこんにちは, 基盤開発チームの奥山(okue)です.High Link では, BigQuery を活用してデータの分析や可視化, 機械学習への活用を行っています.アプリケーション DB の BigQuery へ転送には, AWS ECS Fargate + Embulkという構成でバッチ処理を実行していましたが, いくつか運用上の問題点がありました.本記事では, BigQuery...
View ArticleGitHub Actions OIDCを活用してTerraform CIをセキュアにする話
はじめにこんにちは, 基盤開発チームの奥山(okue)です.基盤開発チームでは,tech.high-link.co.jpのように, サービス開発の基盤に関する開発を行っています.カラリアでは, AWS上のインフラ構築に Terraform を利用しており, 2種類の CI を GitHub Actions で実装しています.Pull Request が作成されたら terraform...
View ArticleSWRを導入してユーザー体験を向上させた話 (Next.js)
こんにちは、プロダクト開発エンジニアの神長(kaminaga)です。High Linkでは「カラリア 香りの定期便」などのサービスを開発しています。coloria.jp「カラリア 香りの定期便」はNext.jsを利用して構築されており、今回はユーザー体験の向上を目的に、データ取得/キャッシュライブラリの...
View ArticleSQLFluffではじめるお手軽コーディング規約導入
はじめにこんにちは。株式会社High Link データエンジニアの谷口祐太郎(@ytaniguchi811)です。私たちのチームは全社的にデータの利活用を推進できるよう、分析基盤の開発に日々取り組んでいます。Data WarehouseとしてはBigQueryを採用しており、分析用のテーブルはdbtとGitHubを連携させてコードで管理しています。...
View Articleカラリアの物流管理システムを自社開発している理由
はじめにこんにちは、ロジスティクスマネージャーの横山(@katsuya_high)です。ハイリンクでは「COLORIA (カラリア)」という香り商品のECサービスを運営しています。中でも「カラリア 香りの定期便」は、毎月ユーザが選んだ香り商品をお届けする月額制のECサービスです。従来購入障壁が高かった香水をはじめとする香り商品を手軽に試し、楽しむことができます。「カラリア...
View ArticleRailsアプリのフロントエンドをじわじわとNext.jsにリプレースした話と、その振り返り
株式会社High LinkのCTOをやっている nogaken (@nogaken1107)です。最近はChatGPTなどのLLM系のアプリケーションを触って楽しんでいます。ハイリンクでは「カラリア 香りの定期便」などのサービスを開発しています。「カラリア 香りの定期便」は2021年まで、フレームワークとしてはRuby on Rails...
View ArticleDatadog ログのアーカイブをBigQueryから見れるようにする話
こんにちは, 基盤開発チームで業務委託として働いている奥山です.弊社で開発しているカラリアというサービスでは, モニタリングに Datadog を利用しており, Railsや Nginx などのログは Datadog に集約しています.基本的には Datadog の UI でログを閲覧・集計すれば十分なのですが, たまにDatadog のログ保存期間よりも古いログを閲覧したいログを他のデータと...
View ArticleLLMを活用したAIフレグランスアドバイザーの仕組みと開発背景
こんにちは!株式会社High Link CTOの nogaken(@nogaken1107) です。ハイリンクでは”香りとの出会いを最適化する”をビジョンとする「カラリア」という香り領域の総合プラットフォームを運営しています。先日、大規模言語モデル (以下LLM)を活用し、探したい香りのイメージに合った香水を提案する「AIフレグランスアドバイザー Kaori 」(以下...
View ArticleCloud Firestore を活用したバッチレコメンドシステムを開発した話
こんにちは,株式会社 High Link で業務委託(副業)として働いている,機械学習(ML)エンジニアの柏木(@asteriam)です.High Link では,カラリア香りの定期便という toCサービスを提供していて,ML エンジニアは,データを武器にした非連続的な事業成長を支える技術開発を担っています.具体的には推薦システムや診断といった部分に ML が活用されています.ハイリンク...
View ArticleActiveRecordのincludesがロックに与える影響と対策
はじめにこんにちは!株式会社High Link ロジスティクス開発エンジニアのかんたろう(@kantarow2813)です。今回はRailsのincludesを使用していて遭遇したロックの問題と、その解決方法及び対策について紹介します。includesとはincludesとはActiveRecordが提供するクエリインターフェイスのひとつで、クエリする際に関連先レコードを一括読み込み(eager...
View ArticleAWS Step Functionsでバッチ処理を並列化した話
はじめにこんにちは、プロダクト開発エンジニアの梶山(@h__kajiyama)です。私たちのチームでは、「カラリア...
View ArticleKaigi on Rails 2023参加レポート:学びからプロジェクトへの応用まで
こんにちは!株式会社High Link プロダクト開発エンジニアのタイガです。 2023年10月27日と28日に行われた Kaigi on Rails 2023 に参加しましたので、その感想などをレポートしていきます。 最後にはトークセッションの内容から実際にプロジェクトに対して実践してみたいと思います。そもそも Kaigi on Railsとは?Kaigi on...
View ArticleBigQuery ExportされたGA4データをもとに「セッションごとの最後の流入チャネル」を抽出する
こんにちは、High Linkでデータエンジニアをしている谷口(@ytaniguchi811)です。私たちは、Webサービス「カラリア...
View Articleカラリアに「香りのギフト」を立ち上げるまで
はじめにこんにちは。エンジニアの百瀬 (@rn0rno)です。カラリアは2019年にリリースされましたが、2023年10月に新たに「カラリア...
View Articleハンディターミナルで物流業務を効率化した話
はじめにこんにちは。株式会社High Link ロジスティクス開発のかんたろう(kantarow)です。今回の記事では、弊社の物流業務を委託している倉庫の検品業務にハンディターミナルを導入して業務を効率化した話を紹介します。ハンディターミナルで動作するアプリケーションはRuby on...
View Articleプロダクト志向な開発チームとエンジニアの役割
はじめにこんにちは、ハイリンクで開発エンジニアをしていますタイガです。この会社に入社してから早いもので半年以上経過しました。今回は「カラリア...
View Articleライブラリのバージョンアップデートを継続的に行う仕組み
はじめにこんにちは、プロダクト開発エンジニアの梶山(@h__kajiyama)です。ライブラリのバージョンアップデートはサービスを提供し続ける上で必要です。しかし、機能開発の速度を求めるあまり疎かになりがちでもあります。そこで、開発速度を維持しつつ、必要なバージョンアップ作業を行う仕組みが大切です。この記事では私たち開発チームがライブラリアップデートに対してどのように向き合い、開発速度を維持しながら...
View ArticleRubyKaigi 2024参加レポート
はじめにこんにちは、ハイリンクでプロダクト開発エンジニアをやっていますタイガです。 先日行われたRubyKaigi 2024に参加した感想をハイリンクのメンバー全員で振り返ったので、それぞれが感じた印象や体験についてレポートしたいと思います。RubyKaigiは世界中のRubyistが集まる年に一度のイベントであり、新しい技術やアイデアに触れる絶好の機会でもあります。...
View Article巨大なデータ負債を作らないための取り組み
こんにちは、株式会社High Link CTOの nogaken(@nogaken1107)です。プロダクト開発企業にとって、データ負債は大敵です。要件に合わないデータ構造、過去データの欠損、不整合データの存在、etc。これらデータに関する負債は、開発スピードの悪化や分析業務の阻害などを通じて事業に大きな悪影響を及ぼします。弊社で開発している香り商品ECのプラットフォームである Coloria...
View Articleカラリアを支える「同梱」の仕組みを統一した話
こんにちは。ロジスティクス開発のかんたろうです。この記事では、カラリアを支えている多様な同梱の仕組みを、物流管理システム側で統一的に扱えるようにした事例を紹介します。既存の仕組みを統合するためにRubyのメタプログラミングなどの柔軟性を活用しているので、興味がある方はご一読ください。カラリアにおける多様な「同梱」カラリアにはいくつかの同梱の仕組みがあり、それらが最終的にお客様にお届けする物を決定して...
View ArticleE2E Testを導入した話
こんにちは。プロダクト開発エンジニアのプリン(@プリン)です。High Linkでは主にフロントエンドを担当しています。最近は趣味でプログラミング言語のZigを触っています。本題ですが、カラリアの開発でE2E Testを始めたのでその取り組みを紹介させていただきます。前提条件弊社では「カラリア 香りの定期便」を開発しています。カラリアのバックエンドがRuby on...
View Articleエラー監視の仕組みを強化した話
ハイリンク開発エンジニアの梶山(@h__kajiyama)です。今回は大切なエラートラッキングの改善についてのおはなしですはじめにサービス運営において、本番環境でのエラーは避けられません。入念に自動テストや動作確認を行なったとしても、予期せぬ障害は発生します。起きてしまったとき、エラートラッキングを適切に行うことで、問題の早期発見や迅速な原因特定を行えます。障害の被害を最小限に抑えるうえで適切で迅速...
View Article