TECH PLAY

株式会社ユーザベース

株式会社ユーザベース の技術ブログ

490

自己株式数・発行済株式数・取引不在の現実に向き合った数ヶ月 こんにちは。株式会社ユーザベースの相川です。 この数ヶ月、自己株式数の取得・登録と、時価総額の算出ロジックに取り組んできました。 振り返ると、やっていたのは機能追加というより、市場データの複雑さを、壊れない業務ルールに翻訳する作業でした。 時価総額の式はシンプルです。 時価総額 = (発行済株式数 - 自己株式数) × 株価 ただし実務では、この3要素が同じ時間軸で揃っていることはほとんどありません。 この「式の単純さ」と「データの複雑さ」のギャップが、実装の本質的な難しさでした。 取引がない期間が、時価総額計算を難しくする 新興市場…
はじめに 株式会社ユーザベース スピーダ事業 竹澤です。 この記事の内容としては、本番稼働中のAPIを止めずに、APIが参照しているDBにNOT NULL制約のあるカラムを追加する1つの方法の紹介です。 私はさまざまなSPEEDAのマイクロサービスから財務値を取得できるような、コアな財務APIの開発に携わっていました。 当初の設計では変則決算を考慮していなかったのですが、開発を進めていくうちに変則決算も必要になりました。 アプリケーションの構成 まずは、ここでこの財務APIの構成を紹介します。 本記事で不要な部分に関しては、省略しています。 ユーザーがAPIを叩くと、アプリケーションは財務AP…
はじめに こんにちは。株式会社ユーザベース Speeda事業の佐藤、小原、阿波連、長岡です。 *1 2026/04/14にGAされた Salesforce Hosted MCP Servers について、スクラッチ環境への接続で一部ハマりどころがありました。 本記事では、接続方法、接続トラブルの原因とその具体的な回避策について、備忘録を兼ねて共有します。 はじめに 手順 遭遇したエラーとその回避策 MCPサーバーでできること おわりに 参考文献 手順 Cursorからスクラッチ組織のMCPサーバーに接続していきます。 スクラッチ組織の作成方法は割愛します。 公式ドキュメントの手順はこちらです。…
こんにちは。株式会社ユーザベースの相川と申します。 今回は分散システムにおいて、一見関係のない「DBエラー」が「ファイルディスクリプタの枯渇」を引き起こし、最終的にバッチ処理全体に波及したケースがあったので、その内容をお話しします。 本記事では、実際に発生した障害事例をベースに、Java/KotlinアプリケーションでHTTPクライアントを扱う際の注意点と、コネクション管理の重要性について解説します。 1. 発生した事象 マイクロサービス構成において、以下の連鎖的な障害が発生しました。 最背後のDBエラー: Service-C のDBで外部キー制約エラーが発生し、レスポンスが遅延・エラー化。 …
はじめに こんにちは。Speeda Product Teamの板倉です。 AIエージェントに「直近3年の売上推移を教えて」と聞いたとき、こんな回答が返ってきた経験はないでしょうか。 2022年の売上は120億円で、前年比+8%の成長でした。 2023年は135億円で前年比+12.5%、2024年は128億円で前年比-5.2%となっています。 2023年に大きく伸びた要因としては…(以下、長文が続く) 数字の羅列をテキストで読まされても、傾向はすぐには掴めません。これがテーブルやチャートで返ってきたら、一目で把握できるはずです。あるいは「条件を絞り込みたい」と思っても、テキストの往復で一つずつ指…
はじめに みなさんこんにちは、株式会社ユーザベース エキスパートプロダクト開発チームの佐藤一徹です。 私たちのチームでは、 Speedaのエキスパート事業を支えるプロダクト群を開発しており、そのうちの一つとして社員がエキスパートを管理するための社内ツールを運用しています。 本記事では、Next.jsのServer Actionにおけるversion skew問題に対して、 Kubernetes + Istioのルーティングで「クライアントと同じバージョンのサーバーにリクエストをルーティングする」仕組みを実装した話を共有します! 問題 最近、ビジネスサイドの方からこんな問い合わせがありました。 …
speakerdeck.com SOLID原則の中でも最もイメージしづらいとされるLSPですが、実は「オープン・クローズドの原則(拡張に対して開き、修正に対して閉じる)」を守る上で、オブジェクト指向において非常に重要な概念です。 1. LSPの核心は「振る舞いの契約」 LSPを一言で表すと「サブタイプ(子)はスーパータイプ(親)の振る舞いの約束を破ってはならない」という契約です。 静的型付け言語のコンパイラは「型」が合っているかは見てくれますが、「振る舞い」が守られているかまではチェックしてくれません。そのため、これはコンパイラではなく人間が意識して守るべき契約となります。 2. 陥りがちなア…
こんにちは。先日、プロジェクトのビルド基盤を最新の Java 25 (LTS) と Kotlin 2.3 へと一気に引き上げ、あわせて pom.xml の大掃除を行いました。 最新の言語機能を取り入れるだけでなく、マルチモジュール構成における「設定の重複」を排除したことで、保守性が格段に向上しました。その詳細を共有します。 1. なぜやったのか(背景) Java 25 という新たな LTS(長期サポート)版が登場したことを受け、プロジェクトのランタイムを最新化することを決断しました。 これまでの課題: 設定の散乱: 各モジュールの pom.xml に似たようなコンパイラ設定が重複し、変更が漏れ…
はじめに こんにちは、ユーザベース Sales System Engineering Teamの竹本(あだ名:たけたけ)です! 前回の記事 では、僕たちユーザベースのSalesforce構成をご紹介しました。 その中で、スクラッチOrgを用いたソース駆動開発へ転換を目指す…と締めくくりましたが、ようやく形になってきたので今回はそのストーリーをお伝えできればと考えています。 このブログを通して、よりよいSalesforce 開発体験を作る議論のきっかけになると嬉しい限りです。 なぜ組織駆動開発 > ソース駆動開発に移行したかったのか ① 変更セットでのデリバリー運用の限界を迎えたため ② Dev…
この記事は社内のLTで発表したものです。 フロントエンドにおけるドメインモデリングについてあまり記事がないため2つのパートにわけて解説をしました。 今回はフロントエンドとサーバーサイドのドメインの違いにフォーカスして解説しています。 参考文献 WEBフロントエンドにおけるソフトウェア設計の考察 - Speaker Deck 現場で役立つシステム設計の原則 | 技術評論社 エリック・エヴァンスのドメイン駆動設計(Eric Evans 今関 剛 和智 右桂 牧野 祐子 今関 剛)|翔泳社の本
この記事は社内LTで発表したものです。 AI時代においてこれまで銀の弾丸とされていたOOUIでないUIが多く現れています。 この中でどのようにソフトウェアとしての価値を生み出せばよいのかを解説します。 前回の発表でフロントエンドのドメインモデリングは「操作」と「表示」という話をしました。 この内容がなかなかイメージがしづらいという方にとってフロントエンドのドメインモデリングがより深く理解できるよう構成しました。 参考文献 オブジェクト指向UIデザイン | 技術評論社 モードレスデザイン 意味空間の創造 | 株式会社ビー・エヌ・エヌ
プレイヤーとして、イネーブルメントとして感じた「CSの課題」 まず簡単に自己紹介ができればと思います。ユーザベースの谷内(やち)と申します。 私は2020年にユーザベースに入社以来、インサイドセールスやフィールドセールスのプレイヤー、実務イネーブルメントを経て、現在はカスタマーサクセス(CS)本部のアカウントマネージャーとして大手企業の営業戦略支援や事業開発支援に従事しています。 www.uzabase.com 私たちの組織は今、大きな転換期にあります。 かつての事業部ごとの縦割り組織から、プロダクトを横断して一貫した顧客体験を提供する組織への統合を進めています。CSの役割も「特定のプロダクト…
はじめに こんにちは、株式会社ユーザベース スピーダ事業 Sales System Engineering Teamの村松(あだ名:MJ)です。 ユーザベースのSalesforceのアドミン/デベロッパーを担当しています。 今回は私たちのチームで用いているトリガーフレームワークについてご紹介します! Salesforce開発において、トリガーの管理は規模が大きくなるほど複雑になります。 オブジェクトごとにトリガーが増え、処理順序の制御やメンテナンスが困難になるというのは、 多くの開発チームが直面する課題かと思います。 私たちのチームでも、開発者ごとの設計でトリガー・トリガーフローが実装されてお…
こんにちは。ユーザベースでアナリストとしてレポート執筆をしている堀籠です。 アナリスト業務でも、生成AIはここ1~2年で欠かせないツールになってきています。企業や業界の下調査、フレームワークに沿った分析など、ハルシネーションには常に注意しながらもレポート執筆の様々な場面で使用しています。 その中で、最近は、ある変化に気づくようになりました。それは、AIの能力が上がるにつれて、人間の役割が変わってきているということです。 この記事では、業務でのAI活用と、趣味で行っているゲーム開発でのAI活用の両方を通じて、この1年で自分とAIの役割分担がどう変わったかを振り返ります。 業務におけるAI活用の壁…
はじめに こんにちは。ユーザベースのCorporate Engineering組織でソフトウェアエンジニアをしている岩本です。 前回の記事では、社内人事評価システム「winwin」の開発の裏側についてお伝えしましたが、今回の記事ではAIを使った評価フローについてお伝えできればと思います。(前回の記事をまだ読まれてない方は、ぜひこの機会に読んでみてください!) winwinのリリース後、使いやすいシステムができたことで多くの社員から好評をいただきました。しかし、「使いやすい」だけで終わらせるのはもったいない。そもそも評価システムを内製開発したことで、人事評価データを自社で確実に管理できるという前…
ソーシャル経済メディア「NewsPicks」のエンジニアの中村です。最近はデータ基盤の開発・運用や、プロダクト開発におけるAI利用のためのルール整備・ツール開発などに取り組んでいます。 NewsPicksではデータ基盤としてSnowflakeを運用しており1、Snowflakeのインフラ管理を行うためのツールとしてCDK for Terraform(CDKTF)を利用しています2。 本記事では、CDKTFを使ったSnowflakeインフラ管理の概要と、実際に運用して感じたメリット・デメリットについて紹介します。想定読者はSnowflakeの運用に携わる方のうち、TerraformもCDKTFも…
こんにちは、ソーシャル経済メディア「NewsPicks」のサーバーサイドエンジニアの池川 @takapiro_ikeike です。 クリスマスですね! NewsPicks Advent Calendar 2025 の 最終日です。 qiita.com 昨日は nakamichi さんによる CDK for TerraformによるSnowflakeインフラ管理 でした! 今回のブログは、NewsPicks の「AI 記事読み上げ機能」の開発にまつわる概要と、そこでの TTS (Text-to-Speech) モデルの選定 に関するお話です。 AI 記事読み上げ機能とは NewsPicks の …
皆さんこんにちは!ソーシャル経済メディア「NewsPicks」プロダクトエンジニアの森田(@moritama7431)です。 この記事は NewsPicks アドベントカレンダー 2025 の16日目の記事です。 さて本日は、ざっくり機械学習のプロダクトへの実応用やMLOpsに関する内容です! 本記事は、 機械学習をプロダクトに本番導入している/これから導入したいソフトウェアエンジニア 特徴量ストア(Feature Store)の導入や運用に悩んでいる方 向けに、NewsPicksでSageMaker Feature Storeを4ヶ月間試験運用して得られた実運用の学びを言語化して整理してみた…
この記事は NewsPicks Advent Calendar 2025 の6日目の記事です。 こんにちは。ソーシャル経済メディア「NewsPicks」のSREチームの飯野です。 今回は、リリースラッシュの裏側で地道に積み重ねてきたコスト最適化施策を振り返る で触れた AWS ElastiCache for Redis から AWS ElastiCache for Valkey への移行について話したいと思います。 コスト最適化施策として移行を行う 移行計画を立てる SLOを守れそうなら日中にオンライン更新を行う 移行準備 パラメータグループの変更内容確認 動作確認 移行作業 まとめ コスト最…
この記事は NewsPicks Advent Calendar 2025 の23日目の記事です。 こんにちは。NewsPicks Androidエンジニアの sefwgweo です。 今回はタイトルの通り、安全で効率的なログ送信用DataClass運用フローについて紹介します。 コード管理されたログ仕様書 NewsPicks では、モバイル・Web いずれのログも TypeScript から出力されるログ仕様書 を参照しています。 この仕様書は Pull Request ベースで管理 されており、新規追加・変更・削除まで一貫してコードで履歴を追える仕組みになっています。 コード管理によるメリッ…