EmotionTechテックブログ

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

埋め込みモデルを利用して2文の類似度を判定する 〜Azure OpenAI・Vertex AIのモデルを比較

エモーションテックで事業開発・データ分析(時々エンジニア)をしているイケガメです。 生成AIの登場によって、テキスト分析の常識は急速に変化しています。 その一方で、自然言語処理における基本的な考え方は、現在も変わっていません。 例えば、テキスト…

データ大量表示!Angular Material vs AG Grid パフォーマンス比較

はじめに フロントエンドエンジニアの有馬です。 弊社のプロダクトのひとつにアンケートシステムがあります。そこにはアンケートの回答データを閲覧する機能がありますが、多くのユーザーが回答するとこのデータ量が膨大になることがあります。まずは何も対…

テストエビデンスについて

はじめに こんにちは、QAエンジニアのなかじまです。 今回は品質を保証するために必要な証跡である「テストエビデンス」について、お話ししようと思います。 テストエビデンスとは テストエビデンスは「テストの証跡」です。 QAにおけるテストは「実際にプロ…

OpenRestyログ構造化奮闘記

はじめに こんにちは。テックリードのかどたみです。 今回も、構造化ログネタです。弊社ではマイクロサービス開発を複数種類の言語、フレームワークで行っていますが、ある程度統一されたフォーマットのログを出力し、運用の円滑化を図っています。アプリケ…

QAチームのタスク整理

はじめに こんにちは、QAチームのもときです。 私は正社員1人目のQAエンジニアとして2022年12月にエモーションテックに参入し、今月で1年半ほどが経ちました。 QAチームとしてどのようにタスクの対応を進めているかを今回ご紹介させていただきます。 日々の…

Angular アプリケーションで ChunkLoadError をハンドリングする

こんにちはあるいはこんばんは。フロントエンドエンジニアの id:kasaharu です。 エモーションテックでは Angular を使ってアプリケーション開発をしています。今回は Angular アプリケーションで ChunkLoadError をハンドリングする対応をおこなったので、…

Angular Material を v18 に update してみた

こんにちは!フロントエンドエンジニアの高橋 a.k.a 黄色い人( @fusho_takahashi )です。 Angular Material は v18 で大幅なアップデートがありました。ついに Material 3 が stable になったのです このアップデートは v15 で MDC-based components が s…

RustのスタックトレースをRuby風に加工する

はじめに こんにちは、バックエンドエンジニアのよしかわです。 今回の題材はRustのスタックトレースの加工です。Google CloudのError Reportingはスタックトレースを利用してエラーのグルーピングなどを行ってくれますが、Rustはその対応言語に入っていませ…

Async Recursion In Rust

こんにちは、リーです。エモーションテックのバックエンドエンジニアとして働いています。 Rust のasync fn は素直には再帰できないらしいという話を聞いたのでその理由と克服方法について調べてみました。 再帰の例 (fibonacci) まずは、再帰のプログラムで…

Error Reporting におけるエラーの報告とグループ化について調べてみた

はじめに こんにちは、バックエンドエンジニアのおおたわらです。 過去にもこのブログで紹介したことがありますが、弊社ではマイクロサービス(言語は Rust、Node.js、Python など)の実行基盤として Cloud Run を利用しています。 アプリケーションのエラー…

Pythonプロジェクトにおけるディレクトリ構成と現状の課題について

はじめに エモーションテックでSREチームに所属しているsugawaraです。 前回書いたブログでは、Pythonプロジェクトで利用しているツールについてご紹介しましたが、 今回はPythonプロジェクトにおけるディレクトリ構成、コンテナのビルドをどのように行なっ…

Startup Angularのハンズオンに参加した話

こんにちは、フロントエンドエンジニアのねだです。 今回は Startup Angular にオンライン参加し、同イベントの新たな試みとして行われたハンズオンで新たな Angular を体感した話を書いてみたいと思います。 Startup Angular は Angular を採用しているスタ…

Angular の新しい制御フローにマイグレーションしてみた

はじめに こんにちは。フロントエンドエンジニアのすずきです。 Angular v17 で developer preview として提供された組み込み制御フロー(built-in control flow)皆さんは試してみましたか? 本記事では、今までの構造ディレクティブ(*ngIf や *ngFor など…

Cloud Runのコンテナインスタンスはいつまで起動するのか試してみた

はじめに こんにちは、エモーションテック SREのおかざきです。 今回は弊社プロダクトで利用しているGoogle CloudのCloud Runについて、実際に動かしてみた中で生じた疑問点を検証してみました。 疑問点 リクエストタイムアウトを超えた処理はどうなるのか …

プロダクトチームのランチ事情

はじめに こんにちは、QAエンジニアのもときです。 この記事はエモーションテック Advent Calendar 2023の25日目の記事です。 私はプロダクトチームに所属しております。今回はプロダクトチームメンバーのランチ事情について、お伝えしたいと思います。エモ…

Web エンジニアが使いたいギャル流行語2023 〜クリスマスイブ特別バージョン〜

聞こえてくるでしょ?鈴の音がすぐそこに。どうもこんばんは。サンタクロースです。 諸人こぞりて むかえ渋谷 ミニスカ サンタの ギャル来ませり ギャル来ませり みなさんも子供の頃から、こんな歌を歌っていたことでしょう。 そう、クリスマスはギャルの季…

エモーションテックの開発体制について(2023年編)

はじめに こんにちは、Product TeamのManagerのよしだです。今年も年末にエモーションテックの体制がどのように変化したかをご紹介します(いわゆる思い出話です)。チームに対する改善施策数が多く全ては書けないので、特に印象に残ったものだけとなります…

Angular Material の mat-paginator にページ指定を追加する

はじめに こんにちは、フロントエンドエンジニアのありまです。皆さんは Angular Material 使っていますか?弊社ではとてもお世話になっています。優秀なUIライブラリなのですが、時々あともう一歩かゆいところに手が届かないことがあります。今回はそんな A…

「フロントエンド開発のためのセキュリティ入門 知らなかったでは済まされない脆弱性対策の必須知識」を読んで

はじめに こんにちは。フロントエンドエンジニアのきぐれです。 今回は今年読んだ本の一冊である「フロントエンド開発のためのセキュリティ入門 知らなかったでは済まされない脆弱性対策の必須知識」について書こうと思います。 この記事はエモーションテッ…

エンジニア採用のキーワード 〜仲間、そして自身の職務経歴を豊かにするために〜

はじめに こんにちは。テックリードのかどたみです。 開発チームの採用では、キーワードの1つに「少しでも職務経歴が豊かになるように」という言葉があります。これは弊社で活動するうえで候補者が成長できる環境を用意できるかという意味とともに、採用担当…

tracing::info! の呼び出しのテストに用いる道具立て

はじめに こんにちは、バックエンドエンジニアのよしかわです。 今回の題材は Rust で tracing::info! などを呼び出すコードのテストです。Rust のプログラムで処理の進捗やエラーを出力するのに tracing の tracing::info! や tracing::error! を使うケース…

Angular に新しく追加された takeUntilDestroyed API について

こんにちはあるいはこんばんは。フロントエンドエンジニアの id:kasaharu です。 エモーションテックでは Angular を使ったフロントエンド開発をしています。 ちょうど 1 年ほど前に Angular に関する記事を書きました。 NgRx ComponentStore の lifecycle h…

Amazon RDS Blue/Green Deploymentsを用いてAurora MySQLテーブルのint型カラムをbigint型に切替してみた

はじめに こんにちは、エモーションテック SREのおかざきです。 弊社プロダクト「EmotionTech」で利用しているAWS Aurora MySQLで17億レコード規模のテーブルをAmazon RDS Blue/Green Deploymentsを用いてスキーマ変更を行ないました。 *本記事で触れるプロ…

Dataflowのエラーハンドリング四方山話

はじめに こんにちは!バックエンドエンジニアの谷口(@ravineport)です。 以前、「サンプルコードからざっくり理解するDataflowでストリーム処理」という記事を書きました。今回はDataflowでストリーム処理をする際のエラーハンドリングについて触れたいと思…

ただいまQA to AQ中

◯ はじめに エモーションテックに2ヶ月前にjoinしましたQAエンジニアの中島です。 私はウォーターフォール開発(以降、従来型開発)の現場に長くおり、アジャイル開発でのQA活動はエモーションテックが初めての経験となりました。 QAとしてのベース部分は変…

Productチームがドメイン知識を得るため始めた「biz勉強会」

はじめに この記事は、エモーションテックアドベントカレンダー14日目の記事になります。 こんにちは エモーションテックでPdMをしている “みねいつ” です。 「今年のアドベントカレンダーはなにを書こう?」 とネタについて毎年悩みますよね。 それと同時に…

エモーションテックのPythonプロジェクトで利用しているツールについて

はじめに エモーションテックでSREチームに所属しているsugawaraです。エモーションテックではPythonを利用しているプロジェクトがいくつかあります。そのプロジェクトで利用しているツールについて、今回はご紹介できればと思います。 この記事は エモーシ…

最近のフロントエンドチームの雰囲気とフロントエンド相談会について

こんにちは、フロントエンドエンジニアのねだです。 今回は弊社のフロントエンドチーム内で行われているフロントエンド相談会を紹介してみたいと思います。 フロントエンドチームの雰囲気を少しでもお伝え出来れば幸いです。 この記事はエモーションテックア…

エンジニアから見た、エモーションテックの開発チームってこんな感じ

はじめに こんにちは、バックエンドエンジニアのおおたわらです。 今回はエンジニア目線で、開発チームの特徴や雰囲気を紹介してみたいと思います。 個人の主観が含まれますが、なるべくそう感じた具体的な出来事も書いています。 開発チームについて気にな…

「フロントエンド開発のためのテスト入門」を読んで

はじめに こんにちは。フロントエンドエンジニアのすずきです。 今回は今年読んだ本の一冊である「フロントエンド開発のためのテスト入門 今からでも知っておきたい自動テスト戦略の必須知識」について書こうと思います。 この記事はエモーションテックアド…