High Link テックブログ

https://tech.high-link.co.jp/

High Link テックブログ

フィード

記事のアイキャッチ画像
プロダクト志向な開発チームとエンジニアの役割
High Link テックブログ
はじめに こんにちは、ハイリンクで開発エンジニアをしていますタイガです。この会社に入社してから早いもので半年以上経過しました。 今回は「カラリア 香りの定期便」事業の開発に関わることで感じた我々のチームの特徴とそのチームの中で求められる開発エンジニアの役割についてお伝えしたいと思います。 プロダクト志向なチームについて 私たちハイリンクのプロダクト開発の一番の特徴として、「全メンバープロダクト志向」であることが挙げられます。これはプロダクトマネージャーはもちろんのこと、開発エンジニアやデータ分析エンジニア、デザイナーチームも含めてすべてのメンバーが意識していることです。 プロダクト志向とは、製…
1ヶ月前
記事のアイキャッチ画像
ハンディターミナルで物流業務を効率化した話
High Link テックブログ
はじめに こんにちは。株式会社High Link ロジスティクス開発のかんたろう(kantarow)です。 今回の記事では、弊社の物流業務を委託している倉庫の検品業務にハンディターミナルを導入して業務を効率化した話を紹介します。 ハンディターミナルで動作するアプリケーションはRuby on Railsを使って開発されています。こういった事例はなかなかないと思いますので、参考までに実際の開発についても紹介します。 ハンディターミナルとは ハンディターミナルはコードの読み取りが可能な携帯端末です。モデルによっては文字認識が可能なものもあります。 この記事では倉庫内の検品業務に話を絞りますが、身近な…
2ヶ月前
記事のアイキャッチ画像
カラリアに「香りのギフト」を立ち上げるまで
High Link テックブログ
はじめに こんにちは。エンジニアの百瀬 (@rn0rno)です。 カラリアは2019年にリリースされましたが、2023年10月に新たに「カラリア 香りのギフト」というプロダクトをメインエンジニアとして携わりローンチすることができました。 今回は、新規のプロダクトをどう作っていったか?という話を中心に、既存のプロダクトに新規のプロダクトを組み込むときに気をつけたことについて書いていきます。 カラリアとは カラリアは、フレグランスのサブスクリプションサービス「カラリア 香りの定期便」と、香りに関する情報を紹介する専門メディア「カラリアマガジン」からなる、香りの総合プラットフォームです。 「カラリア…
3ヶ月前
記事のアイキャッチ画像
BigQuery ExportされたGA4データをもとに「セッションごとの最後の流入チャネル」を抽出する
High Link テックブログ
本記事では、私たちがBigQueryにエクスポートされたGA4データをもとに「サイトへの流入チャネル」を集計するうえでハマった落とし穴と、それを解決したやり方について共有しようと思います。
4ヶ月前
記事のアイキャッチ画像
Kaigi on Rails 2023参加レポート:学びからプロジェクトへの応用まで
High Link テックブログ
こんにちは!株式会社High Link プロダクト開発エンジニアのタイガです。 2023年10月27日と28日に行われた Kaigi on Rails 2023 に参加しましたので、その感想などをレポートしていきます。 最後にはトークセッションの内容から実際にプロジェクトに対して実践してみたいと思います。 そもそも Kaigi on Rails とは? Kaigi on Railsのコアコンセプトは「初学者から上級者までが楽しめるWeb系の技術カンファレンス」です。Kaigi on Railsは技術カンファレンスへの参加の敷居を下げることを意図して企画されています。また、名前の通りRailsを…
5ヶ月前
記事のアイキャッチ画像
プルリクエストごとに検証環境が立ち上がるようにした話
High Link テックブログ
株式会社HighLink ロジスティクスエンジニアのかんたろう(@kantarow)です。 私たちは複数のチームで一つのステージング環境を利用しています。masterブランチが更新されるごとにステージング環境へのデプロイが行われ、リリース前には必ずここで動作確認を行います。 このmasterマージによるデプロイには問題が無いのですが、master以外のブランチの動作確認を行うために手動デプロイを行った場合、ステージング環境での検証が中断される問題が起こります。 そこで、Pull Requestごとに自動で検証環境を立ち上げる仕組みを構築することで、この課題を解決しました。 本記事では、この解決…
6ヶ月前
記事のアイキャッチ画像
AWS Step Functionsでバッチ処理を並列化した話
High Link テックブログ
はじめに こんにちは、プロダクト開発エンジニアの梶山(@h__kajiyama)です。 私たちのチームでは、「カラリア 香りの定期便」という、サブスクリプション型のECサービスを開発・運用しています。 こちらのサービスは開始から4年が経過しユーザー数は55万人に達しました。サービスの成長に伴いシステム内で最も重要なバッチである、サブスクリプション更新バッチの実行時間が徐々に長くなり、そのままだと安定的なサービス運用に支障をきたす可能性がありました。 そこで私たちのチームは、この課題を解決するため、AWS Step Functionsを利用してバッチ処理を並列化することで実行時間を大幅に短縮しま…
7ヶ月前
記事のアイキャッチ画像
ActiveRecordのincludesがロックに与える影響と対策
High Link テックブログ
はじめに こんにちは!株式会社High Link ロジスティクス開発エンジニアのかんたろう(@kantarow2813)です。 今回はRailsのincludesを使用していて遭遇したロックの問題と、その解決方法及び対策について紹介します。 includesとは includesとはActiveRecordが提供するクエリインターフェイスのひとつで、クエリする際に関連先レコードを一括読み込み(eager loading)する機能です。 includesには二つの一括読み込み戦略があり、検索条件に応じてよしなに使い分けるようになっています。二つの戦略はそれぞれpreloadとeager_load…
8ヶ月前
記事のアイキャッチ画像
Cloud Firestore を活用したバッチレコメンドシステムを開発した話
High Link テックブログ
こんにちは,株式会社 High Link で業務委託(副業)として働いている,機械学習(ML)エンジニアの柏木(@asteriam)です. High Link では,カラリア香りの定期便という toC サービスを提供していて,ML エンジニアは,データを武器にした非連続的な事業成長を支える技術開発を担っています.具体的には推薦システムや診断といった部分に ML が活用されています. ハイリンク 機械学習・データエンジニア向け 紹介資料 今回はよりサービス改善がしやすい環境にすべく,機械学習用 API(ML-API)と ML パイプラインの役割を分離させ,ロジック改善を回しやすい環境を作っている…
9ヶ月前
記事のアイキャッチ画像
LLMを活用したAIフレグランスアドバイザーの仕組みと開発背景
High Link テックブログ
こんにちは!株式会社High Link CTOの nogaken(@nogaken1107) です。 ハイリンクでは”香りとの出会いを最適化する”をビジョンとする「カラリア」という香り領域の総合プラットフォームを運営しています。 先日、大規模言語モデル (以下LLM)を活用し、探したい香りのイメージに合った香水を提案する「AIフレグランスアドバイザー Kaori 」(以下 「Kaori」)のα版をリリースしました。 香りの総合プラットフォーム「カラリア」 「AIフレグランスアドバイザー Kaori」 α版をリリース!|株式会社High Linkのプレスリリース この記事では「Kaori」の仕組…
10ヶ月前
記事のアイキャッチ画像
Datadog ログのアーカイブをBigQueryから見れるようにする話
High Link テックブログ
こんにちは, 基盤開発チームで業務委託として働いている奥山です. 弊社で開発しているカラリアというサービスでは, モニタリングに Datadog を利用しており, Rails や Nginx などのログは Datadog に集約しています. 基本的には Datadog の UI でログを閲覧・集計すれば十分なのですが, たまに Datadog のログ保存期間よりも古いログを閲覧したい ログを他のデータと join して SQL で分析したい ことがないでしょうか? カラリアでも最近, Datadog に保存したログを BigQuery でクエリできるようにしたので, 検討した点を話したいと思い…
1年前
記事のアイキャッチ画像
スプレッドシートを活用して組織横断的にテーブル・カラムの説明文を入力した話
High Link テックブログ
こんにちは。株式会社High Link で業務委託として働いている、データエンジニアのikki(@ikki_mz)です。 私たちデータチームでは、「データの民主化」を推進しており、全社員がデータ利活用を行えるように、dbtを用いた分析基盤の整備に取り組んでいます。 tech.high-link.co.jp データの民主化を推進していくにあたり、テーブル・カラムの説明文は非常に重要な役割を占めます。テーブルやカラムが何を意味しているかの説明は、分析をする上ではとても重要です。 しかし、このテーブルやカラムの説明はなかなか厄介で、データベースを開発した開発エンジニアとコミュニケーションをとらないと…
1年前
記事のアイキャッチ画像
RailsアプリのフロントエンドをじわじわとNext.jsにリプレースした話と、その振り返り
High Link テックブログ
株式会社High LinkのCTOをやっている nogaken (@nogaken1107)です。 最近はChatGPTなどのLLM系のアプリケーションを触って楽しんでいます。 ハイリンクでは「カラリア 香りの定期便」などのサービスを開発しています。 「カラリア 香りの定期便」は2021年まで、フレームワークとしてはRuby on Rails (以下Rails)単体で書かれていましたが、デザインリニューアルと合わせて2021年前半から1年間強の時間をかけてフロントエンドをNext.jsにリプレースしました。 結果として開発体験が向上し、気軽に実装できるデザインの幅が広がり、エンジニアの採用面で…
1年前
記事のアイキャッチ画像
カラリアの物流管理システムを自社開発している理由
High Link テックブログ
はじめに こんにちは、ロジスティクスマネージャーの横山(@katsuya_high)です。 ハイリンクでは「COLORIA (カラリア)」という香り商品のECサービスを運営しています。中でも「カラリア 香りの定期便」は、毎月ユーザが選んだ香り商品をお届けする月額制のECサービスです。従来購入障壁が高かった香水をはじめとする香り商品を手軽に試し、楽しむことができます。 「カラリア 香りの定期便」では1ヶ月で使い切れるサイズの香水をお届けしており、完品をそのままお届けするサービスと比べると特殊な物流作業を必要とします。 弊社では、その物流業務を支えるシステムを自社開発しており、今回は自社開発に至っ…
1年前
記事のアイキャッチ画像
SQLFluffではじめるお手軽コーディング規約導入
High Link テックブログ
はじめに こんにちは。株式会社High Link データエンジニアの谷口祐太郎(@ytaniguchi811)です。 私たちのチームは全社的にデータの利活用を推進できるよう、分析基盤の開発に日々取り組んでいます。 Data WarehouseとしてはBigQueryを採用しており、分析用のテーブルはdbtとGitHubを連携させてコードで管理しています。 dbtを用いることで分析テーブルをコード管理できるようになり、私たちのような小規模チームでも管理・運用が非常に楽になりました。詳しくは本テックブログの別記事で説明していますので、よろしければご参照ください。 tech.high-link.co…
1年前
記事のアイキャッチ画像
SWRを導入してユーザー体験を向上させた話 (Next.js)
High Link テックブログ
「カラリア 香りの定期便」はNext.jsを利用して構築されており、今回はユーザー体験の向上を目的に、データ取得/キャッシュライブラリの SWRを導入した話です。SWRはシンプル軽量なライブラリであり、理解も容易で、APIキャッシュによるユーザー体験向上というユースケースをうまく実現できました。
1年前
記事のアイキャッチ画像
カラリアのデータ基盤と機械学習基盤 - 小さく始めるMLOps
High Link テックブログ
はじめに こんにちは。High Linkのデータエンジニアの芦川 (@hirorororo772) です。 私たちが運営する香水サブスクサービス「カラリア」では、「香水診断」、「レコメンド機能」、「フレグランスプロフィール」など、データを活用したさまざまな機能を提供しています。 こういった機能を提供するためには、ロジックの開発だけでなく、安定的に提供するための基盤や開発を加速させるためのCI/CD基盤やデータパイプラインの構築(MLOps)が重要になってきます。 今回は、カラリアにおけるデータを活用した機能の裏側についてご紹介したいと思います。 スタートアップである私たちは、小さくはじめてスピ…
1年前
記事のアイキャッチ画像
GitHub Actions OIDCを活用してTerraform CIをセキュアにする話
High Link テックブログ
はじめに こんにちは, 基盤開発チームの奥山(okue)です. 基盤開発チームでは, tech.high-link.co.jp のように, サービス開発の基盤に関する開発を行っています. カラリアでは, AWS 上のインフラ構築に Terraform を利用しており, 2種類の CI を GitHub Actions で実装しています. Pull Request が作成されたら terraform plan をする Pull Request が main ブランチにマージされたら terraform apply をする 本記事では, GitHub Actions OIDC を用いて, Terr…
2年前
記事のアイキャッチ画像
BigQueryへEmbulkで転送するバッチ処理を改善した話
High Link テックブログ
はじめに こんにちは, 基盤開発チームの奥山(okue)です. High Link では, BigQuery を活用してデータの分析や可視化, 機械学習への活用を行っています. アプリケーション DB の BigQuery へ転送には, AWS ECS Fargate + Embulk という構成でバッチ処理を実行していましたが, いくつか運用上の問題点がありました. 本記事では, BigQuery へDBのデータを転送するバッチ処理を, AWS Step Functions + AWS ECS Fargate + Embulk で実装し改善した話をします. 改善前の構成と問題点 構成 改善前…
2年前
記事のアイキャッチ画像
dbtを導入して小規模チームでも運用可能なデータマネジメント体制を構築した話
High Link テックブログ
はじめに こんにちは。株式会社High Linkのデータユニットマネージャーの芦川 (@assy) です。 私たちのチームでは、データを強みとした事業価値創出を促進するために、データ基盤の整備やデータマネジメント、全社的なデータ利活用レベルの引き上げに取り組んでいます。 データマネジメントをしていると、「誰が作ったかわからない野良のテーブルが乱立している」ことや「BigQueryコンソール上でviewを定義してしまってコードレビューができない」さらには、「テーブル間の依存関係がわからず削除できない」といった課題にぶつかる方は多いんじゃないでしょうか。 私たちもまさにこのような問題に直面し、導入…
2年前
記事のアイキャッチ画像
香りEC カラリアを支える技術
High Link テックブログ
こんにちは。株式会社High LinkのCTOの野川賢二郎 (@nogaken)です。 この記事では、新しくハイリンクにジョインした方や、これからするかもしれない候補者を主な対象に、カラリアを支える技術スタックを紹介しそれぞれの技術を使用するに至った経緯などを簡単に紹介していきます。 サービス概要と全体の構成について ハイリンクでは「COLORIA (カラリア)」という香り商品のECサービスを運営しています。中でも「カラリア 香り定期便」は月額制のECサービスで、毎月ユーザが選んだ香り商品をお届けすることによって従来購入障壁が高かった香水をはじめとする香り商品を手軽に試し、楽しむことができます…
2年前