Uzabase for Engineers
https://tech.uzabase.com/
SPEEDA, NewsPicksなどを開発するユーザベースのTech Blog & エンジニア採用サイト
フィード
言語モデルLUKEを経済の知識に特化させたモデル「UBKE-LUKE」の提案
Uzabase for Engineers
株式会社ユーザベースでUB Researchを担当している高山です。 ユーザベースでは2023年7月からStudio Ousia社と業務提携して、自然言語処理の研究開発に取り組んでいます。今回はその取り組みの一つとして作った言語モデルについて書いていきます。 概要 経済情報を扱う製品群を開発するユーザベースでは、「企業」という情報を扱うことが非常に多くあります。 今回は、ユーザベースの保有する経済情報のデータを学習に利用し、企業エンティティに特化したエンコーダーモデル Uzabase Business Knowledge Encoder based on LUKE (UBKE-LUKE) を作…
9日前
SnowflakeのZeroCopyCloneで開発環境への検索インデックス同期の問題を楽々解決!!
Uzabase for Engineers
はじめに お話の内容 抱えていた課題 コスト index作成処理の問題 どうやって解決していくか 実装後のよかった点 まとめ はじめに ソーシャル経済メディア「NewsPicks」SREチーム・新卒エンジニアの樋渡です。このブログは、NewsPicksの NewsPicks Advent Calendar 2024の24日目の記事となります。 今回は、AWSサービスである「OpenSearch」「ECS」とデータウェアハウスである「Snowflake」を用いて、弊社で使用している開発環境にコスパよく効率的な検索インフラ基盤を構築し、NewsPicksの重要な機能の一つである検索機能の開発者体験…
10日前
CloudWatch Logs Insights (ログのインサイト)で爆速運用
Uzabase for Engineers
この記事は NewsPicks Advent Calendar 2024 の8日目の記事です(が、公開はずっと遅くになってしまいました!)。 ソーシャル経済メディア「NewsPicks」の武藤です。 サービスを安定的に運用するには、アプリケーションの動作状況を把握することが必要不可欠です。これには、定量的な測定(応答速度やメモリ・CPU使用量などの数値的なパフォーマンス指標)と定性的な測定(個別具体の処理の入力や出力など)の両方が必要です。 NewsPicksではNewRelicを活用して定量的な測定を行っています。アドベントカレンダーの7日のブログ記事でもNewRelicを扱っていますのでご…
10日前
Netflixの推薦&検索システム最前線 - QCon San Francisco 2024現地レポート
Uzabase for Engineers
はじめに 現代Webサービスの「推薦システム」基盤 2段階ランキングプロセス ステップ1:候補抽出(First Pass) ステップ2:精密ランキング(Second Pass) モデル評価とA/Bテストサイクル Use Case 1:Netflixのリアルタイム「予測検索」 リアルタイム推薦のインフラストラクチャ Use Case 2:検索と推薦を統合するモデル「UniCoRn」 UniCoRnのポイント 共通モデル化までのプロセス 検索と推薦の比較 統一モデルの実現方法 全体のアーキテクチャ 1. 入力 2. 処理 3. 出力 まとめ はじめに ソーシャル経済メディア「NewsPicks」(…
13日前
Androidで簡単にCompose化したいときは既存のコードを活かし段階的に移行しよう
Uzabase for Engineers
この記事は NewsPicks Advent Calendar 2024 の18日目の記事です。 ソーシャル経済メディア「NewsPicks」(VP of Mobile Engineering) の石井です。 今回は、10年もののNewsPick AndroidアプリでのCompose化をビジネスを止めずにどう進めているかを書いていきます。 タイトルは当たり前な気がしますが、他社の話を聞くと意外と既存コードを活かしてないこともありそうだったので参考になるかもしれないと思い書くことにしました。 既存のアーキテクチャ Android Viewで構築されているアーキテクチャは基本的には、ざっくりと書…
16日前
NewsPicks Stage.のApp Router移行の一年を振り返って
Uzabase for Engineers
こんにちは。ソーシャル経済メディア「NewsPicks」NewsPicks Stage. 事業のエンジニアをしています、林です。 業務では Next.js / Rust / Go などを用いて、経済・ビジネス情報に特化した動画配信サービスである NewsPicks Stage. の開発・運用を行っています。 概要 NewsPicks Stage.(以下Stage.)では去年末ごろから Next.js のフロントエンドを App Router へ段階的移行を進めてきました。 tech.uzabase.com 1年ほどで 半分以上のページが App Router 化 され、知見や感想が溜まってきた…
17日前
ユーザベースで社内イベント「生成AIコンテスト」を開催!全社で広がる生成AI活用の挑戦。
Uzabase for Engineers
こんにちは、ユーザベースの西和田です。 2024年12月12日、弊社で「生成AIコンテスト」を開催いたしました。本記事では、開催に至った背景と当日の様子をご紹介します。社内での生成AI活用の推進をお考えの方々にも、参考になれば幸いです。 ※本イベントレポートの作成においても、生成AIを活用しています。見出しの構成案や文章のベースを生成AIで作成し、具体的な事例を加え仕上げています。 開催背景 ユーザベースは「エンジニアリングを起点に、誰もがビジネスを楽しめる世界の実現」を目指すテクノロジー・カンパニーです。 この想いのもと、2022年4月から「Play Engineering」プロジェクトをス…
17日前
Aurora MySQL 2から3へのアップグレード - 安全性とコストを考慮した移行プロセス
Uzabase for Engineers
ソーシャル経済メディア「NewsPicks」SREチームの美濃部です。 NewsPicksでは複数のサービスでAurora MySQLをメインのデータベースとして利用しています。これまでAurora MySQL 2(MySQL 5.7互換)を使用してきましたが、2024年2月から順次クラスタのアップグレードを開始し、2024年11月にすべてのクラスタをAurora MySQL 3(MySQL 8.0互換)へのアップグレードを完了しました。この記事ではそのアップグレードプロセスについて解説します。 アップグレードの背景 アップグレードを決断した主な要因は、Aurora MySQL 2のサポートが…
19日前
ログ欠損という失敗からの学びと問題解決を振り返る
Uzabase for Engineers
この記事は NewsPicks Advent Calendar 2024 の14日目の記事です。 こんにちは!ソーシャル経済メディア「NewsPicks」の堀です。 主に法人顧客向けのサービスや機能の開発に携わっております。 今回はNewsPicksにおける「ログ」に関する失敗と、その問題解決に向けた取り組みについて紹介したいと思います。 ログは大事 まず、この記事で言及するログとは、OSのシステムログやアプリケーションのエラーログ等ではなく、NewsPicksのユーザーがどんな操作を行なったかを記録している「行動ログ」と呼ばれているものです。 NewsPicksでは、記事のタップ、スクロール…
20日前
Notionだけで、初めてのテスト仕様書~テストケースを作ってみる
Uzabase for Engineers
こんにちは。ソーシャル経済メディア「NewsPicks」でエンジニアをやっております、崔(ちぇ)です。最近では検索だけではなくもっと広範囲にシステム開発に携わっております。今日はQAエンジニアではない私が、初めて総合テストを設計段階からチャレンジした話をしてみようと思います。 弊社は社内ツールとしてNotionを利用しており、最初から最後までNotionだけを使うという試みをしてみました。総合テストの設計が初めての方はもちろん、Notionの活用事例が気になる方も読んでいただけると幸いです。 この記事はNewsPicks Advent Calendar 2024の13日目の記事です。昨日は桐畑…
20日前
システム障害を素早く解決するための考え方・工夫について
Uzabase for Engineers
この記事は NewsPicks Advent Calendar 2024 の12日目の記事です。 こんにちは。ソーシャル経済メディア「NewsPicks」エンジニアの桐畑です。 今回は「システム障害を素早く解決するための考え方・工夫について」というテーマでお伝えしたいと思います。 NewsPicksサービス状況・障害対応 障害の原因分類 障害の原因特定・解決までのステップ 1. 障害の状況確認・再現 2. 原因特定 3. 解決方法の検討 素早く原因特定・解決するための考え方・工夫 おわりに NewsPicksサービス状況・障害対応 NewsPicksも今年でサービス開始して11年を迎えました。…
21日前
NewsPicks iOSアプリのリアーキテクチャの現在地 ~Swift Package中心の世界へ~
Uzabase for Engineers
この記事は NewsPicks Advent Calendar 2024 の11日目の記事です。 ソーシャル経済メディア「NewsPicks」でiOSエンジニアをしている金子です。 今年はじめにTCA勉強会を主催し、多くの方々にご参加をいただくことができました。 この勉強会をきっかけに、NewsPicksといえばTCAという認知を多少なりとも広げることができたのではないかと思っています。 tech.uzabase.com そのすぐ後、Findyさん主催のイベントや、Software Designの記事にて、TCAへのリアーキテクチャについて発表を行いました。 https://findy.con…
23日前
OpenAPI Generator で作成した sdk を使ってAPIテストを書いた話
Uzabase for Engineers
この記事は NewsPicks Advent Calendar 2024 の10日目の記事です。 こんにちは。ソーシャル経済メディア「NewsPicks」の QA/SET チームの海老澤です。 今回はAPIテストを OpenAPI Generator を使って書いた話を紹介させていただきます。 APIテスト APIテストはソフトウェアテストにおいて重要な役割を果たし、テストピラミッド の中間層(統合テスト)に位置します。 NewsPicks ではE2Eテストと比較して、APIテストは基盤がほぼなかったため今回テスト基盤から作成することにしました。 そこでAPIテスト基盤は記述がしやすく、かつメ…
23日前
New RelicでSpring Frameworkを使ったアプリケーションのキャッシュヒット率を可視化する
Uzabase for Engineers
この記事は New Relic Advent Calendar 2024 と NewsPicks Advent Calendar 2024 の7日目の記事です。 ソーシャル経済メディア「NewsPicks」SREチームの飯野です。 NewsPicksではサービスの状態を可視化するために New Relic APM(Application Performance Monitoring)を導入しています。ことあるごとにNew Relicのダッシュボードを確認することでサービスの状態の把握や、安定性向上、パフォーマンス改善のヒントを得ています。 今回はNew RelicのAPMでは用意されていないキ…
1ヶ月前
データウェアハウスをRedshiftからSnowflakeに移行するために考えたこと(1)
Uzabase for Engineers
この記事は NewsPicks Advent Calendar 2024 の6日目の記事です。 ソーシャル経済メディア「NewsPicks」の中村です。最近はデータ基盤の開発運用、データアナリストのサポート、LLM活用等をやっています。 現在、NewsPicksではデータウェアハウスとして長年利用してきたAmazon RedshiftからSnowflakeへの移行を進めています。まだ移行作業の途上ではありますが、完了の目処が立ったので、なぜデータ基盤の移行を行なっているのか、どのように移行計画を立てたか、実際に移行作業を進めてみてどうだったか等を紹介したいと思います。データ基盤を運用している方…
1ヶ月前
AWS re:Invent 2024 に参加中です!
Uzabase for Engineers
ソーシャル経済メディア「NewsPicks」(BDD Product) の西(@yukinissie)です! この記事は NewsPicks Advent Calendar 2024 の4日目の記事です。昨日はNewsPicksの守護神(初めて呼びました)QA西園さんによる「QA が Notion API を使ってちょっとしたシステムを作った話」でした。 本エントリーでは絶賛参加中のAWS re:Invent 2024 の体験をレポートします! とは言ってもすみません!本エントリーを書いている現在はまだ1日目の正午*1なので0日目をさくっと紹介します!がっつり全ての内容が見たいよーって方は別エ…
1ヶ月前
テックブランディング委員会立ち上げから4年、あらためて組織に起こった変化を振り返る
Uzabase for Engineers
ソーシャル経済メディア「NewsPicks」の高山です。 この記事は NewsPicks Advent Calendar 2024 の2日目の記事です。昨日は我らがあんどぅさんによるプロジェクトマネジメントのお話でした。 はじめに 2020年頃から2024年までの4〜5年ほどかけて、社内でテックブランディングの盛り上げ担当をしてきましたので、そのまとめを書いていきます。 だいぶ長くなりましたが、備忘録も兼ねて書いていきますのでご興味のある方はお付き合いください。 僕は2020年にNewsPicksに入りまして、最初の2年ほどはCTOをしていました。その後はNewsPicksではいわゆるSREな…
1ヶ月前
エンジニアも知っておきたい『プロジェクトマネジメント』〜カレー作りで学ぶPMBOKの実践的TIPS〜
Uzabase for Engineers
NewsPicks Advent Calendar 2024 一日目の記事です。 こんにちは!ソーシャル経済メディア「NewsPicks」の安藤です。長らくSREチームのプレイングマネージャーをしていたのですが、最近はEMとして自分の技術的専門性とは異なる担当領域の開発チームもサポートしています。 その中で気づいたのが、「プロジェクトマネジメントを通じてならどのチームでもエンジニアリングマネージャーとして一定のバリューを発揮できるかもしれない」ということです。 私自身は前職で10年以上プライムのSIerに在籍しており、PMを務めたことはありませんが一流のPMの元で開発リーダーとして一緒に仕事を…
1ヶ月前
LLMアプリ開発を楽にするPromptyをPromptflowで使ってみよう
Uzabase for Engineers
株式会社ユーザベース スピーダ事業 の阿波連です。 私が参加しているアジャイルダッシュボードチームはスピーダ経済情報リサーチのダッシュボードを開発しています。 ダッシュボードには「AI決算サマリー」という機能があります。先日、要約データを更新し、以前よりも要約精度が良くなりました。 今回は、AI決算サマリーの裏側で使用しているLLMと関連して、PromptflowにあるPrompty機能について紹介します。なお、Prompty機能は2024年11月27日執筆時点でExperimental featureですので利用時は考慮してください。 Promtflowとprompty Promptflow…
1ヶ月前
セッションハイジャックとセッションIDの固定化攻撃 セキュアコーディングの啓蒙 第5回
Uzabase for Engineers
はじめに こんにちは! 株式会社ユーザベース スピーダ事業 Product Team(以下 Product Team)の下川です。 ユーザベースの Product Team には、全社のセキュリティを担うチームとは別に、プロダクトセキュリティの底上げを担うセキュリティチーム、通称 Blue Team というチームがあります。 私たちはそのチームの一員として、日頃の開発業務に加えてユーザベースのプロダクトのセキュリティを横断的に向上するための活動を行なっています。 現在、 Blue Team の取り組みのひとつとして、脆弱性のリスクや対策方法について継続的に記事にまとめ、Product Team…
1ヶ月前
NASAから学ぶ!リスクを成功に導く3つのこと - QCon San Francisco 2024
Uzabase for Engineers
はじめに スピーカー紹介 「計算されたリスク」とは何か? リスクを取る前に価値を見極める 「計算されたリスク」を取るためのフレームワーク 1. Think Bigger! まず行動を起こすことが重要、無行動こそ最大のリスク リスクを取る際は「何がうまくいくか」に焦点を当て、それを最大化する方法を考える 2. De-risk リスクの影響を軽減する手法を取り入れる 冗長性を活用する 3. Be Wrong, a Lot 「Ready, Fire, Aim」の精神 失敗を受け入れ、学びを得る まとめ 感想 参考:火星探査機「Curiosity(キュリオシティ)」 はじめに ソーシャル経済メディア「…
1ヶ月前
【イベントレポート】2024年10月19日、親子で楽しむプログラミング教室「Play Engineering for Kids」を開催しました!
Uzabase for Engineers
ユーザベースは、「エンジニアリングを起点に、誰もがビジネスを楽しめる世界の実現」を目指し、テクノロジー・カンパニーであり続けたいと考えています。 2022年4月からスタートした「Play Engineering」というプロジェクトでは、エンジニアではない職種の社員も、楽しくエンジニアリングを学べる研修の実施や、保有するエンジニアリングスキルのレベルによって手当が支給される制度「プラスエンジニアリング手当」の導入など、全社員が対象となるさまざまな取り組みを実施しています。 プロジェクトの一環である「Play Engineering for Kids」は2022年より毎年開催をし、2024年は10…
1ヶ月前
Meet UB Tech #52「"全員インシデントコマンダー"という考え方について」を公開しました
Uzabase for Engineers
こんにちは、Uzabaseの角岡です。 ユーザベースのエンジニアカルチャーをゆるっとお伝えするPodcast、Meet UB Tech。 #52のテーマは、「"全員インシデントコマンダー"という考え方について」です。 NewsPicks エンジニアの安藤さんと七五三さんにお越しいただき、お話を伺いました。 podcasters.spotify.com #52 の聞きどころはこちら。 タイトル: "全員インシデントコマンダー"という考え方について 出演者: 安藤裕紀 @integrated1453(NewsPicks SRE Team Leader) 七五三 航(NewsPicks Subscr…
2ヶ月前
Amazon EFSのバーストクレジットを活用してコストを4分の1に削減!
Uzabase for Engineers
ソーシャル経済メディア「NewsPicks」SREチームの美濃部です。 NewsPicksではアプリケーションのビルドにAWS CodeBuildを使用しており、ビルドキャッシュの格納先としてAmazon EFS(AWSのフルマネージド型NFSファイルシステムサービス)を利用しています。 アプリケーションビルド構成 以前はS3に格納していましたが、EFSにする事でビルド時間が2分程短縮できる事がわかったので多少コストを払ってでも開発者の生産性を重視しました。1日に何度もビルドを行う開発者にとってこの2分の積み重ねは大きな価値があります。開発者の人数が多ければ多いほどこの価値もあがります。 ただ…
2ヶ月前
Kotlinのsealed classを使ってif文を取り除き、コードをシンプルにする
Uzabase for Engineers
Kotlinのsealed classでいい感じにコードをシンプルにする事例を紹介します。sealed classをうまく使って、コードの可読性を高めてみましょう。
2ヶ月前
Meet UB Tech #51「ユーザベースのセキュリティの実態に迫る」を公開しました
Uzabase for Engineers
こんにちは、Uzabaseの松並です。 ユーザベースのエンジニアカルチャーをゆるっとお伝えするPodcast、Meet UB Tech。 #51のテーマは、「ユーザベースのセキュリティの実態に迫る」です。 ユーザベース セキュリティチームの王さんと白石さんにお越しいただき、お話を伺いました。 open.spotify.com #51 の聞きどころはこちら。 タイトル: ユーザベースのセキュリティの実態に迫る 出演者: 王佳一(ユーザベース CIO/CISO) 白石憲昭(ユーザベース Security Team Leader) 佐藤一徹 @Ittetsu0501(ユーザベース Holdings …
2ヶ月前
オンボーディング体験記
Uzabase for Engineers
初めましてこんにちは! ソーシャル経済メディア「NewsPicks」プロダクトエンジニアの 寺坂 です。 2024年5月に中途入社して4ヶ月が経ちました。 だんだんと会社にもチームにも慣れてきたぞ!、ということで、今回は私のオンボーディング体験をご紹介します。 初めましてこんにちは! 私とオンボーディング オンボーディングカリキュラム ユーザベースでは、パーパス・バリューがとても大事 オープンコミュニケーションと風通しの良さ とても手厚い1on1 まとめ 私とオンボーディング 私にとって、今回が初めての転職となります。 これまではずっと受け入れる側の立場にいたので、改めて逆の立場になってみると…
3ヶ月前
社内システムのセキュリティ向上のため、Lambda + CloudFront + S3でインフラ基盤を再構築した話
Uzabase for Engineers
はじめに ソーシャル経済メディア「NewsPicks」SREチーム・新卒エンジニアの樋渡です。今回は、AWSサービスである「Lambda」「CloudFront」「S3」を用いて、弊社で使用している社内向けシステムの基盤を再構築し、開発者体験の向上やセキュリティ対策を行なったお話です。 お話の内容 弊社で使用している社内向けシステムの一つに「Watson」というシステムがあります。「Watson」とは簡単にいうと「NewsPicks」のユーザーIDをもとにユーザーごとの情報を検索・閲覧できるシステムで、お客様からの問い合わせ対応等に活用される重要なシステムです。「Watson」は構築されたのが…
3ヶ月前
ユーザー行動ログの増減をアラートする仕組みを導入して廃止した話
Uzabase for Engineers
ソーシャル経済メディア「NewsPicks」の高山です。 NewsPicksではユーザーが画面上で操作したときなどに行動ログを記録し、それを分析してサービスの改善に役立てています。 そのログはWebサーバーのnginxで記録されてデータウェアハウスであるAmazon Redshiftに送られるのですが、僕はそのRedshiftまわりのチームを少し前まで持っていました。 今回は、当時おこなった、ログの増減アラートの仕組みについて書いていきます。 何が課題だったか 行動ログの記録処理は、開発者が画面上で確認するわけではないので、エンバグしたままリリースされやすい箇所です。 NewsPicksでも過…
3ヶ月前
Playwrightでのユーザー行動ログのテスト
Uzabase for Engineers
はじめに こんにちは。ソーシャル経済メディア「NewsPicks」の QA/SET チームの海老澤です。 今回は NewsPicks WebにおけるPlaywrightでのユーザー行動ログのテストの取り組みを紹介させていただきます。 ログについて NewsPicks では法人向けサービスや広告システムがあり、法人向けサービスや広告パフォーマンスのレポート、またKPIの追跡などログデータの信頼性がビジネスに直結しています。ログはただの記録ではなく、ビジネスインサイトを得るための重要なデータソースです。 そのため、ログが正確に記録され、リクエストが期待通りに発生しているかをテストで保証することが不…
3ヶ月前