<-- mermaid -->

Tech Blog

SaaS Product Team セキュアコーディングの啓蒙 第1回 (CSRF編)

はじめに CSRF とは? 概要 発生件数は? 発生時の影響範囲は? CSRF 攻撃の具体的な方法 対策 フォームにトークンを埋め込む パスワードの再入力を求める Referer ヘッダを検証する カスタムヘッダを付与する 保険的な対策 操作を通知する Cookie の SameSi…

New RelicのSLOモニタリング+バーンレートアラートをCDK for Terraform(cdktf)でIaC管理する

こんにちは、ソーシャル経済メディア「NewsPicks」でSREをしている飯野です。 今回はSREで行ったNew RelicをCDK for TerraformでIaC管理する話を紹介したいと思います。 SLOモニタリングをSREチームだけで行うのは難しい CDK for Terraformとcdktf-newrelic-…

複数の Next.js アプリケーションをローカルで同時起動する際にポート番号を覚えきれない問題を nginx で解決する

こんにちは、株式会社アルファドライブ @takano-hi です。AlphaDrive で Web フロントエンドを中心に設計・実装などを担当しています。 今回は、弊社のローカル開発環境で localhost:xxxx といったポート番号が増え続ける問題を解決した話をまとめてみました…

ユーザベース、データ分析活用を業務の意思決定に活かす仕組み創りを推進──Tableauを使ったデータ可視化・分析研修を開催。

こんにちは。ユーザベースTech Brandingチームです。 先日社内で開催したセルフサービス型BIツールであるTableauを使った「データ可視化・分析研修」の様子をイベントレポートとしてまとめました。 新型コロナウイルスの流行、自然災害、AI技術の急激な進化─…

イベントレポート「<ユーザベース×ログラス共同開催> SaaSプロダクトを支えるSREの取り組み- UB Tech vol.11」を開催しました!

こんにちは。ユーザベースTechBrandingチームです。 2023年8月29日(火)にオンラインイベントイベントを開催しました。 uzabase-tech.connpass.com 登壇者について 朴 賢勝 氏株式会社ユーザベースB2B SaaS事業・ソフトウェアエンジニア2019年に株式会社イ…

Prometheusスケーリング問題とその解決策

みなさんこんにちは。株式会社ユーザベース SaaS事業 炭谷・酒井です。 Prometheusスケーリング問題とその解決策 自社の監視ツールとして、Prometheus採用しております。しかし、監視の規模が大きくなるにつれ、一部の構成にはスケーリングの限界があること…

Cloud Bigtableを触ってみよう

こんにちは。 Uzabase SaaS事業の開発チームに所属している掛川です。 私の所属しているチームではユーザーからの入力情報を履歴として保存したいという要件があり、大量の入力履歴を保存するためにGoogleのCloud Bigtableを採用しています。 RDBばかり触っ…

日本語LUKEで単語境界を扱えるようにトークナイザを変更したモデルを公開します

株式会社ユーザベースでUB Researchを担当している高山です。 ユーザベースでは2023年7月からStudio Ousiaさんと業務提携して、LLMの研究開発に取り組んでいます。 www.uzabase.com 今回はその続報として、Studio Ousiaさんと共同でおこなった日本語LUKEモデ…

ConoHaからNVIDIA H100を無償提供いただいてLLMを学習させました

UB Researchチームでインターンをしている町田です。 数ヶ月前に、GMOインターネットグループ株式会社さんが提供しているConoHa for AIのトライアルというものに申し込んだところ、このたび8月1日から25日までH100を搭載したマシンを無料で利用することがで…

IAMロールでAmazon OpenSearch Serviceの手動スナップショットを作成しデータを復元してみよう

こんにちは。株式会社ユーザベース NewsPicksでエンジニアをやっております崔(チェ)です。現在は Data / Algorithm チームで検索エンジンの開発を担当しております。 弊社は、約2ヶ月前に検索システムをElastic社のElasticsearch(以下、ES)からマネージ…

Next.js App Router で Keycloak と @auth0/nextjs-auth0 を利用してマルチテナント認証機能を実装する

初めまして、 @takano-hi です。 2023年2月に AlphaDrive にジョインして、主にフロントエンド領域を中心に設計・実装などの業務を担当しています。 最近、Next.js のプロジェクトを新たに立ち上げる機会があり、せっかくなので App Router を採用しました。…

NewsPicksが、DroidKaigi 2023にサポーターとして協賛します!

こんにちは。ソーシャル経済メディア「NewsPicks」を運営する、ユーザベースの技術広報チームです。 NewsPicksのAndroidチームが、DroidKaigi 2023にサポーターとして協賛することになりました! DroidKaigiは、エンジニアが主役のAndroidカンファレンスです…

NewsPicks 社内勉強会の紹介

みなさんこんにちは。ソーシャル経済メディア「NewsPicks」を運営する、ユーザベースの技術広報チームです。 NewsPicks のプロダクト開発チームでは、技術やデザイン領域をテーマとした社内勉強会が多数開催されており、日々学びの場としてインプットに励ん…

CIを用いたAndroidのAPI29以上でのVisual Regression Test

NewsPicks Androidエンジニアの sefwgweo です。 こちらでも紹介しましたがモバイルチームでは品質担保のために毎晩定時にE2Eテストを実行しており、今回はその中のVisual Regression Testに焦点をしぼって紹介します。 iOSのVisual Regression Test紹介記事…

3 年半でまるで別企業?大幅に改善した NewsPicks の DX Criteria を大公開!

NewsPicks は開発者体験に注力しています。およそ 3 年半の取り組みの結果、DX Criteria のスコアが大幅に改善したため、測定結果を公開します!

徳丸さん作 Bad Todo List を使ったハンズオンを開催したよ(ご本人登場)

導入 企画の背景 ハンズオン 環境構築 攻撃開始 XSS の説明 順位発表 ハンズオンをやってみてどうだったか? 良かったこと 伸びしろ 学び 今後に向けて We are hiring 導入 こんにちは、BtoB SaaS Product Team (以下 Product Team) の利根です。SPEEDA、FOR…

NewsPicksのA/Bテストがすごいので株式会社プレイドさんと『ABテストの理論と実践』勉強会を開催しました

UB ResearchとNewsPicksの両方を担当している高山です。 去る7月10日に株式会社プレイドさんとNewsPicksの合同で、次のようなイベントを開催しました。 uzabase-tech.connpass.com 実はこのテーマは、僕から是非ともとお願いしてやってもらったのでした。 と…

NewsPicksが、iOSDC Japan 2023にシルバースポンサーとして協賛します!

こんにちは。ユーザベースの技術広報チームです。 NewsPicksのiOSチームが、iOSDC Japan 2023にシルバースポンサーとして協賛することになりました! iOSDC Japan とは、iOS関連技術をコアのテーマとした技術者のためのカンファレンスです。 iOSDC Japan メ…

モバイルのE2Eテストでのリトライ自動化とリリース完全自動化を作った話

NewsPicks Androidエンジニアの sefwgweo です。 今回はモバイルチームで取り入れているE2Eテストでのリトライ自動化とリリース完全自動化を作った話を紹介します。 モバイルチームでは品質担保のために毎晩定時にBitriseでE2Eテストを実行していますが、 端…

ABテストの結果よりも大事なたった一つのこと

こんにちは。NewsPicks App Reader Experience Unit でエンジニアしている青木です。 NewsPicks では日々のサービス改善において AB テストを数多く実施しています。 施策毎に AB テストを柔軟に実施できるのは過去紹介した AB テスト基盤があってこそです。…

信頼を資産のように管理する

導入 こんにちは、Product Teamの朴です。 プロダクトを開発する中で、信頼が大事という話は良く聞きます。プロダクトマネジメントに関する本の「INSPIRED」、「Radical Candor」などでもメンバー同士の信頼関係の構築の大事さが強調されています。 特にプロ…

GCPのIAMを整理し始めています(後編: Just-In-Time Accessを実現する)

前回のまとめ jit-accessとは terraformでjit-accessを構築する 1. jit-accessアプリケーション用のサービスアカウントを作成 2. ネットワークリソースの作成 3. cloudrunの作成 4. モジュールの適用 5. IAM Conditionの追加 まとめ 前回のまとめ みなさんこ…

GCPのIAMを整理し始めています(前編: Googleグループ・IAM設計)

導入 なぜやるのか 起きたこと 個人からGoogleグループへ IAMの設計 まとめ 導入 みなさんこんにちは。ProductTeam SREのkterui9019です。 今回は、私たちがGoogle CloudのIAM権限を整理し始めていることについてお伝えします。 チームメンバーの入れ替わり…

人工知能学会2023に参加しました

UB Researchという企業研究所の立ち上げをしている高山です。 以前にお伝えした通り、人工知能学会全国大会2023にスポンサー & ポスターセッションで参加しました。 tech.uzabase.com スポンサーブース ポスターセッション 感想 スポンサーブース スポンサー…

未経験からエンジニアになった私が実感したAlphaDriveの魅力 5選

はじめに こんにちは!AlphaDriveで新規プロダクトの開発を担当している清水です。 私は前職が地方公務員で、ソフトウェアエンジニアとして働くのはAlphaDriveが初めてです。入社後4ヶ月が経ったので、私の目線から弊社の「開発組織のおすすめポイント」をお…

Amazon OpenSearch Serviceへ移行:AWS CDKで構築するSAML+OktaでOpenSearch Dashboardsにログインできる環境

こんにちは。NewsPicksでエンジニアをやっております崔(チェ)です。現在は Data / Algorithm チームで検索エンジンの開発を担当しております。 弊社は、検索エンジンとしてElasticsearch(以下、ES)をAmazon EC2に乗せて構築しておりましたが、ヤクの毛刈…

iOSアプリ開発でVisual Regression Testingを導入しUIのデグレ検知を自動化した話

NewsPicks Mobile App Unitでインターンをしているりゅう(@ryu_hu03)です。 NewsPicksのiOSおよびAndroidアプリは基本的に週一で新しいバージョンがリリースされています。 リリース作業の多くは自動化されており、重要な機能についてはUIテストによって品質…

F#で Lens を使おうと思った日。あるいは簡単な Lens の使い方

こんにちは、あやぴーです。 今日は F# における Lens の話をしようと思います。 ある日のこと… Lens を用いて問題を解く まとめ ある日のこと… チームで F# を使って開発をしているとあることに気が付きました。あれ、もしかしてレコードタイプからフィール…

F#とASP.NET CoreのMinimal APIを使ってAPIをつくる

こんにちは、Product Teamのあやぴーです。 今回はここ1年くらい私のいるチームで使っているF#とASP.NET Coreを使ったAPI開発について簡単にまとめていきます。 F#ってなんだ? なぜ、今F#を採用したのか Minimal APIを使って、APIをつくる アプリケーション…

APIが遅いと思っていたら、GCPのCloudNATでパケロスしていた話

導入 問題の発覚 動的ポート割り当ての落とし穴 監視とアラート 導入 こんにちは、Product Team SREのkterui9019です。 今回はGCPのCloudNATについての調査結果を共有したいと思います。CloudNATを利用している中で気づかないうちに実はパケットロスが発生し…

駆け出しAndroidエンジニアのキャッチアップ方法と8ヶ月でやったこと

はじめに 経歴 キャッチアップ方法の結論 やったこと(時系列) 参画前(2ヶ月) Kotlin Android アーキテクチャ 参画後(6ヶ月) やっていたこと NewsPicksだからできたこと 最後に はじめに はじめまして、Androidエンジニアのa7therです。 Androidエンジ…

AWSアカウント間のDynamoDBテーブルコピーをData PipelineからStep Functions + AWS Backupに変更しました

NewsPicks SREチームのEdwin Wilsonです。 NewsPicksでは開発環境のテストデータのプロビジョニングを行うツールとしてDatarefreshというものがあります。 このツールは本番環境のデータストアから開発環境のデータストアに対してデータを同期するアプリケー…

キャリア決済を導入してみたら課金開始率が10%以上UPした話

はじめに これまでのNewsPicks有料プランの決済手段と課題 なぜキャリア決済にしたのか 開発 キャリア決済導入という山に登る ABテスト 振り返り はじめに こんにちは、NewsPicksエンジニアの上村です。 NewsPicksのプレミアム月額プランがキャリア決済に対…

EmotionでスタイリングしたReactをWeb Componentとして利用する

あいさつ 私たちの困りごと 原因はなんだろう? 解決策 おわりに あいさつ こんにちは。Product Team の冨田、阿波連、渡邉、鈴木、長田です。*1 本記事では、EmotionでスタイリングしたReactコンポーネントをWeb Componentとして出力しようとした時に、困っ…

モバイルチームの「エリートDevOps チーム」への道のり(我々のFour Keysも公開しちゃうよ)

概要 どうやって指標を確認しているの? NewsPicksのFour Keysはどんな感じ? 改善前はどんな感じ? 改善のために何をした? 終わりに 概要 NewsPicksは「最高の開発体験の追求」をしている会社です。エンジニア向けのサイトの1ページでも謳っており、そこか…

日々の学びを共有する「学びの会」をやっている話

こんにちは。NewsPicks Expert開発チームです。 NewsPicks Expertはエキスパート・ネットワーク・サービスのアプリケーションの一部です。直近では主にエキスパートの情報の登録・編集機能の開発を進めています。 登録はこちらから => https://newspicks.exp…

NewsPicksと朝日新聞社さんでChatGPT/OpenAI API/LLM活用事例の合同勉強会を開催しました

NewsPicksの高山です。 朝日新聞社のメディア研究開発センターさんとNewsPicksで、「ChatGPT/OpenAI API/LLM活用事例~NewsPicksと朝日新聞の合同勉強会を公開」というイベントを開催しました。 uzabase-tech.connpass.com 当日の動画アーカイブはこちらに公…

ユーザベースは人工知能学会にスポンサーとして参加します!LLMの共同研究も募集しています

NewsPicksで基盤開発に関するチームを率いつつ、UB Researchという企業研究所の立ち上げをしている高山です。 prtimes.jp 今日は2つの告知があります。 人工知能学会全国大会にスポンサー参加します UB ResearchではLLMに関する共同研究のパートナーも募集し…

MySQLのutf8mb4と戦った話

皆様こんにちは、NewsPicksエンジニアの米澤です。 先日 2023/03/30は、こちらでアナウンスしていた通り、サービスの停止を伴うシステムメンテナンスを実施させて頂きました。 NewsPicksをご利用頂いている皆様には、ご迷惑おかけいたしました。 今回はこの…

ChatGPT開発合宿を開催しました!

はじめに スケジュール 1日目 2日目 おわりに はじめに NewsPicksエンジニアの七五三です。 最近はChatGPTの話題が尽きません。弊社でもChatGPT APIの社内勉強会やブログの執筆が行われ盛り上がりを見せています。 tech.uzabase.com そんな中、ChatGPTを利用…

Server-Side Kotlin Meetup vol.8 『初オフラインLT大会!』の裏側

こんにちは、NewsPicks サーバーサイドエンジニアの池川です。 こちらのイベントご存知でしょうか? server-side-kotlin-meetup.connpass.com www.youtube.com 実は先日 4/7 (金) に、東京駅目の前にある、ユーザベースオフィスにて、オフライン会場の提供を…

監視強化!Deno アプリに自作 Elastic APM Agent を導入

あいさつ 背景 Elastic APM と今回実装した Deno 向け Agent の概要 Elastic APM の簡単な説明 Elastic APM Agent で計測 Elastic APM Agent の使い方(簡単なミドルウェアのコード例つき) 設計と実装 環境 Middleware として実装 Span の計測と fetch への…

イベントレポート「データサイエンティストによるエクストリームプログラミングのススメ - UB Tech vol.7」を開催しました!

こんにちは。ユーザベース TechBrandingチームです。 2023年3月28日(火)にオンラインイベントイベント「データサイエンティストによるエクストリームプログラミングのススメ - UB Tech vol.7 - connpass」を開催しました。 登壇者について 二木拓也 (a.k.a…

なぜテストコードを書くのだろう?

こんにちは、NewsPicksの北見です。 ところで皆様、テストコードって書いてますか...? ネットでテストコードについて検索すると 「テストコードを書きましょう」 「テストコードとはこうあるべし」 「TDD(Test Driven Development)だ」 等々が叫ばれています…

ライブラリの更新を自動化して快適に品質を保つ

NewsPicksモバイルチームの森崎(asa)です。 今回はモバイルチームで取り入れているライブラリの自動更新について紹介します。 スピーディーかつ複雑な開発が求められる現場では、ライブラリにお世話になることも多いと思います。しかし、実装時の楽さとは…

CI/CD Conference 2023に登壇しました

こんにちは、AlphaDriveでWebアプリケーションエンジニアをしている畠山(keyamin)です。 CI/CD Conference 2023 by CloudNative DaysにNewsPicks SREチームの安藤と合同で登壇し、「最高の開発者体験を目指してAWS CDKでCI/CDパイプラインを改善し続けている…

TypeScriptではじめるChatGPT API:入門から一歩進んだテクニックまで

NewsPicks エンジニアの中村です。普段はデータ基盤や機械学習システムの開発、運用をやっています。 さて皆さん、すでにChatGPTは使っていらっしゃるでしょうか。エンジニア、非エンジニアを問わず世の中を席巻している感のある ChatGPT ですが、今月初めに…

「高まるウェブアクセシビリティの需要ーfreee×ニューズピックスー〜フロントエンド最前線〜」に登壇しました

はじめに イベントについて 参加してみて 当日の資料等 当日の Togetter の様子 スライド スライド内で紹介したプロダクトなどのリンク さいごに はじめに こんにちは!NewsPicks の Web Reader Experience Unit で Web フロントエンドを中心にエンジニアを…

The Composable Architecture(TCA)のReducerProtocolへのマイグレーションが完了しました

iOSエンジニアの金子です。 NewsPicks iOSアプリでは2021年7月ごろからThe Composable Architecture(TCA)を採用したアーキテクチャへの移行を進めています。 tech.uzabase.com メインのニュースフィード画面もTCA+SwiftUI/UIKitで全面的に書き換え、TCAを…

Visual Regression Testが誤検知した動画やアニメーションの問題解決

NewsPicksのWeb Reader Experience Unitで学生インターンをしています。西(@yukinissie)です。 弊チームの開発基盤では、reg-suitやstorycapを利用したVisual Regression Test(以降 VRT)を導入しています。本ブログではVRTが誤検知した動画やアニメーショ…

Page top