RubyKaigi 2024参加レポート

はじめに こんにちは、ハイリンクでプロダクト開発エンジニアをやっていますタイガです。 先日行われたRubyKaigi 2024に参加した感想をハイリンクのメンバー全員で振り返ったので、それぞれが感じた印象や体験についてレポートしたいと思います。 RubyKaigi…

ライブラリのバージョンアップデートを継続的に行う仕組み

はじめに こんにちは、プロダクト開発エンジニアの梶山(@h__kajiyama)です。 ライブラリのバージョンアップデートはサービスを提供し続ける上で必要です。しかし、機能開発の速度を求めるあまり疎かになりがちでもあります。そこで、開発速度を維持しつつ、…

プロダクト志向な開発チームとエンジニアの役割

はじめに こんにちは、ハイリンクで開発エンジニアをしていますタイガです。この会社に入社してから早いもので半年以上経過しました。 今回は「カラリア 香りの定期便」事業の開発に関わることで感じた我々のチームの特徴とそのチームの中で求められる開発エ…

ハンディターミナルで物流業務を効率化した話

はじめに こんにちは。株式会社High Link ロジスティクス開発のかんたろう(kantarow)です。 今回の記事では、弊社の物流業務を委託している倉庫の検品業務にハンディターミナルを導入して業務を効率化した話を紹介します。 ハンディターミナルで動作するアプ…

カラリアに「香りのギフト」を立ち上げるまで

はじめに こんにちは。エンジニアの百瀬 (@rn0rno)です。 カラリアは2019年にリリースされましたが、2023年10月に新たに「カラリア 香りのギフト」というプロダクトをメインエンジニアとして携わりローンチすることができました。 今回は、新規のプロダクト…

BigQuery ExportされたGA4データをもとに「セッションごとの最後の流入チャネル」を抽出する

本記事では、私たちがBigQueryにエクスポートされたGA4データをもとに「サイトへの流入チャネル」を集計するうえでハマった落とし穴と、それを解決したやり方について共有しようと思います。

Kaigi on Rails 2023参加レポート:学びからプロジェクトへの応用まで

こんにちは!株式会社High Link プロダクト開発エンジニアのタイガです。 2023年10月27日と28日に行われた Kaigi on Rails 2023 に参加しましたので、その感想などをレポートしていきます。 最後にはトークセッションの内容から実際にプロジェクトに対して実…

プルリクエストごとに検証環境が立ち上がるようにした話

株式会社HighLink ロジスティクスエンジニアのかんたろう(@kantarow)です。 私たちは複数のチームで一つのステージング環境を利用しています。masterブランチが更新されるごとにステージング環境へのデプロイが行われ、リリース前には必ずここで動作確認を行…

AWS Step Functionsでバッチ処理を並列化した話

はじめに こんにちは、プロダクト開発エンジニアの梶山(@h__kajiyama)です。 私たちのチームでは、「カラリア 香りの定期便」という、サブスクリプション型のECサービスを開発・運用しています。 こちらのサービスは開始から4年が経過しユーザー数は55万人に…

ActiveRecordのincludesがロックに与える影響と対策

はじめに こんにちは!株式会社High Link ロジスティクス開発エンジニアのかんたろう(@kantarow2813)です。 今回はRailsのincludesを使用していて遭遇したロックの問題と、その解決方法及び対策について紹介します。 includesとは includesとはActiveRecord…

Cloud Firestore を活用したバッチレコメンドシステムを開発した話

こんにちは,株式会社 High Link で業務委託(副業)として働いている,機械学習(ML)エンジニアの柏木(@asteriam)です. High Link では,カラリア香りの定期便という toC サービスを提供していて,ML エンジニアは,データを武器にした非連続的な事業成…

LLMを活用したAIフレグランスアドバイザーの仕組みと開発背景

こんにちは!株式会社High Link CTOの nogaken(@nogaken1107) です。 ハイリンクでは”香りとの出会いを最適化する”をビジョンとする「カラリア」という香り領域の総合プラットフォームを運営しています。 先日、大規模言語モデル (以下LLM)を活用し、探した…

Datadog ログのアーカイブをBigQueryから見れるようにする話

こんにちは, 基盤開発チームで業務委託として働いている奥山です. 弊社で開発しているカラリアというサービスでは, モニタリングに Datadog を利用しており, Rails や Nginx などのログは Datadog に集約しています. 基本的には Datadog の UI でログを閲覧…

スプレッドシートを活用して組織横断的にテーブル・カラムの説明文を入力した話

こんにちは。株式会社High Link で業務委託として働いている、データエンジニアのikki(@ikki_mz)です。 私たちデータチームでは、「データの民主化」を推進しており、全社員がデータ利活用を行えるように、dbtを用いた分析基盤の整備に取り組んでいます。 …

RailsアプリのフロントエンドをじわじわとNext.jsにリプレースした話と、その振り返り

株式会社High LinkのCTOをやっている nogaken (@nogaken1107)です。 最近はChatGPTなどのLLM系のアプリケーションを触って楽しんでいます。 ハイリンクでは「カラリア 香りの定期便」などのサービスを開発しています。 「カラリア 香りの定期便」は2021年ま…

カラリアの物流管理システムを自社開発している理由

はじめに こんにちは、ロジスティクスマネージャーの横山(@katsuya_high)です。 ハイリンクでは「COLORIA (カラリア)」という香り商品のECサービスを運営しています。中でも「カラリア 香りの定期便」は、毎月ユーザが選んだ香り商品をお届けする月額制のE…

SQLFluffではじめるお手軽コーディング規約導入

はじめに こんにちは。株式会社High Link データエンジニアの谷口祐太郎(@ytaniguchi811)です。 私たちのチームは全社的にデータの利活用を推進できるよう、分析基盤の開発に日々取り組んでいます。 Data WarehouseとしてはBigQueryを採用しており、分析用の…

SWRを導入してユーザー体験を向上させた話 (Next.js)

「カラリア 香りの定期便」はNext.jsを利用して構築されており、今回はユーザー体験の向上を目的に、データ取得/キャッシュライブラリの SWRを導入した話です。 SWRはシンプル軽量なライブラリであり、理解も容易で、APIキャッシュによるユーザー体験向上と…

カラリアのデータ基盤と機械学習基盤 - 小さく始めるMLOps

はじめに こんにちは。High Linkのデータエンジニアの芦川 (@hirorororo772) です。 私たちが運営する香水サブスクサービス「カラリア」では、「香水診断」、「レコメンド機能」、「フレグランスプロフィール」など、データを活用したさまざまな機能を提供し…

GitHub Actions OIDCを活用してTerraform CIをセキュアにする話

はじめに こんにちは, 基盤開発チームの奥山(okue)です. 基盤開発チームでは, tech.high-link.co.jp のように, サービス開発の基盤に関する開発を行っています. カラリアでは, AWS 上のインフラ構築に Terraform を利用しており, 2種類の CI を GitHub Actio…

BigQueryへEmbulkで転送するバッチ処理を改善した話

はじめに こんにちは, 基盤開発チームの奥山(okue)です. High Link では, BigQuery を活用してデータの分析や可視化, 機械学習への活用を行っています. アプリケーション DB の BigQuery へ転送には, AWS ECS Fargate + Embulk という構成でバッチ処理を実行…

dbtを導入して小規模チームでも運用可能なデータマネジメント体制を構築した話

はじめに こんにちは。株式会社High Linkのデータユニットマネージャーの芦川 (@assy) です。 私たちのチームでは、データを強みとした事業価値創出を促進するために、データ基盤の整備やデータマネジメント、全社的なデータ利活用レベルの引き上げに取り組…

香りEC カラリアを支える技術

こんにちは。株式会社High LinkのCTOの野川賢二郎 (@nogaken)です。 この記事では、新しくハイリンクにジョインした方や、これからするかもしれない候補者を主な対象に、カラリアを支える技術スタックを紹介しそれぞれの技術を使用するに至った経緯などを簡…