Tech Blog

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

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

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

はじめに こんにちは、NewsPicksエンジニアの上村です。 NewsPicksのプレミアム月額プランがキャリア決済に対応しているのはご存知でしょうか? これまで決済手段はクレジットカード決済のみでしたが、今年(2023年)3月に全ての新規購読者向けに(プレミア…

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

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

モバイルチームの「エリートDevOps チーム」への道のり(我々の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つの告知があります。 人工知能学会全国大会にスポンサー参加します ユーザベースは、2023年6月に行われる第37回人工知能学会…

MySQLのutf8mb4と戦った話

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

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

はじめに 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 を導入

あいさつ こんにちは。Product Team の 下川、9sako6、手嶋、藤原です1。 本記事では、我々が開発している Deno 製アプリケーションのパフォーマンス監視を Elastic APM で行った方法を紹介します。 背景 Product Team では、パフォーマンス監視を目的として…

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

こんにちは、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×ニューズピックスー〜フロントエンド最前線〜」に登壇しました

はじめに こんにちは!NewsPicks の Web Reader Experience Unit で Web フロントエンドを中心にエンジニアをしております、イイダユカコ( @becyn )です。 このブログは、3月8日に Findy 社主催の アクセシビリティのイベント、「高まるウェブアクセシビリ…

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がどのように行われているか

はじめに こんにちは!Product Teamのデータサイエンティストの堀内です。 私が所属しているProduct Teamは、リーダーがいないフラットな組織として、ほかのエンジニア組織にはない独自のカルチャーを様々持っていると日々感じています。 今回は、そんな「リ…

法人サービスの管理画面を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テスト基盤

はじめに こんにちは!NewsPicks Business Growth のアダチ(@dikxs118)です。 NewsPicks Advent Calendar 2022 の最終日を担当させていただきます! qiita.com Business Growth ではLTVの最大化を目的として、様々な取り組みを行なっています。 その一つに…

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

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

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

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

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

はじめに 初めまして。AlphaDriveのインターン生の佐藤匠と申します。 今回は、AlphaDriveのエンジニアインターンに参加させて頂いて半年以上経ったので、長期インターンに参加した背景やインターン内容についてまとめたいと思います。 本記事は、2022年度イ…

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

はじめまして! AlphaDriveでエンジニアをしている、神と申します! 今回は、SWRで再検証を行うタイミングを制御する方法についてご紹介したいと思います! この記事で伝えたいこと SWRは、キャッシュを削除することで再検証を行うタイミングを制御できると…

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

はじめに 本記事は、NewsPicks Advent Calendar 2022 の 12/22 公開分の記事になります。 こんにちは、Androidチームのアーキテクトのko2icです。 久しぶりの投稿でございます。 なぜ久々なのかというと、ここ数ヶ月Androidの起動時間を爆速にすべく、奮闘し…

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を新しい基盤に置…

Keycloakを使ってパスワードログインを導入したので、開発環境について解説してみる

この記事は、NewsPicks Advent Calendar 2022 の 17 日目の記事になります。 qiita.com こんにちは。AlphaDrive で Web アプリケーションエンジニアをしている fmatzy です。普段は主に Go でバックエンドの開発を行なっています。 現在新規開発中のプロダク…

OpenAPI x TypeScriptでスキーマ駆動開発を実現する話

初めまして、AlphaDriveでWebアプリケーションエンジニアをしている水埜と申します。 本記事は、NewsPicks Advent Calendar 2022 の12/16 のブログとして記載させていただいています。 この記事でお伝えしたいこと コードと分離したドキュメント(Excel)とし…

基幹システムではないtoB SaaSにおいて組織情報のDB設計はどこまで必要なのか

はじめまして、AlphaDriveのWebアプリケーションエンジニアの堀と申します。 本記事は、NewsPicks Advent Calendar 2022 の15日目のブログとして記載させていただきました。 はじめに 最初にこのタイトルで記事を書こうと思った経緯について記載しようと思い…

Firebase Test Labで動かしていたiOSのE2Eテストを実機で動かして安定化させたら開発者の喜びが爆上がりした話

本記事は、NewsPicks Advent Calendar 2022 の 12/14 公開分の記事になります。 こんにちは。NewsPicks SREチームの 海老澤 です。 今回は iOSのE2Eテストを実機で動かす上でのインフラ周りの設定方法を紹介しようと思います。 課題 NewsPicksではサーバーリ…

AlphaDriveでエンジニアインターンをして半年が経ちました!

はじめに 初めまして。広島大学の4年の田川裕介(@t_yusuke_jp)と申します。 この度はAlphaDriveでエンジニアインターンをさせていただいて半年が経ちましたので、きっかけやこれまで経験できたことなどを紹介したいと思います。 この記事は2022年度インタ…

The Composable Architecture(TCA)リリース以来の大幅アップデート!ReducerProtocolが導入された背景とは?

この記事は、The Composable Architecture Advent Calendar 2022 12/13の記事です。 qiita.com iOSエンジニアの金子です。 8月末から約3ヶ月間育休を取得していまして、最近復帰しました。 僕が育休で仕事から離れて家族との時間を楽しんでいる間、TCAで大幅…

NewsPicksの動画配信の仕組み - 自動化でエンジニアの見守り0に -

5年間、配信の安定化および人手を最小化するためにシステムの改善を続けてきました。当初は動画配信中にエンジニアが待機していましたが、2020年ごろより、エンジニア待機無しで配信をしています。2022年 現在、主にAWSのMediaServices を使った構成になって…

NewsPicks のプッシュ通知開封数を最小限の開発で 10% 以上改善した話

はじめに こんにちは、NewsPicks エンジニアの佐藤と申します。 NewsPicks Advent Calendar 2022 の11日目を書かせていただきます。 qiita.com 本記事では、2022年秋頃から導入しているプッシュ通知事前テストについてご紹介できればと思います。 NewsPicks …

ユーザベースのデータサイエンティストが集まる社内勉強会を振り返ります!

はじめに こんにちは、Uzabase Saas Product Teamの野中です。今年の5月からUzabaseにジョインし、主にSPEEDAやMIMIR, FORCASといったプロダクトにおいて、機械学習を用いた機能部分の開発を担当しております。 Uzabaseには、NewspicksとSaas事業の2つに機械…

Local環境の開発セットアップに必要な時間を1 /10に短縮することで、スムーズにチームにジョインしてもらえるようにした話

初めまして、アプリケーションエンジニアの杉浦(saba_can00)です! 本記事は、NewsPicks Advent Calendar 2022 の12/7 のブログとして記載させていただいています。 この記事でお伝えしたいこと Dockerを利用するようにしたら開発セットアップの時間が大幅に…

1年で内定承諾率が8倍に。エンジニア採用は「開発者体験」と「候補者体験」を良くすれば上手くいく!

NewsPicks のエンジニア採用に関する取り組みと、そこから得た学びについて共有します。

Kotlin 知見共有会 ー 社内勉強会を継続させるための工夫

こんにちは、NewsPicks サーバーサイドエンジニアの池川です。 NewsPicks Advent Calendar 2022 の 3 日目です。 qiita.com 昨日は、 Virtual Muto さんによる 2 日目の記事で、感想などを書きたいところですが、実は本記事を 11 月末に書いているので、当日…

Elastic Cloud on Kubernetes(ECK)のESをプロダクションレディにするコツ

Product Team SREのkterui9019です。 Elastic Cloud on Kubernetes(以後ECK)をご存知でしょうか? Elastic stack(Elastic Search等)を、kubernetes上に展開するためのoperatorなのですが、弊社では今年から段階的にGCEで構築していたESクラスタをECKでリプレ…

それKotlinなら5行でできるよ

このブログは NewsPicks Advent Calendar 2022 2日目の記事です。 qiita.com こんにちは。むとうです。 プログラミングって難しいですよね。昔スゴーク頑張って何十行も書いたコードをベテランの人に一行に直されて、衝撃が走ったことを覚えています。手練と…

AWS FargateではなくECS on EC2を選ぶメリット〜コスト編〜

このブログは NewsPicks Advent Calendar 2022 1日目の記事です。 qiita.com NewsPicksのSREチームでリーダーをしている安藤です。 NewsPicksに入社して1年が経ちましたが、最近は円安により親の顔よりもAWS Cost Explorerを見る毎日です。 ということで、コ…

Page top