<-- mermaid -->

Tech Blog

stringerの出力コードに見る、Go言語の奥深さ

はじめまして。AlphaDrive Product Division の fmatzy です。 AlphaDrive では、新規プロダクトの開発に Go を採用しています。 Go はシンプルな言語機能によって高い生産性を実現するという思想の言語です。本ブログでは、Go のシンプルな言語機能ゆえの奥…

コンテナイメージのバージョン管理を自動化したい!

皆様はじめまして! NewsPicks SREチームの中川です。 本日はコンテナイメージのバージョン管理についての記事をお届けします。 概要 実装 ビルド デプロイ Pros Cons おわりに 概要 NewsPicksではECSやKubernetesに代表されるコンテナサービスを使用してお…

newrelic/nextを使ってNext.jsプロジェクトにNew Relicを導入する

こんにちは。AlphaDrive フロントエンドエンジニアの aku11i です。 Next.js で開発中のプロジェクトに New Relic APM / Browser を導入しました。 実は前にも対応したことがあったのでこれで2度目ですが、改めて調べ直したところ @newrelic/next というパッ…

イベントレポート「NewsPicksでのモバイルアプリの技術的負債解消方法 - TechBase vol.2」を開催しました!

こんにちは。ユーザベース TechBrandingチームです。 2022年7月28日(木)にオンラインイベントイベント「NewsPicksでのモバイルアプリの技術的負債解消方法 - TechBase vol.2」を開催しました。弊社のNewsPicks アプリ開発チーム リーダー 石井 幸次 (@ko2…

インターン生がDBのテストをKotlinで書けるようにした話

はじめに タスクについて 実装までの流れ 1. 採用するに相応しいインメモリDBがどれかを調査して決定する 2. インメモリDB向けにデータを初期化するプログラムを開発する 作ったもの 3. テストコードを書く 4. テストコードをリファクタリングする 4-1. Sess…

AWSのコストモニタリングの知見をシェアしたい

NewsPicksの高山です。 今回は、AWSのコストを我々がどのように定点観測しているかを書いていきます。 あわよくば他社さんも事例を広く共有してもらえて業界全体の共有知が増えることに繋がってほしい狙いがあります。 NewsPicksでは過去2年ぐらいかけて地道…

arrow.core.Either 使い方メモと、初めてのKotlinコードリーディング

はじめに arrow.core.Eitherとは arrow.core.Eitherのサンプル arrow.core.Eitherの生成方法 1. Any#left / #right 2. Either#fx arrow.core.Eitherの利用方法 arrow.core.Eitherに関するまとめ Kotlinソースをデコンパイル 2回呼ばれる#bindメソッドの謎 ca…

誰もがエンジニアリングを楽しめる世界を目指して。親子で楽しむプログラミング教室を開催しました!

ユーザベースでは、「エンジニアリングを起点に、誰もがビジネスを楽しめる世界を実現したい」という想いから、2022年4月より「Play Engineering」というプロジェクトを推進しています。 このプロジェクトでは、エンジニアではない職種のメンバーも楽しくエ…

AndroidのSearchViewをMVVMとBindingAdapterで動的にカスタマイズした話

こんにちは。NewsPicks Androidアプリエンジニアの sefwgweo です。 今回はタイトル通りAndroidにおけるSearchViewのUIをMVVMでCustomした話をします。 なお、SearchViewの検索機能に関しては一切触れておりませんので予めご了承ください。 要件 苦労ポイン…

コンポーネントとGraphQLクエリの管理にFragment Colocactionを導入したら素晴らしかった件

はじめまして、NewsPicks Web Product Unitのじゆんきち(@junkisai)です。 弊チームでは、ここ1年間くらいWeb 版のNewsPicksを新しい基盤に置き換えるプロジェクト(以降、リアーキプロジェクト)を進めています。 新 Web 基盤のフロントエンドはReact (Next…

イベントレポート「エクストリームプログラミングで見える開発風景 - TechBase vol.1」を開催しました!

こんにちは。ユーザベース TechBrandingチームです。 2022年6月24日(金)にオンラインイベントイベント「エクストリームプログラミングで見える開発風景 - TechBase vol.1」を開催しました。ゲストに、『エクストリームプログラミング』翻訳者の角 征典さん…

Elasticsearchの検索速度低下を調査してEBS Volumeタイプを変更したら高速化できました

こんにちは。NewsPicksでエンジニアをやっております崔(チェ)です。現在は Data / Algorithm チームで検索エンジンの開発を担当しております。この半年間、検索に関しては色々と改善しており、去年までと比較し大きく使いやすくなったのではないでしょうか…

SageMaker Serverless Inferenceも使っているNewsPicksの機械学習システムの構成を紹介します!

こんにちは。NewsPicksエンジニアの雲越です。 NewsPicksでは、記事のレコメンドを始めとする機械学習を組み込んだシステムがいくつか動いており、中にはAmazon SageMakerを使って実装されているものもあります。 今回はそんなシステムの一つである記事分類…

Hybrid NEGを利用してアプリケーションをGCLBで公開するためのTerraform Moduleを実装する

こんにちは、SaaS SREチームの八代です。 私たちのチームで開発しているSPEEDAというSaaSプロダクトは、オンプレミスとGCPで構成されたハイブリッドクラウド環境上に構築されており、私たちはGoogle Anthosや、Direct Connectなどのサービスを利用し、ハイブ…

残業と生産性とリアーキテクチャの効果

はじめに 残業と生産性の相関 リアーキテクチャ時の生産性の推移 おわりに はじめに こんにちは、モバイルチームスクラムマスターのko2icです。 NewsPicksのモバイルチームでは、1スプリント1週間で、全てのタスクをストーリーポイントに落としています。た…

Ms.Engineer 主催の寄附講座に登壇し、自身のキャリアと NewsPicks という職場について振り返ってみました

はじめに こんにちは あるいは こんばんは。 NewsPicks の Product Division Web Product Unit のイイダユカコ( @becyn )です。 この度、大変僭越ながらMs.Engineer 様主催の受講生の方々を対象とした寄附講座に参加させていただきました。 株式会社サイバ…

ニューズピックスの一人目QAが一年目をふりかえる

ニューズピックスの西薗(にしぞの)です。一人目のQAエンジニアとして入社したのが去年の6月なので、そろそろ一年です。かれこれ5年ほどはQAエンジニアとして働いていたものの、「一人目QA」も「自社サービスのQA」も「組織を作る」も全て初めてのことで、…

ニューズピックスでのChatOpsによるリリース作業

ニューズピックス SREユニットリーダーの武藤です。私はここ数年は開発環境を近代化するために働いているのですが、最近では新しいメンバーから技術スタックについて「モダンですね」と言っていただけることが増えてきました。技術スタックの更新は最近ニュ…

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

こんにちは。Product Teamでデータサイエンティストとして働いてるGaoです。 データサイエンティスト含め、Product Teamは普段チーム開発を行っており、常時ペアプロをしているのですが、1ヶ月間チームから離れて自由に開発をすることができる「1人プロジェ…

短い期間で成果を出すための失敗と学び

はじめに こんにちは。Product Team の竹原です。SPEEDA の「セグメント比較」機能に関する開発を担当しています。 私が所属している開発チームでは、2022年1月〜3月の期間で新しい機能「セグメント比較編集」をリリースしました。 この機能の開発のため、フ…

モバイル開発での技術的負債の解消方法

はじめに こんにちは、@ko2icです。今回はAndroidのアーキテクトとして書きます。 ニューズピックスのモバイル開発は古い技術で古いアーキテクチャをいまだに使っていると思っていませんか?たとえば、Androidは昔のブログでMVPを利用しているとの記述が...…

Elasticsearch の reindex をするために試行錯誤して分かったこと

こんにちは。NewsPicksでエンジニアやっております崔(チェ)です。現在は Data / Algorithm チームで検索エンジン開発を担当しております。弊社は、検索エンジンとして Elasticsearch を Amazon EC2 に乗せて構築しておりますが、メンテナンスに消極的だっ…

チームビルディングをふりかえる

こんにちは。 Product Team の相川です。 現在はProduct TeamでINITIALというプロダクトの開発をしております。 昨年の5月頃から、チーム作りに関わる機会があったので、チームの立ち上げからどんなことをやっていたのか、ふりかえりと共にお伝えしていきた…

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

はじめに こんにちは、NewsPicksの小林です! 今回は、NewsPicks サービスのアプリに学割プランを追加するため、内製の学生認証を廃止して、外部認証サービスの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 トピックスと投稿機能

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

【イベントレポート】技術的負債との付き合い方のススメ|「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 デザイナー 吉川さんのアツい記事『https://note.com/ak…

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

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

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

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

ElixirでTDDに挑戦!!!

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

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

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

Page top