Tech Blog

Ubuntu 20.04 LTS を 22.04 LTS にアップグレードする

こんにちは!Product Teamのtakenokoです。 2022年4月に Ubuntu 22.04 LTS がリリース*1されました。皆さんはもう試されましたか? Ubuntuのアップグレードって、基本的にはdo-release-upgradeコマンドを実行するだけなのですが、久しぶりのアップグレードだ…

AndroidでJsonのアサートに使えるJsonAssertについて

こんにちは。NewsPicks Androidアプリエンジニアの sefwgweo です。 今回はタイトル通りNPのAndroidで使われているJsonのアサートをするライブラリについて話をします。 要件 正解データはJsonファイルとして用意されるので、それを用いたアサーションを行う…

MailHogをつかってメール送信を含むE2Eテストを実施する

こんにちは。みなさんテスト書いてますか? Uzabase FORCAS開発チームです。 今回、FORCASから送っているメールの処理を変更するにあたり、これまで出来ていなかったメールを含むE2Eテストを実施するようにしたので、紹介したいと思います。 課題 FORCASから…

深い階層にあるサーバーに対してスティッキーセッションを有効にするのが大変だった話

こんにちは。 NewsPicksの鶴房です。 前回のテックブログでは、テストの技法の話をしました。 (前回のテックブログはこちらから) tech.uzabase.com 早いもので、そこから1年経ちましたが、今回はAWSのスティッキーセッションに関する話をしようと思います。 …

最近Clojureでテストを書くときに使っているライブラリをふたつ紹介します

こんにちはこんにちは!!あやぴーです。 最近の仕事ではF#を使ったり、Clojureを使ったりすることが多いのですが、今日は久しぶりにClojureの話を書きます。 Clojureでテスト書くときに一緒に使うライブラリ何使ってますか? アプリケーションでユニットテス…

iOSアプリ起動高速化に挑戦!不要コードやリソースの見直しとライブラリのstatic化編

みなさんこんにちは。NewsPickでiOSアプリの開発をしている森崎です。 当記事ではどのアプリも一度は見直しを検討したことがあるであろう、アプリの起動時間の高速化についてお話しします。 他の記事で起動時の処理や高速化への改善策を書いたので、ここでは…

【入社エントリー】営業職からエンジニアにキャリアチェンジして3ヶ月が経ちました

はじめに こんにちは! NewsPicksの法人向けサービス開発チームの森です。 入社から約3ヶ月経ったので、入社エントリーを書いてみようと思います! …が!タイトルにも匂わせた通り、私の前職は営業職@メーカーで、エンジニアとして働くのはNewsPicksが初め…

NewsPicksと株式会社ヘンリーさんでKotlin合同勉強会を開催しました

NewsPicksの高山です。 NewsPicksではちょうど1年前の2021年8月に、サーバーサイド開発言語をJavaからKotlinに切り替えていく決断をしました。 今では社内でも最も歴史のある2つのシステムがKotlinでも書けるようになり、置き換えも徐々に進んでいっています…

SwiftUI+TCAに挑戦!NewsPicks iOSアプリのリアーキテクチャについて

NewsPicks iOSエンジニアの金子です。 最近あちこちでリアーキテクチャについての話をしているのですが、割とふわっとした内容に留まってしまっていたので、もう少し具体的にどういうことをしているかをお伝えするために記事を書くことにしました。 本記事で…

Slack (Bitrise/Zapier) を使った自動化で業務効率の改善をする

アプリチームでの自動化を紹介!Bitrise, ZapierをSlackを使ってより便利に

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

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

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

皆様はじめまして! NewsPicks SREチームの中川です。 本日はコンテナイメージのバージョン管理についての記事をお届けします。 概要 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で書けるようにした話

はじめに こんにちは!NewsPicksのSREユニットでインターンシップをしている西(@yukinissie)です!ニッシー☆というニックネームで活動している福岡の情報系大学生です。先日、データベース(以下DB)とデータのやり取りをしているソースコードについてKotl…

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

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

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

はじめに はじめまして、NewsPicks App Product Unitの池川(いけがわ)と申します。 2022年5月から今のチームにジョインしており、もともとJavaエンジニアである自分が、最近はKotlinを触るようになりました。 そのキャッチアップの中で、NewsPicksの課金基盤…

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

ユーザベースでは、「エンジニアリングを起点に、誰もがビジネスを楽しめる世界を実現したい」という想いから、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とは 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)を軸にアジャイル開発を実践しています。 アジャイルのプラクティスについ…

Page top