Tech Blog

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が誤検知した動画やアニメーショ…

AWSの開発環境の利用時間をGoogleカレンダー連動させたら開発チームが自由に使えてコスト70%削減!!

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

AWS Fargate/Fargate Spotのハイブリッド利用をCDKで実装したら料金が半額になった話

こんにちは。NewsPicksのWeb Reader Experience Unitで学生インターンをしている西(@yukinissie)です。 昨年の 9 月までSREチームに所属しており、その頃にNewsPicksの全ての常駐バッチサーバーをAWS CDKを用いてAWS FargateとAWS Fragate Spotを併用する…

入社したらAWSコンソールにCloudWatchアラームが1000個以上あったので整理してる話

こんにちはNewsPicks SREチームの飯野です。 今年の1月入社の新入社員です。そろそろお仕事に慣れてきました。今回は研修と研修の合間に地道に行っていたCloudWatchアラームの整理について話していきたいと思います。ちょっと長くなりますがお付き合いくださ…

リーダーがいない組織で1on1がどのように行われているか

はじめに 概要 一般的な1on1 目的 実施方法 Product Teamの1on1 目的 実施方法 まとめ Product Teamの1on1の課題とメリット 課題 コーチとクライアントの組み合わせ決めはどうやるのか コーチがクライアントの業務をしらない可能性が高いが問題ないのか 全く…

法人サービスの管理画面をSlackからリリースできるようにしてみた

こんにちは! NewsPicksの法人向けサービス開発チームの森です。 私は元営業職でエンジニアとして働くのはNewsPicksが初めてで、入社して3ヶ月の頃に入社エントリーを書かせていただきました。 tech.uzabase.com 前回はなぜエンジニアに?なぜNewsPicksに?…

私がKotlinを好きになった理由

私がKotlinを好きになった理由

Docker コンテナを非 root ユーザ nobody で動かしてみないか

こんにちは。Product Team の竹原です。 みなさん Dockerfile 書いてますか? 私たち Product Team では全アプリを Docker コンテナ内で動かしているので、すべてのアプリに対して Dockerfile を書いてます。 とはいえ、私は最近まで「コンテナ内でアプリが…

Rust で Clippy の簡単導入!

こんにちは、Uzabaseエンジニアの斎藤です。 私たちの開発しているプロダクトでは、最近 Rust を使うことが増えてきました。 今回はそんな Rust の開発の効率をアップさせる Clippy の紹介です。 既に知っている方も多いかもしれませんが、もし「まだ使って…

めっちゃ便利になったThe Composable Architecture(TCA)のDI。仕組みの概要からマルチモジュール構成における設計方法までご紹介します

この記事は、The Composable Architecture Advent Calendar 2022 12/20の記事です。 qiita.com iOSエンジニアの金子です。 以前の記事でReducerProtocolが導入された背景について説明しましたが、今回はReducerProtocolになることでかなり便利になったDI周り…

NewsPicksとABテスト基盤

はじめに ABテストの流れ ABテスト基盤の仕組み 様々なユースケースに対応する 管理画面のローコード化 おわりに はじめに こんにちは!NewsPicks Business Growth のアダチ(@dikxs118)です。 NewsPicks Advent Calendar 2022 の最終日を担当させていただ…

候補者体験を最高にするためのライブコーディング面接の進め方と評価すべき観点

こんにちは。AlphaDrive アプリケーションエンジニアの芥川です。弊社では選考フローにモブプロ形式のライブコーディング面接を取り入れています。この記事では面接官として意識していることを紹介したいと思います。主に「進め方」「フィードバック」「評価…

面接の感想はお互い「楽しかった!」に。モブプロ型のコーディング面接で「候補者体験」と「内定承諾率」を両方向上した話

NewsPicks Advent Calendar 2022 12/23 公開分の記事です。AlphaDrive及びNewsPicksで取り入れているモププロ型のライブコーディング面接が「候補者体験」と「内定承諾率」両方の向上につながった事例について紹介しています。

AlphaDriveのエンジニアインターンについて

はじめに 参加した背景 インターンを始めて 挫折 オフライン出社とイベント 現在 これから はじめに 初めまして。AlphaDriveのインターン生の佐藤匠と申します。 今回は、AlphaDriveのエンジニアインターンに参加させて頂いて半年以上経ったので、長期インタ…

SWRで再検証を行うタイミングを制御する

はじめまして! AlphaDriveでエンジニアをしている、神と申します! 今回は、SWRで再検証を行うタイミングを制御する方法についてご紹介したいと思います! この記事で伝えたいこと 背景 実装してみる 詰まった箇所 解決策: 関連するキャッシュのみ削除する …

Androidアプリの起動時間を60%改善する開発

はじめに 結果から発表 何をしたか 計測方法 計測の結果わかったこと 解決方法 起動時のActivityを極力減らす 情報のライフサイクルによってAPIを分割する どう進めたか 新しい方式と古い方式でのキャッシュを同期させる Adaptorをかます 副次的効果 終わり…

Goで関数のオプション引数を実装するパターン集

本記事は、NewsPicks Advent Calendar 2022 の 12/19 公開分の記事になります。 はじめまして、11月からAlphaDriveにJoinし、Webアプリケーションエンジニアをしている畠山(keyamin)です。 今回は、Goで関数のオプション引数を実現するための方法を紹介しよ…

Github Actions のテスト実行時間を速くするためにやったこと

本記事は、NewsPicks Advent Calendar 2022 の 12/18 公開分の記事になります。 NewsPicks Web Reader Experience Unit でフロントエンドエンジニアをしているじゆんきち(@junkisai)です。 弊チームでは、ここ1年間くらいWeb 版のNewsPicksを新しい基盤に置…

Page top