EmotionTechテックブログ

株式会社エモーションテックのProduct Teamのメンバーが、日々の取り組みや技術的なことを発信していくブログです。

プロダクト開発における「60%最速」とは

こんにちは、生成AI事業開発・データサイエンティストのikegameです。 最近当社では、「60%最速」すなわち「60%の成果物を最速で出す」という行動指針を掲げています(ご参考:エモーションテックという船の加速度をあげるために|エモーションテック)。 …

生成AIを利用した製品に対するQAについて

はじめに こんにちは、QAエンジニアのなかじまです。 昨今、生成AIを利用したサービスや製品に触れる機会が増えてきており、弊社でもTopicScanという生成AIを利用したプロダクトを展開しております。 今回は増えつつある生成AIを利用したサービス・機能に対…

GitHubのリポジトリを横断的にライセンスチェックする方法

はじめに こんにちは、PMのかどたみです。 今回はライセンスに関するお話です。以前cargo-deny によるクレートのライセンス確認 という記事でよしかわさんにRustにおいて採用しているクレートに意図しないライセンスが含まれていないかをチェックする方法を…

バグ分析を始めました

はじめに こんにちは、QAチームのもときです。以前、参入後のQAチームの取り組みについて、以下の記事で紹介させていただきました。 https://tech.emotion-tech.co.jp/entry/two-years-passed-enter-qa-team この記事内で紹介できなかったことがいくつかあり…

フロントエンドアプリケーションの assets ファイルのサイズを監視する

はじめに こんにちは、あるいはこんばんは。フロントエンドエンジニアの id:kasaharu です。 Web アプリケーションにユーザーがアクセスしてきたとき、ユーザーはブラウザを介して HTML / CSS / JavaScript といった多くの assets をダウンロードすることが…

Google Cloud Workflows で Cloud Run Jobs を安定運用する方法

こんにちは。バックエンドエンジニアの李です。弊社ではアンケート回答の分析など時間のかかる処理の実行環境として Cloud Run Jobs を活用しています。そこで今回は Cloud Run Jobs を使ったプロダクトを安定運用するための仕組みの一部として、Google Clou…

cargo-deny によるクレートのライセンス確認

はじめに こんにちは。バックエンドエンジニアのよしかわです。Rust を用いた大抵のソフトウェア開発では何らかの外部クレートを用いるかと思います。crates.io で公開されているようなクレートは MIT や Apache-2.0 といったライセンスを採用していることが…

Figmaでラジオボタン+文字入力欄のプロトタイプを実現する

こんにちは!エモーションテックで UX エンジニアをしている高橋(@fusho_takahashi)です。 今回はFigmaのプロトタイプ機能を活用して、以下のようなフォームを実現する方法をご紹介します。 このフォームはユーザーの趣味や興味のある分野について尋ねる内…

Model Context Protocol(MCP)について調べてみた

はじめに 皆様、メリクリです。エモーションテックでバックエンドエンジニアをやっているしん(@sinyo-matu)です。 Anthropic社が11月に公開したModel Context Protocol(MCP)について調べてみたので、こちらの記事では、MCPの紹介とその応用について書きた…

社内勉強会は進化して継続中!

はじめに こんにちはテックリードのかどたみです。 昨年のアドベントカレンダーでプロダクトチームが行っている勉強会のリニューアルについて紹介しました。この記事から1年経過しましたが、提案者である私が育児休暇を取っている間も自然消滅することなく継…

GitHub Actions の permission 設定ミスで突然デプロイできなくなった話

はじめに こんにちはあるいはこんばんは。フロントエンドエンジニアの id:kasaharu です。 エモーションテックでは GitHub Actions のワークフローを使ってフロントエンドのデプロイフローを組んでいます。 少し前にワークフローの permission の設定ミスに…

Angular Material M2からM3へ:見た目を崩さずテーマ移行する方法

Angular Material を愛する皆さんこんにちは!フロントエンドエンジニアの高橋 a.k.a 黄色い人( @fusho_takahashi )です。 エモーションテック Advent Calendar 2024 22 日目の記事を担当させていただきます! M2 のまま使い続ける恐怖 エモーションテック…

1Password CLIでPostgreSQLのロールをセキュアに作成する

はじめに こんにちはProduct Teamのマネージャーのよしだです。弊社では、様々なサービスのバックエンドでPostgreSQLを利用しています。セキュリティを強化するためにロール管理、特に新規ロール作成時のパスワード管理は、非常に重要です。データベーススキ…

Azure OpenAIのモデル管理方法の紹介

はじめに こんにちはProduct Teamのマネージャーのよしだです。エモーションテックでは、生成AIを活用したテキストAI分析サービス「TopicScan®︎」を提供しております。「ChatGPT」の登場以来、生成AIの進化は目覚ましく、日々新しいモデルが登場しています。…

Rust のマクロの実装例

はじめに こんにちは。バックエンドエンジニアのよしかわです。本記事では Rust の簡単なマクロの実装例をご紹介します。 この記事はエモーションテック Advent Calendar 2024の19日目の記事です。 動機 まず今回紹介するマクロを実装した動機について述べま…

LightGBMによる重要度算出の試み

こんにちは。Analyticsチームの川向です。 Analyticsチームはクライアント企業の皆様がよりよい示唆を得られるために、新たな解析手法やビジュアライゼーションを考案しています。今回はその中の一つの取り組みである「決定木モデルにより重要度を算出する試…

旧プロダクトのAurora MySQLを 5.7 から 8.0 へアップグレードしました

はじめに エモーションテックでSREチームに所属しているsugawaraです。先日弊社の旧プロダクトで利用していたMySQL 5.7をMySQL 8.0へアップグレードしました。(旧プロダクトとは、先日アナウンスされた「EmotionTech CX/EXの新環境・パブリックベータ版」に…

SREチームの取り組み2024

はじめに こんにちは、SREのおかざき(@tomoy_715)です。本記事ではSREチームとして今年やってきたことを振り返ってみます。 この記事はエモーションテック Advent Calendar 2024の16日目の記事です。 SREチームの紹介 簡単にSREチームの位置付けについてご紹…

Analyticsチーム脱Excelへの道

1. はじめに: 変革の背景と目的 こんにちは。Analyticsチームの松田です。 Analyticsチームではクライアント企業のCXMおよびEXMに関する課題解決のため、統計解析を用いて主にアンケートデータ等の分析およびレポーティングを行なっているチームです。 今日…

Intersection Observer を利用した仮想スクロール

はじめに こんにちは、フロントエンドエンジニアの有馬です。前回 Intersection Observer を利用して遅延読み込みを行う方法についてお伝えしましたが、応用して仮想スクロールのようなものを実装することもできたので今回はその方法についてお伝えします。 …

BigQueryの結合テストの準備

はじめに こんにちは、テックリードのかどたみです。 今回もテストネタです!こちらの記事でも紹介しましたが、エモーションテックではデータストアとの結合テストを行っています。RDBに関するコードのテストは実行ごとにデータを生成するのですが、BigQuery…

エモテクに参入して2年が経った話

はじめに こんにちは、QAチームのもときです。 私は正社員1人目のQAエンジニアとしてエモーションテックに参入し、今日2024年12月12日で丸2年が経過しました。2年の間にQAチームのメンバーの一員として、どのようにプロダクトに関わってきたかを振り返ってみ…

googletest-rust クレートを使ってみた

はじめに こんにちは、バックエンドエンジニアのおおたわらです。 アドベントカレンダー 2 日目でテストコードの振り返りという記事も公開されましたが、弊社では単体テストをしっかりと書きながらプロダクト開発を進めています。 そんな中でテストをもっと…

GitHub Actions のワークフローを少し安全に書くコツ

はじめに こんにちは。バックエンドエンジニアのよしかわです。本記事では GitHub Actions のワークフローを少し安全に書くコツを一つご紹介いたします。 この記事はエモーションテック Advent Calendar 2024の10日目の記事です。 脆弱性を含むワークフロー…

おいしいCookieを焼きたい

こんにちは!バックエンドエンジニアの谷口(@ravineport)です。 この記事はエモーションテック Advent Calendar 2024の9日目の記事です。 一度言ってみたかったんですこのタイトル。WebのCookieの話です。食べ物のクッキーについてはかつてクッキーのレシ…

Rust から Google Cloud の API を呼び出す

はじめに こんにちは、バックエンドエンジニアのおおたわらです。 何度かこのブログでも紹介しましたが、新サービスの開発ではマイクロサービスの言語の 1 つとして Rust を採用しており、クラウドサービスは Google Cloud をメインに使っています。 現状、G…

Intersection Observer を利用した遅延読み込み

はじめに こんにちは、フロントエンドエンジニアの有馬です。今回は Angular で Web API である Intersection Observer を利用して、 component のデータを遅延読み込みする方法をお伝えします。 この記事はエモーションテック Advent Calendar 2024の7日目…

未経験からプロダクト開発してみた

はじめに はじめまして、データアナリストの柳です。 今回は、私が担当しているプロダクト「分析&レポート資料作成自動化ツール」を開発することになった経緯についてご紹介します。このツールは、手動で数時間かかっていた作業を数分で完了させ、データ分…

エモテクは子育て家庭にも働きやすい職場です!

はじめに こんにちはテックリードのかどたみです。 私事で申し訳ないですが、昨年末に第一子が誕生し幸福度が爆上がりしています。 私生活が子育てでガラッと変化しましたが、多くの方の配慮によって充実した生活を送ることができています。 今回は、その一…

実装予定期間に入ったのに、検討も終わってないよ!ってなったときにやったこと

はじめに こんにちはテックリードのかどたみです。 今回は仮説検証期あるある?、検討がうまくいかずスケジュールがおしちゃった話をしようと思います。 我々プロダクトチームはロードマップという形で年間を通した開発スケジュールを社内に公開しています。…