NewsPicks:Brazeでメール配信が改善できた話

はじめに こんにちは、ソーシャル経済メディア「NewsPicks」の桐畑です。 この記事は NewsPicks アドベントカレンダー 2023 の18日目の記事です。 昨日は呉さんの『iOSのE2Eテストを並列で動かし、リリースサイクルを高速化した話』でした! 今日は、Brazeで…

HPAの閾値設定を1000%にして思い込みをクリアにする

こんにちは。株式会社ユーザベース SaaS事業 酒井です。 「HPAの閾値設定は100%以上あんねん」。思い込みで閾値は100%が上限と勘違いしそうになるねという記事になります。 先日とあるシステムのIstioリソースを眺めていた所、Istio Ingress GatewaysのPodが…

QAエンジニアが「開発者になる」と自動テスト運用は上手くいく

はじめに こんにちは、ソーシャル経済メディア「NewsPicks」の西薗(X: @yurizono )です。2021年6月にひとり目QAエンジニアとして入社して以来、テストをしたりQAチームの立ち上げをしたりしています。 この記事は NewsPicks アドベントカレンダー 2023 の1…

CI/CDの改善の道のり

本記事はUzabase Advent Calendar 2023の16日目の記事です。 qiita.com 概要 前提に 入社直後の状況 テスト関連 テストの安定化 k8s関連の課題 これから取り組むこと 概要 こんにちは 株式会社ユーザベース BtoB SaaS Product Team(以下 Product Team)の朴…

NewsPicksでプッシュ通知にレコメンドエンジンを導入した設計方針

こんにちは、ソーシャル経済メディア「NewsPicks」の高山です。 この記事は NewsPicks アドベントカレンダー 2023 の15日目の記事です。 昨日は森田さんによる『メディアのミッションによって"良い"ニュース推薦システムって違うのかも! n週連続推薦システム…

5000万件のDynamoDBテーブルをダウンタイム無しで移行した話

こんにちは、ソーシャル経済メディア「NewsPicks」の高山周太郎です。 この記事は NewsPicks アドベントカレンダー 2023 の13日目の記事です。 昨日はakaneyoshiさんによる『BEMの記述メソッドを参考にデザインファイルのクラス名を定義する』でした! NewsP…

開発フェーズに合わせてリリースフローを変えた話

こんにちは、ソーシャル経済メディア「NewsPicks」の西(@yukinissie)です。 この記事は NewsPicks アドベントカレンダー 2023 の10日目の記事です。 昨日は同僚の田端さんによる『Next.jsプロジェクトの設計改善を進める上で考えていたこと』でした! 「複…

2023年のSREチームのAWSコスト削減を振り返る

概要 全般 何はともあれコストタグ Cost Explorer でリソース別にコストを見よう IaC化しよう QuickSight も使おう 稼働時間対応する際はマスタカレンダを用意したい コンピューティング、コンテナ関連 EC2 定時バッチはマネージド化しよう EBS, Snapshot, A…

プルリクレビューとリリースをさぼらない

こんにちは、ソーシャル経済メディア「NewsPicks」の池川です。 NewsPicks Advent Calendar 2023 の 6 日目です。 qiita.com 昨日は中村さんによる『LLMで叶える「あの人のコメントが読みたい!」』でした! NewsPicks では GitHub のプルリクエスト (以下 P…

LLMで叶える「あの人のコメントが読みたい!」

ソーシャル経済メディア「NewsPicks」の中村です。普段はデータ基盤の開発、運用をしたりLLMで遊んだりしています。 さて、NewsPicksは名前の通りニュースアプリですが、ユーザーの皆様がニュースにコメントを付けることができるのがひとつの特徴となってい…

Next.js(App Router) + microCMSで構築したWebメディアの技術紹介

こんにちは、株式会社アルファドライブの佐藤です。この記事は AlphaDrive Advent Calendar 2023 4日目のエントリです。 本日は、Next.js(App Router) + microCMSで構築したWebメディアの技術スタックや開発チームの運用フローを紹介します。 開発したメディ…

プログラミングの原則:enumの比較はすべてバグ

こんにちは、ソーシャル経済メディア「NewsPicks」のむとうです。 この記事は NewsPicks アドベントカレンダー 2023 の3日目の記事です。 昨日は@J_Nakagawa(隼佑 中川)さんによる『LambdaレスポンスストリーミングとAWS-SDKを使ってSlackに進捗バーを表示さ…

Keycloak + auth0/nextjs-auth0 でテナントごとに valid redirect URIs を追加しなくて済む方法

こんにちは、株式会社アルファドライブの @takano-hi です。 この記事は AlphaDrive Advent Calendar 2023 2日目のエントリです。 今日はテナントごとにサブドメインが異なるタイプのプロダクトで Keycloak を利用する場合に遭遇した問題と対処法についてお…

VPC Flow LogsをAthena + QuickSightで
分析してデータ転送料金の内訳を調査する 〜 実践的なコスト最適化の洞察 〜

こんにちは。ソーシャル経済メディア NewsPicksのSREチームで仕事をしている安藤です。 NewsPicks Advent Calendar 2023 の1日目ということで、日常の業務風景から軽いコスト最適化TIPSをご紹介します。 qiita.com AWSコストを最適化したいよぉ〜 NewsPicks…

プログラミングの原則:構造化テキストを文字列結合で作らない、置換でいじらない

こんにちは、ソーシャル経済メディア「NewsPicks」のむとうです。 先日から『Ghost of Tsushima』の開発者が書いた『ルールズ・オブ・プログラミング』という本をちょっとずつ読み進めていて、プログラミング熱が高まっています。この本は大きな指針を示すだ…

SaaS Product Team セキュアコーディングの啓蒙 第2回 (SQL インジェクション編)

はじめに SQL インジェクションとは? 概要 リスク 発生件数 攻撃方法 対策 根本的な対策 プレースホルダの利用 静的プレースホルダ 動的プレースホルダ エスケープ処理 保険的な対策 入力値の制限 適切なデータベース権限の設定 詳細なエラーメッセージの非…

新機能「ショート動画」をTCAで実装したので、その実装テクニックをご紹介します

ソーシャル経済メディア「NewsPicks」でiOSエンジニアをしている金子です。 NewsPicks iOSアプリでは数年前からリアーキテクチャを進めており、TCAへの移行を進めています。 本記事では、最近リリースしたショート動画機能について、TCAでどのように実装した…

Meet UB Tech #42「デザインエンジニアという肩書をつくって、動き出した話」を公開しました

こんにちは、Uzabaseの松並です。 ユーザベースのエンジニアカルチャーをゆるっとお伝えするPodcast、Meet UB Tech。 #42のテーマは、「デザインエンジニアという肩書をつくって、動き出した話」です。 SPEEDAやFORCASなどのサービスを提供しているユーザベ…

Meet UB Tech #41「Studio Ousia山田さんに聞く、より賢くて使いやすいLLM」を公開しました

こんにちは、Uzabaseの松並です。 ユーザベースのエンジニアカルチャーをゆるっとお伝えするPodcast、Meet UB Tech。 #41のテーマは、「Studio Ousia山田さんに聞く、より賢くて使いやすいLLM」です。 ユーザベースは、2023年7月24日に、株式会社Studio Ousi…

Skaffoldで誰でも簡単に開発を始められる世界に

こんにちは。 株式会社ユーザベース SaaS事業 板倉です。 私たち Product Teamではkubernetesを用いた開発・運用を行っています。 今回はkubernetesを用いた開発をする際に利用しているSkaffoldについて書いていこうと思います。 Skaffoldとは Skaffoldを端…

AWS Configコスト上昇の原因を調査:QuickSight + Athenaの分析ツールを活用

ソーシャル経済メディア「NewsPicks」でSREをしている美濃部です。 NewsPicksのSREのミッションの1つに「コストを適正化する」というものがあります。サービスの規模拡大に比例してインフラコストが増えないようにし、売上に対するコストの割合を低く維持し…

NewsPicksとタイミーさんでFour Keysと開発生産性の勉強会を開催しました

ソーシャル経済メディア「NewsPicks」の高山です。 先日、『Four Keysで改善する開発生産性〜データ・モバイル・フロントエンド〜』というイベントを開催しました。今回はそのイベントレポートをしながらNewsPicksの開発者体験(開発生産性)の取り組みにつ…

NewsPicks、Findy Team+ Award 2023 を受賞しました!

こんにちは。ソーシャル経済メディア「NewsPicks」の韓です。 この度、NewsPicksのプロダクトチーム(Creator Experience Unit)が Findy Team+ Award 2023 を受賞いたしました。 受賞内容について 今回の受賞について、Creator Experience Unit リーダー・加…

推薦システムを独学で勉強していた非情報系の博士学生が長期インターンをしてよかったことと苦戦したこと

皆さんこんにちは! 株式会社ユーザベース NewsPicksで機械学習エンジニアとして長期インターンをしている森田です:) 現在はData/Algorithm チームで、NewsPicksの推薦システム・データ基盤まわりの開発に取り組んでいます。 本記事は、私が2022年8月から同組…

インターンでFLASH Opinionに企業名を紐付ける研究をおこないました

UB Researchチームで2週間の短期インターンをしている山内です。 現在、UB Researchでは、ニュース記事テキストに関して、企業名等の情報抽出モデルを構築を行っています。この情報抽出モデルをさまざまなテキストに適用し、企業情報を抽出することで、経済…

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年に株式会社イ…

Meet UB Tech #40「キャディCTO小橋さんに聞く、“むずかしいということをおもしろがる“カルチャーの裏側」を公開しました

こんにちは、Uzabaseの松並です。 ユーザベースのエンジニアカルチャーをゆるっとお伝えするPodcast、Meet UB Tech。 #40のテーマは、「キャディCTO小橋さんに聞く、“むずかしいということをおもしろがる“カルチャーの裏側」です。 後編では、キャディの異常…

Meet UB Tech #39「キャディCTO小橋さんに聞く、製造業×テクノロジーの魅力」を公開しました

こんにちは、Uzabaseの松並です。 ユーザベースのエンジニアカルチャーをゆるっとお伝えするPodcast、Meet UB Tech。 #39のテーマは、「キャディCTO小橋さんに聞く、製造業×テクノロジーの魅力」です。 「モノづくり産業のポテンシャルを解放する」をミッシ…

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 のプロダクト開発チームでは、技術やデザイン領域をテーマとした社内勉強会が多数開催されており、日々学びの場としてインプットに励ん…

アメリカでの事例をつくって、次世代にヒントを残したい──SPEEDA Edge CTO 杉浦正明

2021年1月にサービスの提供を開始した「SPEEDA Edge」。アメリカに拠点を置き、最新のテクノロジートレンドを英語で発信しています。SPEEDA EdgeのCTOとしてプロダクトを定着させるべく奮闘するのが、杉浦正明。「光は見えているものの、常に壁がある」と話…

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…

Meet UB Tech #38「ゆめみ代表 片岡さんに、ユーザベースのTech Brandingについて聞いてみた・後編」を公開しました

こんにちは、Uzabaseの松並です。 ユーザベースのエンジニアカルチャーをゆるっとお伝えするPodcast、Meet UB Tech。 #38のテーマは、「ゆめみ代表 片岡さんに、ユーザベースのTech Brandingについて聞いてみた・後編」です。 後編では、「ゆめみ代表の片岡…

Meet UB Tech #37「ゆめみ代表 片岡さんに、ユーザベースのTech Brandingについて聞いてみた・前編」を公開しました

こんにちは、Uzabaseの松並です。 ユーザベースのエンジニアカルチャーをゆるっとお伝えするPodcast、Meet UB Tech。 #37のテーマは、「ゆめみ代表 片岡さんに、ユーザベースのTech Brandingについて聞いてみた・前編」です。 一般社団法人 日本CTO協会発表…

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 メ…

React + TypeScriptでExcelファイルをダウンロードする機能を作る

あいさつ はじめまして! AlphaDriveでエンジニアをしている、神と申します! 今回は、React + TypeScriptでExcelファイルをダウンロードする機能を作る方法についてご紹介したいと思います この記事で伝えたいこと React + TypeScriptの環境でExcelファイル…

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

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

Page top