Tech Blog

法人サービスの管理画面を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を新しい基盤に置き換えつつ、見ためも刷新するプロジェクト(以下リニューアルプロジェクト)を進めてい…

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

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

NPのAndroidで使われているUnitTestについて

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

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 のシンプルな言語機能ゆえの奥…

Page top