Uzabase for Engineers
https://tech.uzabase.com/
スピーダ, NewsPicksなどを開発するユーザベースのTech Blog & エンジニア採用サイト
フィード

シン・リスコフの置換原則 〜現代風に考えるSOLIDの原則〜
1
Uzabase for Engineers
speakerdeck.com SOLID原則の中でも最もイメージしづらいとされるLSPですが、実は「オープン・クローズドの原則(拡張に対して開き、修正に対して閉じる)」を守る上で、オブジェクト指向において非常に重要な概念です。 1. LSPの核心は「振る舞いの契約」 LSPを一言で表すと「サブタイプ(子)はスーパータイプ(親)の振る舞いの約束を破ってはならない」という契約です。 静的型付け言語のコンパイラは「型」が合っているかは見てくれますが、「振る舞い」が守られているかまではチェックしてくれません。そのため、これはコンパイラではなく人間が意識して守るべき契約となります。 2. 陥りがちなア…
3日前

Kotlin 2.3 × Java 25 への刷新:Maven 構成の見直しで「最新 LTS」の恩恵を最大化する
Uzabase for Engineers
こんにちは。先日、プロジェクトのビルド基盤を最新の Java 25 (LTS) と Kotlin 2.3 へと一気に引き上げ、あわせて pom.xml の大掃除を行いました。 最新の言語機能を取り入れるだけでなく、マルチモジュール構成における「設定の重複」を排除したことで、保守性が格段に向上しました。その詳細を共有します。 1. なぜやったのか(背景) Java 25 という新たな LTS(長期サポート)版が登場したことを受け、プロジェクトのランタイムを最新化することを決断しました。 これまでの課題: 設定の散乱: 各モジュールの pom.xml に似たようなコンパイラ設定が重複し、変更が漏れ…
4日前

Salesforce 開発を 組織駆動 から ソース駆動 に移行してみた
Uzabase for Engineers
はじめに こんにちは、ユーザベース Sales System Engineering Teamの竹本(あだ名:たけたけ)です! 前回の記事 では、僕たちユーザベースのSalesforce構成をご紹介しました。 その中で、スクラッチOrgを用いたソース駆動開発へ転換を目指す…と締めくくりましたが、ようやく形になってきたので今回はそのストーリーをお伝えできればと考えています。 このブログを通して、よりよいSalesforce 開発体験を作る議論のきっかけになると嬉しい限りです。 なぜ組織駆動開発 > ソース駆動開発に移行したかったのか ① 変更セットでのデリバリー運用の限界を迎えたため ② Dev…
7日前

脱JSON色付け職人!フロントエンドにおける「ドメイン」の考え方
Uzabase for Engineers
この記事は社内のLTで発表したものです。 フロントエンドにおけるドメインモデリングについてあまり記事がないため2つのパートにわけて解説をしました。 今回はフロントエンドとサーバーサイドのドメインの違いにフォーカスして解説しています。 参考文献 WEBフロントエンドにおけるソフトウェア設計の考察 - Speaker Deck 現場で役立つシステム設計の原則 | 技術評論社 エリック・エヴァンスのドメイン駆動設計(Eric Evans 今関 剛 和智 右桂 牧野 祐子 今関 剛)|翔泳社の本
10日前

ソフトウェアを 「道具」にする技術 〜OOUIとAIが交差するフロントエンドのドメインモデリング〜
Uzabase for Engineers
この記事は社内LTで発表したものです。 AI時代においてこれまで銀の弾丸とされていたOOUIでないUIが多く現れています。 この中でどのようにソフトウェアとしての価値を生み出せばよいのかを解説します。 前回の発表でフロントエンドのドメインモデリングは「操作」と「表示」という話をしました。 この内容がなかなかイメージがしづらいという方にとってフロントエンドのドメインモデリングがより深く理解できるよう構成しました。 参考文献 オブジェクト指向UIデザイン | 技術評論社 モードレスデザイン 意味空間の創造 | 株式会社ビー・エヌ・エヌ
10日前

「思考停止」から「意志駆動」へ — AIサークルで見つけた「向き合い方」の力
Uzabase for Engineers
はじめに はじめまして。ユーザベースのOperation組織で業務効率化やAIカルチャーの浸透を推進している久保田です。 Operation領域では生成AIの影響力が急速に大きくなっています。異常検知や事務作業の自動化、問い合わせへの自動回答など効率化できる白地が大きく、効率化を検討する上では不可欠なツールの一つです。 その中で、生成AIとの付き合い方について気づいたことがあります。それは、『物事への向き合い方次第で、個人や企業が生み出す価値に大きな影響があるのではないか』ということです。 この記事では、専門のエンジニア集団ではない私たちが、より価値を生み出せるようなAIとの向き合い方をどのよ…
11日前

「顧客理解」を仕組み化する。AIとの壁打ちが生む「腹落ち」した提案と、『UB仮説作るくん』開発の裏側
Uzabase for Engineers
プレイヤーとして、イネーブルメントとして感じた「CSの課題」 まず簡単に自己紹介ができればと思います。ユーザベースの谷内(やち)と申します。 私は2020年にユーザベースに入社以来、インサイドセールスやフィールドセールスのプレイヤー、実務イネーブルメントを経て、現在はカスタマーサクセス(CS)本部のアカウントマネージャーとして大手企業の営業戦略支援や事業開発支援に従事しています。 www.uzabase.com 私たちの組織は今、大きな転換期にあります。 かつての事業部ごとの縦割り組織から、プロダクトを横断して一貫した顧客体験を提供する組織への統合を進めています。CSの役割も「特定のプロダクト…
17日前

Salesforce トリガーの開発・メンテナンスを楽にするためのフレームワークの設計と実装
Uzabase for Engineers
はじめに こんにちは、株式会社ユーザベース スピーダ事業 Sales System Engineering Teamの村松(あだ名:MJ)です。 ユーザベースのSalesforceのアドミン/デベロッパーを担当しています。 今回は私たちのチームで用いているトリガーフレームワークについてご紹介します! Salesforce開発において、トリガーの管理は規模が大きくなるほど複雑になります。 オブジェクトごとにトリガーが増え、処理順序の制御やメンテナンスが困難になるというのは、 多くの開発チームが直面する課題かと思います。 私たちのチームでも、開発者ごとの設計でトリガー・トリガーフローが実装されてお…
24日前

AIを使い倒して気づいた、人間の役割の変化 — コパイロットからメインパイロットになるのか?
Uzabase for Engineers
こんにちは。ユーザベースでアナリストとしてレポート執筆をしている堀籠です。 アナリスト業務でも、生成AIはここ1~2年で欠かせないツールになってきています。企業や業界の下調査、フレームワークに沿った分析など、ハルシネーションには常に注意しながらもレポート執筆の様々な場面で使用しています。 その中で、最近は、ある変化に気づくようになりました。それは、AIの能力が上がるにつれて、人間の役割が変わってきているということです。 この記事では、業務でのAI活用と、趣味で行っているゲーム開発でのAI活用の両方を通じて、この1年で自分とAIの役割分担がどう変わったかを振り返ります。 業務におけるAI活用の壁…
25日前

Meet UB Tech #63「AI推進を文化に変える!ユーザベース社内イベント『第二回生成AIコンテスト』の舞台裏」を公開しました
Uzabase for Engineers
こんにちは、Uzabaseの角岡です。 ユーザベースのエンジニアカルチャーをゆるっとお伝えするPodcast、Meet UB Tech。 #63のテーマは、「AI推進を文化に変える!ユーザベース社内イベント『第二回生成AIコンテスト』の舞台裏」です。 ユーザベースでは「AIネイティブカンパニー」を目指し、AIと共に高付加価値を創出する仲間が集い、共に進化する組織づくりに取り組んでいます。 その取り組みの一つとして「生成AIコンテスト」を2024年より開催しており、昨年12月に二回目の開催をしました。 今回は、一昨年の生成AIコンテストから審査員及びユーザベース内のAI推進をリードをされている丸…
2ヶ月前

グローバルで加速するAI活用文化。ユーザベースの「生成AIコンテスト2025」開催レポート
Uzabase for Engineers
1. コンテストの概要 ユーザベースでは、生成AI技術の実践的活用を促進し、メンバーの創造性と問題解決能力を引き出すことを目指しています。これまで取り組んできたAI活用の成果を可視化する場の一つとして、「生成AIコンテスト2025」を開催しました。 約30組がエントリーした1次審査から、13組が決勝プレゼンテーションへと進出。当日はユーザベースの丸の内オフィスにて、多くのメンバーが応援に駆けつけました。また、代表取締役CEOの稲垣をはじめとする役員陣が審査員としてプレゼンテーションを評価。白熱した時間となりました。 組織レベルへの進化を目指す6つのゴール 本コンテストでは、以下の6つの目的を掲…
3ヶ月前

AIが拡げるフィードバック体験〜MCPで人事評価データを安全に活用する〜
Uzabase for Engineers
はじめに こんにちは。ユーザベースのCorporate Engineering組織でソフトウェアエンジニアをしている岩本です。 前回の記事では、社内人事評価システム「winwin」の開発の裏側についてお伝えしましたが、今回の記事ではAIを使った評価フローについてお伝えできればと思います。(前回の記事をまだ読まれてない方は、ぜひこの機会に読んでみてください!) winwinのリリース後、使いやすいシステムができたことで多くの社員から好評をいただきました。しかし、「使いやすい」だけで終わらせるのはもったいない。そもそも評価システムを内製開発したことで、人事評価データを自社で確実に管理できるという前…
4ヶ月前

CDK for TerraformによるSnowflakeインフラ管理
Uzabase for Engineers
ソーシャル経済メディア「NewsPicks」のエンジニアの中村です。最近はデータ基盤の開発・運用や、プロダクト開発におけるAI利用のためのルール整備・ツール開発などに取り組んでいます。 NewsPicksではデータ基盤としてSnowflakeを運用しており1、Snowflakeのインフラ管理を行うためのツールとしてCDK for Terraform(CDKTF)を利用しています2。 本記事では、CDKTFを使ったSnowflakeインフラ管理の概要と、実際に運用して感じたメリット・デメリットについて紹介します。想定読者はSnowflakeの運用に携わる方のうち、TerraformもCDKTFも…
4ヶ月前

NewsPicks AI 記事読み上げの開発:TTS モデルの選定
Uzabase for Engineers
こんにちは、ソーシャル経済メディア「NewsPicks」のサーバーサイドエンジニアの池川 @takapiro_ikeike です。 クリスマスですね! NewsPicks Advent Calendar 2025 の 最終日です。 qiita.com 昨日は nakamichi さんによる CDK for TerraformによるSnowflakeインフラ管理 でした! 今回のブログは、NewsPicks の「AI 記事読み上げ機能」の開発にまつわる概要と、そこでの TTS (Text-to-Speech) モデルの選定 に関するお話です。 AI 記事読み上げ機能とは NewsPicks の …
4ヶ月前

NewsPicksのMLOpsにおける特徴量ストアの4つの重要観点 ~SageMaker Feature Store試験運用での学び~
Uzabase for Engineers
皆さんこんにちは!ソーシャル経済メディア「NewsPicks」プロダクトエンジニアの森田(@moritama7431)です。 この記事は NewsPicks アドベントカレンダー 2025 の16日目の記事です。 さて本日は、ざっくり機械学習のプロダクトへの実応用やMLOpsに関する内容です! 本記事は、 機械学習をプロダクトに本番導入している/これから導入したいソフトウェアエンジニア 特徴量ストア(Feature Store)の導入や運用に悩んでいる方 向けに、NewsPicksでSageMaker Feature Storeを4ヶ月間試験運用して得られた実運用の学びを言語化して整理してみた…
4ヶ月前

一年かけてNewsPicksで利用しているAWS ElastiCache for RedisをAWS ElastiCache for Valkeyに移行しました
Uzabase for Engineers
この記事は NewsPicks Advent Calendar 2025 の6日目の記事です。 こんにちは。ソーシャル経済メディア「NewsPicks」のSREチームの飯野です。 今回は、リリースラッシュの裏側で地道に積み重ねてきたコスト最適化施策を振り返る で触れた AWS ElastiCache for Redis から AWS ElastiCache for Valkey への移行について話したいと思います。 コスト最適化施策として移行を行う 移行計画を立てる SLOを守れそうなら日中にオンライン更新を行う 移行準備 パラメータグループの変更内容確認 動作確認 移行作業 まとめ コスト最…
4ヶ月前

ログ仕様書から自動生成されたJarをAIで安全にAndroidアプリに取り込む仕組みをつくった
Uzabase for Engineers
この記事は NewsPicks Advent Calendar 2025 の23日目の記事です。 こんにちは。NewsPicks Androidエンジニアの sefwgweo です。 今回はタイトルの通り、安全で効率的なログ送信用DataClass運用フローについて紹介します。 コード管理されたログ仕様書 NewsPicks では、モバイル・Web いずれのログも TypeScript から出力されるログ仕様書 を参照しています。 この仕様書は Pull Request ベースで管理 されており、新規追加・変更・削除まで一貫してコードで履歴を追える仕組みになっています。 コード管理によるメリッ…
4ヶ月前

フロント初心者が Meta 製ライブラリ Lexical を使ってリッチテキストエディタを作ってみた
Uzabase for Engineers
この記事は NewsPicks Advent Calendar 2025 の22日目の記事です。 昨日は くろみやあい さんによる「育休明け、時短勤務で働くということ──プロダクトデザイナーのキャリアの話」でした。 こんにちは。ソーシャル経済メディア「NewsPicks」のPlatform Engineeringチームの崔(ちぇ)です。 私は入社して以来フロントエンドを触ったことなく過ごしてきました。 新しいチャレンジとして、社内のエディタ作り直しプロジェクトを担当することになり、今年の下半期はほぼ React & Lexical との戦いでした。今日は、Lexicalでエディタを作ってみて色…
4ヶ月前

NewsPicksにおけるモバイル開発でのAI活用
Uzabase for Engineers
こんにちは、ソーシャル経済メディア「NewsPicks」でVP of Mobile Engineering をしております、石井です。 弊社のモバイル開発はFigma MCPを使ってUI構築をしたり、AIを使ってエンジニア以外でも環境構築せずにPRを作れるようにしています。今回はそんな話を書きます。 まず、前提として弊社モバイル開発では、主にClaude Codeを利用しています。他にもCopilotやCodexなど様々利用していますが、開発で利用しているメインは2025年12月現在はClaude Codeになります。 今回の例はAndroidになります。 モバイルエンジニアの場合 UIコンポ…
4ヶ月前

Githubから Snowflake へ OIDC認証方法
Uzabase for Engineers
この記事は NewsPicks Advent Calendar 2025 の17日目の記事です。 こんにちは。 ソーシャル経済メディア「NewsPicks」のQA/SET チームで開発をしている海老澤です。 2025年8月にSnowflake に新しい認証方式 Workload Identity Federation が追加され、 OIDC(OpenID Connect) を利用して、パスワードや API キーといった長期的な認証情報を管理することなく Snowflake に接続できるようになりました。 docs.snowflake.com この記事では GitHub Actions から S…
4ヶ月前

AI時代のビッグウェーブに乗れ!検索知識0の新米エンジニアがレガシーな検索基盤を安全かつ効率的に更新している話(前編)
Uzabase for Engineers
はじめに ソーシャル経済メディア「NewsPicks」SREチーム・エンジニアの樋渡です。このブログは、NewsPicksの NewsPicks Advent Calendar 2025の15日目の記事となります。 今回はAWSリソースの「AWS OpenSearch Service」(以降、OpenSearch)・「Elastic Container Service」(以降、ECS)の機能を活用し、弊社の検索基盤を大幅にアップデートを実施し、AI時代における高い当たり前品質を実現できる検索基盤へ更新しているお話です。 「ベクトル検索」ができなかったレガシーな検索基盤を、多くの機能・高い当たり…
4ヶ月前

ふりかえるまえに、ふりかえられている、ふりかえり
Uzabase for Engineers
この記事は NewsPicks Advent Calendar 2025 の13日目の記事です。 こんにちは。 ソーシャル経済メディア「NewsPicks」のMobileチームで開発をしている寺坂です。 様々なサービスがAI機能を搭載する中、今私が期待を寄せているのは、Notionです。 今年の9月、Notionは「エージェント」として再構築されました。 www.notion.com 特にAIコネクターで外部サービスと繋がるようになったことで、単体では難しかった処理が実現できるようになりました。ここに大きな可能性を感じています。 本記事では、NotionのAI機能を使ってふりかえりの準備を改善…
4ヶ月前

記事画面の表示速度改善の道のり
Uzabase for Engineers
この記事は NewsPicks Advent Calendar 2025 の9日目の記事です。 ソーシャル経済メディア「NewsPicks」のエンジニアの堀です。 今回の記事では、今年プロダクトチームを横断して取り組んできたアプリにおける記事画面の表示速度改善について紹介したいと思います。 また、この記事を通してNewsPicksというプロダクトが色々なチームの協力のもと日々進化しているということが伝われば良いなと思います。 表示速度の重要性 どれだけ速くなったのか 取込記事のネイティブUI対応 APIのスリム化 APIの分割および先読み 4. おわりに 表示速度の重要性 Webサイトやアプリ…
4ヶ月前

アジャイルの練度を上げたいと言われたときに私が考えてること
Uzabase for Engineers
はじめに 本記事は、Uzabase Advent Calendar 2025 12日目の記事です。 書こうと思ったきっかけと目的 ユーザベースに入社してから5年目になりました。 入ってから2〜3年くらいはスクラムとXPの違いは何か、フルタイムのペアプロや計画づくりが難しいということで右往左往していました。 アジャイルについて造詣の深いメンバーが多く在籍しているおかげもあり、最近はようやくアジャイルについて多少理解できてきました。 そうなったときに「アジャイルがもっと上手くなるにはどうしたらいいのでしょうか」という相談を受けることが増えてきました。 そのたびに私は「プラクティスを忠実に実践するこ…
4ヶ月前

iOSアプリの機種変対策!端末が変わってもプッシュ通知を届ける仕組み
Uzabase for Engineers
この記事は NewsPicks Advent Calendar 2025 の12日目の記事です。 ソーシャル経済メディア「NewsPicks」でiOSエンジニアをしている金子です。 NewsPicks iOSアプリにて、最近ちょっとユニークな取り組みをしてみました。 例年、新型iPhoneが発売された後の時期にアクティブユーザが減っていく傾向にあることがわかっています。 NewsPicksではプッシュ通知をトリガーにしてアプリを起動してくれるユーザ(逆に言うとあまり能動的には起動しないユーザ)が一定数いるのですが、機種変更によってこうしたユーザがアプリを起動しなくなり、結果としてアクティブユー…
4ヶ月前

どこでも快適な視聴体験を届ける動画配信サイズ最適化の取り組み
Uzabase for Engineers
この記事は NewsPicks Advent Calendar 2025 の8日目の記事です。 前回はプリンシパルエンジニアのむとうさんによる最も妥当な実装を選択せよでした。 はじめに こんにちは、ソーシャル経済メディア「NewsPicks」のエンジニアの上村です。 NewsPicksではオリジナル動画コンテンツを配信しておりほぼ毎日新しいコンテンツが出ています。 ユーザーからの「動画が重くて再生できない」「ダウンロードサイズが大きすぎる」といった声を受けて、動画配信サイズの最適化に取り組みました。 ユーザーレビューでは以下のような指摘が継続的に寄せられていました。 ストリーミング再生しようと…
4ヶ月前

開発から実際の運用まで5ヶ月! 社内人事評価システム「winwin」開発の裏側
Uzabase for Engineers
はじめに こんにちは。ユーザベースのCorporate Engineering組織でソフトウェアエンジニアをしている石田です。私たちのチームは、社内向けシステムの開発を担当しています。 この記事では、ユーザベースの新しい社内人事評価システム「winwin(ウィンウィン)」について、どのような経緯で評価システムの内製化にいたったのか、実際の開発はどうだったのかの舞台裏をお伝えします。 2025年9月のPodcastで話した内容をもと書いていますので、音声で聞きたい方はぜひこちらを聞いてみてください。 tech.uzabase.com 1. なぜ自社開発を選んだのか? リプレイスの背景にあった2つ…
4ヶ月前

ポジティブフィードバックでチームを強くする
Uzabase for Engineers
本記事は、Uzabase Advent Calendar 20257日目の記事です。 他にも面白い記事がたくさんあるので、ぜひ読んでください! 年末ということで明るい話がいいなと思い、「みんなのフィードバック大全」 1 という書籍を読んだので、特にポジティブフィードバック(以下PFB)について、その内容と読んだ感想をまとめていきます。 ポジティブフィードバックの目的 まず、ポジティブフィードバックを実践する目的は大きく分けて二つあります。 相手のため PFBの最大の目的は、相手の成長です。 好ましい行動の強化: いつも明るい人に「今日も明るくて元気いっぱいでいいね」と伝えることで、その行動を定…
4ヶ月前

最も妥当な実装を選択せよ
Uzabase for Engineers
こんにちは。ソーシャル経済メディア「NewsPicks」プリンシパルエンジニアのむとうです。 システムを作っていると、動いた時に「楽しい!」と感じることでしょう。しかし、動かすことで満足してしまってとりあえず動くだけの実装を行ったことが後で問題となった経験、ありますよね。 AI時代だからこそ、動くだけのコードやガチャを回して終わりではなく深く理解した上での妥当な実装を選択することが必要です。JavaScriptで配列の比較を行うという小さな例を題材に、どうすればいいかを計測とコードで見ていきましょう。 一つ一つの決断の質を高めることが、あなたのエンジニアとしての評価、ひいてはあなたが関わるプロ…
4ヶ月前

リリースラッシュの裏側で地道に積み重ねてきたコスト最適化施策を振り返る
Uzabase for Engineers
この記事は NewsPicks Advent Calendar 2025 の5日目の記事です。 こんにちは。ソーシャル経済メディア「NewsPicks」のSREチームの飯野です。 2025年はNewsPicksの使い方が変わるような機能が立て続けにリリースされた一年でした。 3月:BookPicks NewsPicks カイゼン報告 2025.3.26 5月:コメントタイムライン NewsPicks カイゼン報告 2025.5.27 6月:番組フォロー、記者フォロー NewsPicks カイゼン報告 2025.6.24 7月:「業界ウォッチ」タブ、オリジナル記事のAI読み上げ NewsPick…
4ヶ月前