<-- mermaid -->

Tech Blog

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

はじめに 概要 一般的な1on1 目的 実施方法 Product Teamの1on1 目的 実施方法 まとめ Product Teamの1on1の課題とメリット 課題 コーチとクライアントの組み合わせ決めはどうやるのか コーチがクライアントの業務をしらない可能性が高いが問題ないのか 全く…

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

はじめに ABテストの流れ ABテスト基盤の仕組み 様々なユースケースに対応する 管理画面のローコード化 おわりに はじめに こんにちは!NewsPicks Business Growth のアダチ(@dikxs118)です。 NewsPicks Advent Calendar 2022 の最終日を担当させていただ…

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

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

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

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

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

はじめに 参加した背景 インターンを始めて 挫折 オフライン出社とイベント 現在 これから はじめに 初めまして。AlphaDriveのインターン生の佐藤匠と申します。 今回は、AlphaDriveのエンジニアインターンに参加させて頂いて半年以上経ったので、長期インタ…

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

はじめまして! AlphaDriveでエンジニアをしている、神と申します! 今回は、SWRで再検証を行うタイミングを制御する方法についてご紹介したいと思います! この記事で伝えたいこと 背景 実装してみる 詰まった箇所 解決策: 関連するキャッシュのみ削除する …

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

はじめに 結果から発表 何をしたか 計測方法 計測の結果わかったこと 解決方法 起動時のActivityを極力減らす 情報のライフサイクルによってAPIを分割する どう進めたか 新しい方式と古い方式でのキャッシュを同期させる Adaptorをかます 副次的効果 終わり…

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 のブログとして記載させていただいています。 この記事でお伝えしたいこと 何が問題だったのか? どのように改善して…

基幹システムではない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テストを実機で動かす上でのインフラ周りの設定方法を紹介しようと思います。 課題 構成図 詳細 cdk Mac側の…

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

はじめに AlphaDriveに出会うまでの背景 出会ったきっかけ インターン開始! 念願のオフライン出社 これから はじめに 初めまして。広島大学の4年の田川裕介(@t_yusuke_jp)と申します。 この度はAlphaDriveでエンジニアインターンをさせていただいて半年…

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 のプッシュ通知について プッシュ通知事前テストの導入 構築した基盤の概要 Braze の設定 導入結果 おわりに はじめに こんにちは、NewsPicks エンジニアの佐藤と申します。 NewsPicks Advent Calendar 2022 の11日目を書かせていただき…

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

はじめに Translating Embeddings for Modeling Multi-relational Data 固有表現抽出のサーベイ Confident Learning BERT CRF Model Evaluation, Model Selection Human-in-the-Loop Active Clean 巨大言語モデルのプロンプトエンジニアリング Algorithm Sel…

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

初めまして、アプリケーションエンジニアの杉浦(saba_can00)です! 本記事は、NewsPicks Advent Calendar 2022 の12/7 のブログとして記載させていただいています。 この記事でお伝えしたいこと ざっくり状況の説明 プロダクトを内製化がスタート 引き取った…

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へ移行するにはどうする??

はじめに 本題 Javaクラスの一部をKotlinで書く おわりに はじめに みなさんこんにちは!NewsPicks Growthチームの アダチ (@dikxs118)です。 NewsPicksではサーバーサイドの開発にKotlinの導入を推進しており、新規で書くコードは全てKotlin、既存のコード…

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

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

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

こんにちは。NewsPicks SREチームの 海老澤 です。 今回はGithub Actionsで実行していたテストを高速化したので紹介したいと思います。 課題 取り組み テストの並列化 AWS CodeBuildへの移行 CodeBuildの設定 コンピューティングタイプ トリガー buildspec.y…

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

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

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

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

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

こんにちは。ユーザベースグループ 技術広報チームです。 この度、株式会社ニューズピックス (以下、NewsPicks) は、Findy Team+ Award 2022 を受賞致しました。 受賞内容について 今回の受賞について、NewsPicksフェロー・高山からのコメント NewsPicksのエ…

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

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

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

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

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テストを実施するようにしたので、紹介したいと思います。 課題 MailHog サ…

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

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

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

こんにちはこんにちは!!あやぴーです。 最近の仕事ではF#を使ったり、Clojureを使ったりすることが多いのですが、今日は久しぶりにClojureの話を書きます。 Clojureでテスト書くときに一緒に使うライブラリ何使ってますか? テスト対象が依存する関数をモッ…

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

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

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

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

Page top