<-- mermaid -->

Tech Blog

Biome.jsでシンプルなフロントエンドへ

こんにちは!経済情報プラットフォームSPPEDA の開発をしている山本です。 本稿ではBiome.jsをプロダクトに導入してみたので事例の紹介をしていきます。 はじめに 私が所属しているチームで新たにマイクロフロントエンドで機能開発をしていくにあたりWeb com…

DOMイベントの発火順序を調べ初めたら行き着く記事 feat.相談の精神

アイキャッチこんにちは! Uzabase の SaaS Product Team に所属している樽本と申します。普段は SPEEDA の開発をしています。 今日は「DOM のイベントが発火(ハンドリング)する順序を考慮した実装はやめたほうが良い。」という個人的な教訓と、それを得るに…

エンジニアが今日から始める英語学習の継続方法

1. はじめに こんにちは。ソーシャル経済メディア「NewsPicks」でエンジニアをしております小林です! 皆さんは英語学習に取り組んでいらっしゃいますか?エンジニアとして技術ドキュメントや国際カンファレンスの動画等で英語に触れる機会があると思います…

2024年のPythonプログラミング

ソーシャル経済メディア「NewsPicks」で推薦や検索などのアルゴリズム開発をしている北内です。Pythonは頻繁に新機能や便利なライブラリが登場し、ベストプラクティスの変化が激しい言語です。そこで、2024年2月時点で利用頻度の高そうな新機能、ライブラリ…

NewsPicksとSaaS Product Team合同でクリスマスLT大会を開催しました!

こんにちは。ソーシャル経済メディア「NewsPicks」Media Infrastructure Unitの韓です。 年末にNewsPicksとSaaS Product Team合同で『ユーザベースの技術文化大公開!Engineer Meetup 〜クリスマスLT祭り!〜』というイベントを開催しました。 今回はそのイ…

ふりかえりからチームづくりの9ヶ月をふりかえる

こんにちは。 BtoB SaaS Product Teamの中嶋です。 Product Teamでは1週間のイテレーションごとにチームでふりかえりをしています。 コロナ禍に入る前は物理のホワイトボードでやることが多かったと聞いていますが、最近は大体figjamボードを使っています。 …

新規プロダクト開発で API の統合テスト文化が根付いているっていう話(Golang)

はじめに 新規プロダクトにおける API テストの重要性を理解してもらう 誰でも容易に信頼性の高いテストが書ける基盤づくり カバレッジ情報の見える化でテストを書くモチベアップ API テストの継続的なリファクタで負債と戦う チームメンバーとのコミュニケ…

【デスクツアー】リモートワーク主体なAlphaDriveテックチームのデスク周り紹介

この記事は AlphaDrive Advent Calendar 2023 の24日目の記事です。 こんにちは、株式会社アルファドライブの佐藤です。今回は、AlphaDriveのエンジニア・デザイナーのデスク周りを紹介します! 弊社は出社義務のないリモートをベースとした働き方となってい…

ジュニアエンジニアを脱却するための「コンテナ流儀」

こんにちは。ソーシャル経済メディア「NewsPicks」で検索システムを開発しております崔(ちぇ)です。 この記事は、 NewsPicks Advent Calendar 2023 の23日目の記事になります。 qiita.com 昨日ははぐっさんによる「SwiftUIのKeyframeAnimatorでちょっとし…

立ち上げ期にこそ取り入れる! 組織を強固にする「全員SRE」という文化

AlphaDrive Advent Calendar 2023 12/23 公開分の記事です。

EC2とcronで動いていたバッチ基盤をマネージド化した

概要 ソーシャル経済メディア「NewsPicks」SREチームの中川です。 皆さんはバッチ処理基盤はどうされていますでしょうか。 NewsPicks では少し前まではそれらをEC2、cronの組み合わせで動作させていました。 何年も前からこの仕組みだったのですがSREとして…

NewsPicksアプリのGoogle Playでの評価が1年で爆上がりした話

この記事は NewsPicks アドベントカレンダー 2023の21日目の記事です。 qiita.com こんにちは、Androidネタばかりで肩書きと合わなくなってきてるので、iOSも頑張りたいと思い始めているNewsPicksのVP of Mobile Engineerの石井です。 1年間、様々な改善をし…

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でどのように実装した…

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

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 のスコアが大幅に改善したため、測定結果を公開します!

Page top