Tech Blog

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

こんにちは、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を見る毎日です。 ということで、コ…

AWS Dev Day Japan 2022に登壇しました

こんにちはNewsPicks SREチームのエドウィンです。 NewsPicksが提案した「「最高の開発者体験」への挑戦 〜Amazon ECSによる全面コンテナ化の軌跡〜」というテーマが「AWS Dev Days Japan 2022」の発表テーマとして選ばれました。 「AWS Dev Day」はAWSさん…

SaaS Product Team 2022年下期キックオフイベントレポート

こんにちは!SaaS Product Team(UzabaseのB2B SaaS事業を開発するチームのこと)のイベントチームの炭谷、田中です。2022年10月にSaaS Product Team全体でキックオフを行いました。今回の記事はそのイベントレポートとなります。 キックオフは毎年上期と下…

Acaric Career Cafeに参加させていただきました!

こんにちは! NewsPicksの法人向けサービス開発チームの森です。 2022年11月6日(日)に開催された「Acaric Career Cafe -理系女性限定 vol.3-」に文字さん、赤澤さん、飯田さん、森の4名で参加し、学生の皆様とお話させていただきました。 acaric.jp 今回…

既存のJavaクラスの一部をKotlinへ移行するにはどうする??

はじめに みなさんこんにちは!NewsPicks Growthチームの アダチ (@dikxs118)です。 NewsPicksではサーバーサイドの開発にKotlinの導入を推進しており、新規で書くコードは全てKotlin、既存のコードでもJavaで書いてあるものを随時Kotlinに書き換えています…

新卒エンジニアとして入社し、「第50回Elasticsearch勉強会」で初めて社外発表してきました

こんにちは。NewsPicksの崔(チェ)です。文系から情報系の大学院に進学し、NewsPicksにエンジニアとして新卒入社しました。現在は Data / Algorithm チームに所属しております。約1年前から検索エンジンの開発などを担当することになり、テックブログにもい…

ユニットテストをGitHub ActionsからCodeBuildに移行し、実行時間を35%削減した

こんにちは。NewsPicks SREチームの 海老澤 です。 今回はGithub Actionsで実行していたテストを高速化したので紹介したいと思います。 課題 NewsPicksでは Junitのテスト等をGithub Actions から実行しているのですが、2013年のサービス開始当初から存在す…

Kubernetes ネイティブなワークフローエンジン Argo Workflows のご紹介

こんにちは。Product Team の竹原です。 先日、社内用の小さな Web アプリを追加開発する機会がありまして、その際に CI/CD パイプラインの作成も行いました。 CI/CD パイプライン構築のために Argo Workflows を使ってみたところ非常に感触がよかったので、…

F#の判別共用体について紹介します

こんにちは、SaaS Product Teamのasanoです。 業務でF#を使って開発を行ったのですが、そこで判別共用体の便利さを実感したので紹介したいと思います。 目次 判別共用体とは 判別共用体の使用例 判別共用体を使用するメリット まとめ 判別共用体とは 判別共…

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

こんにちは。ユーザベースグループ 技術広報チームです。 この度、株式会社ニューズピックス (以下、NewsPicks) は、Findy Team+ Award 2022 を受賞致しました。 受賞内容について Findy Team+ は、エンジニア組織のパフォーマンス向上を支援するサービスで…

GitHub Actions / GitHub CLI を使った PR レビューをサポートする取り組み

NewsPicks でサーバーサイドエンジニアを務めている池川です。 サービス運営をされている会社さんであれば、どの会社さんでも何らかの障害を起こし、その対策のための MTG を実施されていると思います。 が、サービスを長く運営していると、過去に発生してし…

安全安心の開発体験のために Visual Regression Testing はじめました。

NewsPicks Web Experience Unit でフロントエンドエンジニアをしているじゆんきち(@junkisai)です。 弊チームでは、ここ1年間くらいWeb 版のNewsPicksを新しい基盤に置き換えつつ、見ためも刷新するプロジェクト(以下リニューアルプロジェクト)を進めてい…

Page top