RevComm Tech Blog
https://tech.revcomm.co.jp/
コミュニケーションを再発明し 人が人を想う社会を創る
フィード
RevComm のエンジニアリングチームの 2024 年振り返り
RevComm Tech Blog
皆さんこんにちは。RevComm の CTO の平村 (id:hiratake55, @hiratake55) です。今年もあと数日となりました。この記事では、2024 年の RevComm の開発チームの振り返りを行いたいと思います。 この記事は、RevComm Advent Calendar 2024 の 25 日目の記事です。 1 月: 組織体制変更 1 月には、エンジニア組織の組織変更を行いました。2023 年 12 月まではマトリックス型の組織を採用し、フロントエンドやサーバサイド、インフラ、モバイルなど、それぞれの技術スタックの専門性を活かしながら各開発プロジェクトに所属して開発を…
11日前
Slack Bolt × VertexAIで仕事効率UP!メッセージの校正をスタンプ1つで行うプチ時短ツール
RevComm Tech Blog
こんにちは。Corporate Engineeringチーム所属の@mottake3と申します。本記事はRevComm Advent Calendar 2024 の 24 日目の記事です。 はじめに ツールの説明 実装手順 slack appのインストールとtokenの取得 tokenをSecret Managerに登録 アプリケーションコードの説明 Cloud Runへのデプロイ Event Subscriptionsの設定 Slack Channelへインテグレーションの追加 終わりに 参考 はじめに Slack などのテキストコミュニケーションにおいて、伝えたいことを丁寧な言葉遣いでスム…
12日前
Amazon Bedrock で実現するユーザーごとの RAG 環境構築 - メタデータフィルタリングの活用法
RevComm Tech Blog
はじめに Full-stack チームの豊崎です。 RevComm では、MiiTel Analytics の議事録作成をはじめ、LLM を用いた機能開発が活発に行われています。 今回、社内ユーザーが誰でも利用できる RAG 環境を作成しました。これは、RAG 環境をユーザーに提供するための PoC として実施したものです。 構成 この PoC では、プロダクトへの直接的な機能の埋め込みは行わず、以下のような構成で実装しました。 Amazon Bedrock, Amazon Bedrock Knowledge Bases ベクターストア: Pinecone データソース: S3 dynamoD…
13日前
Apollo Clientを活用した効率的なGraphQLデータ管理とキャッシュ運用
RevComm Tech Blog
はじめに こんにちは! RevComm のフロントエンドエンジニアの楽桑です。 私たちのコールセンターシステムでは、GraphQL を使用してデータを管理しており、これまではRecoil を使ってローカルステートを管理していました。 最近では、Recoil の代わりにApollo Client の Local Cache を採用し、サーバーデータの取得・管理をより簡潔かつ効率的に行っています。 この記事では、Apollo Client のキャッシュ利用について紹介します。 背景 今まではRecoilを使ってグローバルな状態管理を行ってきました。Recoilには以下のようなメリットがあります: …
14日前
Python × Salesforce CPQ APIで商談~見積品目登録プロセスの自動化
RevComm Tech Blog
こんにちは。レブコムのコーポレートエンジニアリングチームの@ken-1200です。 この記事は、RevComm Advent Calendar 2024 の 20 日目の記事です。 1. はじめに 2. 開発の背景・モチベーション 3. 前提条件 4. Salesforce CPQ APIの概要 5. 商談(Opportunity)の作成 6. 見積(Quote)の作成 7. 見積品目(Quote Line Items)の登録 8. ポイントの振り返り 9. 自動化により得られた効果 10. 苦労した点・ハマりどころ 11. まとめ 12. 参考文献 1. はじめに 記事の目的 本記事では、S…
16日前
k6とDatadogを利用して負荷テストをやってみよう
RevComm Tech Blog
はじめに Phone Div Backend チームの西園です。 私たちのチームでは、システムの性能を向上させるために k6 と Datadog を利用した負荷テストを実施しました。本記事では、その際に利用したツールや実施方法について共有します。 想定読者 負荷テストをやったことがない方 k6 を利用したことがない方 負荷テストをやってみたいが方法がわからない方 k6 の結果を Datadog と連携したい方 負荷テストとは 負荷テストは、システムに負荷を与えて挙動を観測するテストです。これにより以下のような情報を得られます: システムのボトルネックの特定。 システムが耐えられる最大負荷の確認…
17日前
SlackからNotion連携アプリを開発して営業組織でナレッジ集約&共有の文化を醸成するまでの流れ
RevComm Tech Blog
はじめに Corporate Engineering という部署で社内営業組織が業務で使用するSalesforceの運用や社内システム開発を担当している瀧山です。 RevCommではコミュニケーションツールとしてSlack、ドキュメント管理ツールとしてNotionを使用しています。 今回は、Slackで投稿された有益なスレッドにリアクション(以下、「スタンプ」と記載)をつけた際にNotion連携するアプリケーションを社内営業組織向けに作成したので概要や仕組みなどを説明したいと思います。 本ブログ内で書かないこと 処理のコーディング 使用技術の詳細な説明 想定読者 Slack Boltを使用した…
18日前
SaaSの開発チームで属人化の解消に取り組んでみた
RevComm Tech Blog
この記事は RevComm Advent Calendar 2024 の 12日目の記事です。 はじめに こんにちは、バックエンドエンジニアの矢島です。 普段は主にバックエンド領域の開発・保守・運用を行っていますが、チームのサブマネージャーとして組織の運用改善なども行っています。 多くのソフトウェア開発チームが1度は直面する課題の一つに「属人化」があります。特定の機能や領域の知識が特定のメンバーに集中してしまい、その人が不在の際に対応できない、あるいは新機能の開発スピードが落ちてしまうといった問題です。 この記事では、弊社のプロダクトMiiTel の開発チームで実施した、属人化の解消への取り組…
19日前
イベント駆動型タスクのためのKubernetesワークロードリソース選定
RevComm Tech Blog
イベント駆動型タスクのKubernetesワークロードリソース選定について実際の設計例を紹介
20日前
フロントエンドエンジニアの知見を活かした Google Analytics 活用方法
RevComm Tech Blog
はじめまして。 RevComm でフロントエンドエンジニアをしている大石と申します。 私の所属しているチームでは、Lean スタートアップの考えを基にプロダクト開発に取り組んでおり、エンジニアが機能を実装してリリースして終わりではなく、そのリリースした機能の利用実態を定量データとして収集し、プロダクト成長の方針などの検討に活かしています。 その定量データを収集する方法として Google Analytics を利用しており、今回の記事では Google Analytics で詳細なデータを収集するための実装方法を紹介します。 ユーザープロパティを設定してユーザーをセグメントで分ける Googl…
23日前
Installing multiple private packages with Poetry
RevComm Tech Blog
Hi, Jose here! I recently began developing a private git package to be used by many services from our organization. While the basic setup was relatively straightforward, I quickly realized how scaling it encompassed many concepts. Factors like integrating with various repositories and adapting your …
24日前
フロントエンドエンジニアがバックエンドに挑戦してみた
RevComm Tech Blog
はじめに RevComm のフロントエンドエンジニアの上川です。MiiTel Call Centerというプロダクトの開発を担当しています。 これまで、ロードマップ機能の開発では、バックエンドとフロントエンドの担当者が完全に分かれていました。 今回は、フロントエンドを担当してきた自分が、バックエンド開発に挑戦してみた経験と、そこから得た学びについて共有したいと思います。 バックエンド開発に挑戦した背景 バックエンドチームが他のタスクに注力している状況を受け、コールセンターの「ロードマップ機能」をフロントエンドチームだけで実装する提案がありました。 以前からバックエンド開発に興味があったため、こ…
25日前
vinxi でメタフレームワークをつくってみる
RevComm Tech Blog
はじめに vinxi はフルスタックアプリケーションやメタフレームワークの構築が可能なパッケージです。 開発サーバーとバンドラーに Vite を、本番サーバーには Nitro を使用しています。 SolidStart や TanstackStart で採用されています。 今回は vinxi を使ってメタフレームワークを作ってみます。 進めるにあたり、公式のサンプルや以下の記事を参考にさせていただきました。 Bullding a React Metaframework with Vinxi Simple RSC With Vinxi セットアップ package.json を作成し、 npm i…
1ヶ月前
Effective Code Review
RevComm Tech Blog
この記事は RevComm Advent Calendar 2024 の 9 日目の記事です はじめに RevComm では Github を使用して開発を行っており、コードレビューの依頼も PR で行われます。Github の PR の画面では変更差分の表示ができるのでレビューにも使えるのですが、個人的にはエディタを使用してレビューするのがお勧めです。 この記事では、エディタを使用してレビューすることのメリットをご紹介します。 エディタでのレビューとは この記事におけるエディタでのレビューとは、エディタで変更差分を表示することを意味します。VS Code など最近のエディタでは拡張機能をイン…
1ヶ月前
DataDog Synthetic Testing を使ってE2Eテスト・外形監視を充実させよう
RevComm Tech Blog
はじめに Phone Divという部署でBackendを担当している中島です。 RevCommではMiiTelをはじめ、複数のマイクロサービスの外形監視をチームごとに行う必要があります。 今回は DataDog Synthetic Testing を利用したE2Eテスト・外形監視の実装、その運用について、知っていることをまとめました。テストの作り方から、Autifyとの違いなどにも触れてみたいと思います。 想定読者 DataDogによるE2Eテスト・外形監視に興味のある方 フロントエンド・バックエンド開発者 システムの保守担当者 Quality Assurance(QA)チームの方 DataD…
1ヶ月前
ReactのuseEffectEventの紹介と現状での代替手段について
RevComm Tech Blog
はじめに 最近、ReactにuseEffectEventという実験的APIが存在することを知りました。 弊社で提供しているMiiTel Phoneにおいては、WebSocketやWebRTCなどによってさまざまなタイミングや箇所で非同期的にイベントが発生します。 その関係もあってuseEffectを広く活用しているのですが、そういった処理をこのuseEffectEventを使うことによって単純化できるのではないかと思い、調べてみることにしました。 注意 useEffectEventは現状では実験的APIです。安定版のReactでは利用することができません。もし試してみたい場合は、下記パッケージ…
1ヶ月前
Atlantis はじめました
RevComm Tech Blog
はじめに Atlantis とは 背景 ディレクトリ構成 モジュールの運用 AWS IAM role の設定 おすすめの Atlantis の機能 特定の条件がパスされないと atlantis apply を実行できないようにしたい atlantis apply が実行されていない Pull Request がマージされないようにしたい まとめ はじめに platform チームの渡部です。 RevComm の platform チームでは、チームトポロジーのプラットフォームチームのように、ストリームアラインドチームの開発における負担を軽減するために、サービスやプラットフォームの提供を行ってい…
1ヶ月前
k8s Job で DataDog にログを出す
RevComm Tech Blog
背景 弊社ではさまざまなログを DataDog に集約しているのですが、一部サービスで EKS on Fargate を利用しており、datadog-agent + fluent-bit のサイドカー構成で DataDog にログを送っています。 その中でも Job を使用した場合にうまく DataDog にログが送れず、困っていました。 Job だとサイドカーが動いてくれない + Job終了時にサイドカーが終了してくれない という状況で、Jobに関してはDataDogを諦めて kubectl や ArgoCD 経由でログを一生懸命読む、という運用が続いていました。 結論 k8s 1.29 か…
1ヶ月前
チーム開発でも安全にTerraformのリファクタリングをしたい
RevComm Tech Blog
はじめに MiiTel Analytics Platformチームの小門です。 RevCommではサービス基盤にAWSとして利用していますが、IaCには主にTerraformを用いています。 基本的にTerraformコードはGitHubで管理され、プルリクエストを介してCI/CDを自動実行してリソースの構築、構成変更を行います。 最近、Terraformコードを管理するリポジトリを新設したり既存のコードをリファクタリングする機会があったためナレッジを共有します。 この記事では、Terraform v1.5以降に導入された機能であるimport/removed/movedブロックを活用する方法…
1ヶ月前
Replacing Upgrade Strategy of EKS Cluster: in-place to Blue/Green
RevComm Tech Blog
By Kenji Yamauchi (Analytics Team) In this blog post, we introduce our new Blue/Green-based upgrade strategy for our Amazon EKS powered RevComm analytics platform along with an automation to streamline the process. This is the English version of a similar blog. Please check this post for the Japanes…
1ヶ月前
PyCon APAC 2024 参加レポート
RevComm Tech Blog
2024年10月25日(金)~27日(日)にインドネシアで開催された PyCon APAC 2024 にバックエンドエンジニアの 松土 慎太郎、陶山 嶺、小門 照太の3名が登壇しました。 tech.revcomm.co.jp 今回はイベントの振り返りとして登壇資料と登壇者の感想を紹介します。 登壇振り返り Empowering your real life with Raspberry Pi 概要: 音声認識及び音声合成を活用して、その日のスケジュールを教えてくれる音声ボットをRaspberry Piによって作ります。初学者の方を対象に、ハンズオン形式でRaspberry Piのパワーを日常生…
1ヶ月前
PyCon APAC 2024でRevCommのエンジニア3名が登壇します
RevComm Tech Blog
MiiTel Platform チームの小門です。 2024年10月25日(金)~27日(日)に開催される PyCon APAC 2024 に RevComm のエンジニア陶山 嶺と松土 慎太郎、わたし小門 照太の3名が登壇します イベント概要 https://2024-apac.pycon.id/ 日程: 2024年10月25日(金)~27日(日) 会場 Universitas Nahdlatul Ulama Yogyakarta チケット ※オンラインチケットもあります 登壇情報 発表一覧とスケジュールは以下に公開されています https://pretalx.com/pycon-apac-…
3ヶ月前
Rules of ReactをベースにReactとは一体なんなのかを改めて考えてみる
RevComm Tech Blog
はじめに Rules of Reactという安全で効果的なReactアプリケーションを記述するためのルールがReact公式から公開されました。 Writing idiomatic React code can help you write well organized, safe, and composable applications. These properties make your app more resilient to changes and makes it easier to work with other developers, libraries, and tools.…
3ヶ月前
PyCon JP 2024でRevCommのエンジニア2名が登壇します
RevComm Tech Blog
2024年9月27日(金)~28日(土)に開催される PyCon JP 2024 に RevComm のエンジニア陶山 嶺と小門 照太の2名が登壇します
3ヶ月前
TechBlog: AWS Startup GenAI GameDayで日本国内で入賞しました!
RevComm Tech Blog
概要 こんにちは、RevCommのエンジニア、加藤(涼)です。今回は、私たちが参加した最高のイベントについてお話しします! 2024年08月26日(月)に弊社から4人1チームがAWS Startup GenAI GameDayに挑戦してきました。 普段はそれぞれ異なるプロジェクトに携わっている私たちですが、この日は一丸となってAWSの最新技術に挑戦しました。 この記事ではその参加レポートを共有します! AWS GameDayとは そもそもAWS GameDayとは何かをご紹介します。 AWSのサイトから引用します。 AWS GameDay は、チームベースの環境で、AWS ソリューションを利用…
4ヶ月前
E-BranchformerとMask CTCで高精度かつ高速な音声認識モデルを構築する
RevComm Tech Blog
概要 こんにちは、RevCommでMiiTelの音声解析機能に関する研究開発を担当している石塚です。前回のRevComm Tech Blogにて、2023年時点でSOTAの精度であったE-Branchformer[1]を利用して日本語の音声認識モデルを構築する記事について書きました。 前回の実験において、E-Branchformerで構築したモデルは、精度ではConformerで構築したモデルより優れていましたが、スピードはConformerで構築したモデルよりも少し遅いものとなっていました。音声認識システムの実運用を考えると、音声認識のスピードは非常に重要です。 そこで今回は、高速な非自己回…
5ヶ月前
React v19に関する周辺ライブラリへの影響と対応状況について
RevComm Tech Blog
はじめに こんにちは。ここ最近、React v19が注目を集めているように感じます。 最近ではついにReact v19のRCバージョンもリリースされました。 Just published React 19.0.0-rc.0. This is the exact build we'll release as 19.0, unless an issue is reported that requires a breaking change. Thank you to everyone who helped us get the release into shape!— Andrew Clark (…
6ヶ月前
EKSのアップグレード方式をin-placeからBlue/Greenへ変更した話
RevComm Tech Blog
Analytics Teamの山内健二です。RevCommの解析基盤に導入されているAmazon EKSクラスタでBlue/Greenアップグレードを導入し、合わせて今後の工数削減のために自動化を行ったので、その内容をご紹介します。 RevCommの解析基盤の概要 アップグレードの内容の前に、簡単にRevCommの解析基盤を簡単に紹介します。RevCommはMiiTel、MiiTel Meetingsなど、複数のプロダクトを提供しておりますが、文字起こしなどの解析を実施する基盤は共通して単一のものとなっています。 この解析基盤は単一のアプリケーションから動いているのではなく、音声認識など解析機…
6ヶ月前
GILを無効化したPythonを早速試してみた (2024/06 更新)
RevComm Tech Blog
Pythonの次期バージョン3.13でGILの解消が予定されています。この記事では、3.13の開発バージョンでGILを無効化する手順とベンチマークの検証結果について記載します。
7ヶ月前
Amazon S3 のコスト削減の計画から実施、効果測定まで
RevComm Tech Blog
はじめに RevComm CTO Office 高田です。 今回は RevComm が提供するクラウドIP電話サービス「MiiTel」の基盤となっている AWS のコストに関するお話です。 MiiTel は多くの音声データ・映像データを保持しているサービスになります。リリースされてから数年が経ち、またユーザも増加しサービス維持費が無視できないものとなってきました。そこでコスト削減の対象として S3 に保管されている音声データに白羽の矢が立ちました。 作業計画 最初にざっくりと作業計画を立てましょう。以下のような流れを想定しました。 データの削除&低コストへの移動対象ピックアップ アプリケーショ…
8ヶ月前