Tech Blog

学生認証に海外サービスのSheerIDを導入してみた

はじめに こんにちは、NewsPicksの小林です! 今回は、NewsPicks サービスのアプリに学割プランを追加するため、内製の学生認証を廃止して、外部認証サービスのSheerIDを導入したので、ご紹介したいと思います。 SheerIDとは SheerIDは学生や教師、医療関係…

Selenium Grid 4 の新機能 Dynamic Grid を Kubernetes に構築する

こんにちは。ユーザベース Product Team の old_horizon です。 私達の開発チームでは、E2E テストの実行環境として Zalenium を主に利用しています。 しかし 2020 年 3 月の最終リリースをもって開発が終了しており、将来的にリプレースを検討する必要があ…

自己組織化を少しだけわかりやすく説明してみる

こんにちは。 Product Team の相川です。 現在はProduct TeamでINITIALというプロダクトの開発をしております。 何回かに渡ってアジャイルについてブログを発信していこうと思い、ブログを書き始めました。 前回までユーザーストーリーについて書かせてもら…

NewsPicks の開発者として、Observability Conference 2022 by CloudNative Days で登壇しました

2022年3月11日に開催された「Observability Conference 2022 by CloudNative Days」に『NewsPicks のプロダクト開発エンジニアが実践する スキルとしての SRE』というタイトルで登壇しました。この記事はその内容についてポイントを絞って紹介しています。

とある中規模開発プロジェクトの記録

こんにちは。NewsPicksのkitoです。 NewsPicksでは、JobPicksという「みんなでつくる仕事図鑑」をコンセプトにしたサービスを提供しています。様々な職種のロールモデルの実名でリアルな経験談を閲覧・投稿でき、就活、転職、副業の仕事選びに役立ちたいと思…

Product Teamのみんながペアプロで気をつけているN個のこと

はじめに こんにちは。Product Teamの中嶋です。 今回は、日々のペアプロでProduct Teamの皆さんが、普段どういったことを気をつけてペアプロをしているのかをご紹介したいと思います。 慣れてない側としてのコツ わからない時は、「わからない」を口に出す …

ストーリーを小さくすること大きくすること

こんにちは。 Product Team の相川です。 現在はProduct TeamでINITIALというプロダクトの開発をしております。 前回からアジャイルについてブログを発信していこうと思い、ブログを書き始めました。 前回はユーザーストーリーについて書かせてもらいました…

1人で自由に開発する『1人プロジェクト』やってみた。レポート #2

こんにちは。Product Teamの北原です。 Product Teamでは普段チームでペアプロ開発をしていますが、1ヶ月間チームから離れて自由に開発をすることができる「1人プロジェクト」という制度があります。 今回、1人プロジェクトに参加してみたのでその感想につい…

ペアプロは秒のフィードバックを回し続ける

はじめに こんにちは。Product Teamの中嶋です。 前回の記事では、Product Teamが普段どんなペアプロをしているのかを書かせていただきました。 今回はペアプロとXPの価値の一つである「フィードバック」について、自分なりに言語化していこうと思います。 …

Fluent Bitを導入しました:ローカル実行・確認方法と、導入の過程でハマったこと

AlphaDrive、NewsPicks兼務でエンジニアしている大場です。 最近はNewsPicks Webの新基盤開発を行っています。 新基盤はNext.jsで開発していてAWSのFargateで構築しているのですが、このFargate上で取得したログをS3、New Relicに送るためにFluent Bitを導入…

NewsPicks トピックスと投稿機能

1. はじめに 2. トピックスとは 3. トピックスのリリースへ向けてチームで取り組んだこと 3-1. 週1でオンラインでランチしながら雑談をする会 3-2. 新しいコードは全てKotlinで 3-3. 改善案があれば柔軟にやり方を変えてみる 4. トピックス投稿機能 5. おわ…

【イベントレポート】技術的負債との付き合い方のススメ|「Qiita Engineer Summit 2021 Winter」

2021年12月17日、エンジニアとして活動している方を対象にしたオンライントークセッション「Qiita Engineer Summit 2021 Winter」が開催されました。 セッションテーマは「技術的負債との付き合い方のススメ」。エンジニアリングをしている中で議論として取…

【イベントレポート】NewsPicksと開発者体験、そしてJavaからKotlinへ|「Qiita Engineer Summit 2021 Winter」

2021年12月17日、エンジニアとして活動している方を対象にしたオンライントークセッション「Qiita Engineer Summit 2021 Winter」が開催されました。 セッションテーマ「NewsPicksと開発者体験、そしてJavaからKotlinへ」に、ニューズピックスの高山 温(現…

最近のProduct Teamのペアプロ×TDDの文化をご紹介します

はじめに はじめまして。Product Teamの中嶋です。今月からチームシャッフル*1でSPEEDAのR&D機能の開発を担当しています。 Product TeamではフルタイムでのペアプロとTDDを常に実践しています。 この話を社外でお話すると「どんな風にやっていくのかが想像つ…

1人で自由に開発する『1人プロジェクト』やってみた。レポート #1

こんにちは。 Product Team の相川です。 現在はProduct TeamでINITIALというプロダクトの開発をしております。 Product Teamではチーム開発を実施しておりますが、1ヶ月間だけプロジェクトから離れて1人で自由に開発をする「1人プロジェクト」が認められて…

自己組織化の力(Product Team 2022年上期キックオフ)

Product Teamの野口です。 ユーザベースのB2B SaaS事業を推進するProduct Teamでは、半期に一度キックオフを行っています。 そんな一日の様子をレポートします。 Product Teamがどんなチームなのか、普段の仕事とはまたちょっと異なるキックオフの一日をお見…

ユーザーストーリーのすすめ

こんにちは。 Product Team の相川です。 現在はProduct TeamでINITIALというプロダクトの開発をしております。 改めてのお話になりますが、Product TeamではXP(extreme programming)を軸にアジャイル開発を実践しています。 アジャイルのプラクティスについ…

reCAPTCHA v3をReact Hooksで実装する

こんにちは。 NewsPicks Web Product Unit の芥川(@aku11i)です。 NewsPicks の新Webフロントエンド基盤でNext.js・TypeScriptを使用した開発を行なっています。 今回、プロジェクトに reCAPTCHA (v3) を導入しました。 読み込みタイミングなどパフォーマ…

2022年における開発組織のパフォーマンス計測とNewsPicksの取り組みについて

NewsPicksの高山です。 2020年と2021年は「開発生産性」またはほぼ同義の「開発者体験」に注力した2年でした。特に2021年は、自分でも少しウザいぐらいに登壇やブログやインタビューでこの話をしていました。(後半からは「開発生産性」から派生してKotlinの…

FacebookからOAuthを停止されてわかった今時のセキュリティ

NewsPicksの高山です。 この記事はUzabase Advent Calendar 2021の23日目の記事です。昨日は我らが赤澤剛さんによるAWS Organizationの記事でした。 去る2021年10月12日に突然NewsPicksのサービスでFacebookログインやFacebookへの投稿ができなくなりました…

APM として New Relic を導入した話

はじめに こんにちは、NewsPicks の Web Frontend Unit でエンジニアをしています、イイダユカコ( @becyn )です。 本記事は、Uzabase Advent Calendar 2021 21日目の記事です。 前日は nikkie さんによる『 イベントレポート | Tech BASE Okinawaに行って…

AWS Organizationsで開発の安全性と生産性を同時に向上する

はじめに AWS Organizationsとは AlphaDriveのOrganization管理例 AWS Organizationsと組み合わせて導入したサービス AWS Organizations × AWS SSOで楽かつセキュアにアカウント管理 Security Hubでのセキュリティ設定状況を一元管理 AWS Resource Access Ma…

Next.js Update! 2021/11/24 に事例講演登壇者として参加しました!

はじめに こんにちは、NewsPicks の Web Frontend Unit でエンジニアをしています、イイダユカコ( @becyn )です。 本記事は、Uzabase Advent Calendar 2021 8日目の記事です。 7日目が NewsPicks UI デザイナー 吉川さんのアツい記事『「NewsPicksの時間は…

ネットワークの「ネ」も知らないで開発環境構築しようとしたらどハマりした

こんにちは。NewsPicksのアルゴリズム開発チームの崔(チェ)です。2020年4月新卒入社し、現在は検索エンジン周りの開発に携わっております。今回は、開発環境に必要なインフラを構築しようとしてどはまりしたお話をお伝えしようと思います。もし同じポイン…

NewsPicksアプリ開発における仕様や要件が複雑な様々なモジュールの一例

こんにちは。NewsPicks Androidアプリエンジニアの sefwgweo です。 今回は前回記載した以下のうち、5の「仕様や要件が複雑な様々なモジュール」について具体例をもとに紹介します。 不定期におきるリニューアル 動画配信システムとの連携 課金周り 多種多様…

ElixirでTDDに挑戦!!!

こんにちは、プロダクトチームのソーントンです。 社内の「1人プロジェクト」という取り組みで1ヶ月で社内ツールを作る機会があったので、初めての言語Elixirに初挑戦してみました。 その中でMoxを使ったTDDが楽しかったので、ご紹介します。 Elixirの単体テ…

未経験エンジニアの私がインターンからNewsPicksへの入社を決めた理由

はじめに NewsPicksの法人向けサービス開発チームの前表です。今回は、プログラミング未経験者だった私が、NewsPicksにエンジニアとして入社して半年間でやったことやキャッチアップするために工夫したことを振り返りつつ、未経験者ならではの視点からNewsPi…

NewsPicksアプリ開発におけるUIデザイン開発の具体例を紹介します

こんにちは。NewsPicks Androidアプリエンジニアの sefwgweo です。 突然ですが、皆様はニュースアプリにおけるアプリ開発ってどんなイメージをお持ちでしょうか。なぜこんな問いかけをするかというと、カジュアル面談や採用面談をしていると、わりとそこそ…

KotlinではじめるBDD

こんにちは。NewsPicksエンジニアの西山です。 9月22日に開催された「Server-Side Kotlin Study #2」に登壇させていただいたので、今回はこちらの内容に関して紹介させていただければと思います。発表資料はこちらです。 speakerdeck.com Server-Side Kotlin…

NewsPicksの一人目QAがこれから頑張る話

自己紹介 6月からNewsPicksのQAエンジニアとして入社した西薗(にしぞの)です。SIerでアプリケーション寄りのエンジニアを6年ほど経験した後、ベトナムのテストベンダーで2年弱、QAエンジニアをやっていました。得意、というか好きな領域はソフトウェアテス…

暗黙的フィードバックのための逐次行列分解ライブラリを公開しました

NewsPicksエンジニアの北内です。今回は、先日公開した協調フィルタリングのための行列分解ライブラリについて紹介します。 ニュースの推薦アルゴリズム 私が所属するアルゴリズムチームでは、アルゴリズムの力でNewsPicksのプロダクトやサービス全体を改善…

NewsPicksのサーバーサイド言語をJavaからKotlinに切り替えるために

NewsPicksでCTOをしている高山です。 NewsPicksではサーバーサイドの主要な開発言語としてJavaを利用してきましたが、今後Kotlinをメインにしていくことを目指して取り組みを始めました。 今回はその背景や取り組み内容を紹介します。 NewsPicksとKotlin 201…

プロダクト開発組織のチームビジョンを作ったらすごいパワーが生まれた話

NewsPicks のプロダクト開発組織のビジョンをつくったら、すごいパワーが生まれた話です。なぜチームビジョンを作ったのか・どう作ったのか・どんな効果があったのかを解説します。

iOSアプリにオファーコード機能を実装したときの話

こんにちは。NewsPicksエンジニアの takaaki.saito です。 所属しているGrowthチームでは、サービスのGrowth施策を技術面から支えるお仕事をしています。 今回はiOSアプリにオファーコード機能を実装したときのことを振り返り、実装を進める上で工夫したこと…

ファイルダウンロードを行う E2E テストを Selenium Grid / Zalenium で実施するための拡張を作る

こんにちは。ユーザベース Product Team の old_horizon です。 早速ですが明日 8/5 (木) 19:30 から、Qiita さんと合同で Qiita x Uzabase Tech Meetup #3 を開催します!ぜひ皆様ご参加ください。 今回は登壇するチームメンバーと日々取り組んでいる E2E …

デザイナー×フロントエンジニアで追求する最高の開発者体験 の講演について

AlphaDrive、NewsPicks兼務でエンジニアしている大場です。 フロントをメインで開発していますが、AWS CDKやServerless Frameworkを使って環境、リソース、CI/CD構築もしています。 また、最近ではGraphQLの導入のためAppSyncの検証と導入の推進もしています…

Amazon VPC内の独自サービスをPrivateLinkでプライベート接続する

こんにちは、NewsPicksエンジニアの美濃部です。 この記事ではAWSのPrivateLinkについての概要について説明していきます。PrivateLinkの知識が全くない方が理解をして頂く為の最初の入り口としてお役に立てればと思います。 PrivateLinkとは 公式ドキュメン…

JobPicks プロダクトにおける "HTML" との向き合い方について

こんにちは、JobPicks チームにてフロントエンドを担当しております、イイダです。 今回の記事では、Web Client の開発をしていく中で、私達が日頃どういった視点で "HTML" と向き合っているかという話をさせていただきます。 私達は、「表示データをできる…

NewsPicksにおけるレコメンドエンジニアのお仕事について

NewsPicksでCTOをしている高山です。最近の仕事のうちの大きな部分は、レコメンドエンジンを開発するチームのプロダクトマネージャー的な役割です。 今回はレコメンドエンジニアに興味のあるエンジニア向けにNewsPicksにおけるレコメンドエンジニアのお仕事…

NewsPicksの姉妹メディアを立ち上げ。そのプロダクト開発の裏側。

こんにちは、NewsPicksエンジニアの大森です。 今回はNewsPicksの姉妹メディア『JobPicks』を昨年立ち上げた際の裏側をエンジニア視点で振り返りたいと思います。NewsPicksのプロダクト開発の雰囲気や新規サービスでやって良かったことや次回への反省点など…

iOSアプリのログが正しく送信されていることを担保する

NewsPicks iOSアプリエンジニアの金子です。 NewsPicksアプリはニュース記事やコメントの投稿・閲覧といった基本的な機能に加えて、動画コンテンツや広告の表示、有料会員機能、法人向け機能など、様々な機能を持った規模の大きなアプリです。 このため社内…

システムの複雑さはどこから来るのか – Out of the tar pitを読む

Uzabase Saas Product Divisionフェローの矢野です。 この記事は、Rich Hickey(プログラミング言語Clojure作者)のプレゼンテーションSimple Made Easyへと繋がっていく、Ben MoseleyとPeter Marksによる「Out of the tar pit」というシステム設計について…

Svelteでいきましょう!

こんにちは。 SaaS Product チームの板倉です。 SaaS Productチームでは開発運用しているサービスのマイクロサービス/マイクロフロントエンド化を進めています。 マイクロフロントエンドを実現する技術として採用しているフレームワークはAngular(TS, Dart)…

新卒エンジニアが 『リーダブルコード』 を読んで感じたこと

初めまして。2020年4月NewsPicksに新卒エンジニアとして入社した崔(チェ)です。 実は私は、大学では語学を専攻し大学院から情報系に進学したもので、入社当時コーディング歴2年という浅い経験しかありませんでした。 そんな中、むしろ変な癖のついてない今…

WebComponentsを使ってみよう(その2)

こんにちは。SaaS Product Divisionのとみたです。 WebComponentsを使ってみよう(その1)の続きです。 今回は、Reactアプリケーションをカスタムエレメントとし、さらに別のフレームワークから使う、といったマイクロフロントエンドをやっていく上で実践的な…

Node.js の CPU プロファイリングでボトルネックを特定する

こんにちは。NewsPicksでソフトウェアエンジニアをしている森田です。 今回は業務の中で実際におこなった Node.js の CPU プロファイリングについてご紹介します。 なぜプロファイリングをおこなったのか 現在私が運用・開発しているWebサービスの Webフロン…

全員野球からPagerDutyまで。NewsPicksのオンコール体制はどう進化してきたか。

こんにちは!NewsPicksエンジニアの森川です。今回はNewsPicksのオンコール(=障害対応)体制の変遷と試行錯誤をご紹介したいと思います。 オンコール1.0 ~ 全員野球時代 ~ NewsPicksにはエンジニア全員が入るslackチャンネルがあり、ここで周知事項の共有や雑…

Jestでテスト駆動開発(TDD)を実践してみよう

こんにちは!SPEEDA開発の岩見です。普段は業務でKotlinやClojureなどのJVM言語によく触れています。 今回TypeScriptを使ってテスト駆動開発(以下TDD)を実践する機会があり、良い勉強になったなと感じたので記事を書くことにしました。この記事では、TypeS…

NewsPicks AndroidアプリにPicture in Picture機能を実装した話

こんにちは。 NewsPicksエンジニアのmarshallStonesです。 NewsPicksではiOS/Androidアプリケーションを開発するチームに所属しています。 レビューやお問い合わせなどからユーザーの皆様から導入を希望されておりましたPicture in Pictureを Androidアプリ…

Spring におけるエンドポイントの列挙と IntelliJ IDEA の呼び出し階層による影響範囲調査

こんにちは、 NewsPicks でソフトウェアエンジニアをしているガニエです。 2019年に NewsPicks に新卒入社してから現在に至るまで、基本的には toC サービスである NewsPicks の上に顧客組織内に閉じたコミュニティを作って NewsPicks をコミュニケーション…

Page top