TECH PLAY

株式会社ユーザベース

株式会社ユーザベース の技術ブログ

476

初めまして、アプリケーションエンジニアの杉浦(saba_can00)です! 本記事は、NewsPicks Advent Calendar 2022 の12/7 のブログとして記載させていただいています。 この記事でお伝えしたいこと ざっくり状況の説明 プロダクトを内製化がスタート 引き取った際のLocal環境のセットアップの状況 なぜ、そんなに時間がかかっていたのか? どのように改善していったか? 1. セットアップドキュメントを新しく更新 2. Dockerを利用して、Local環境にミドルウェアを導入するように改善 3. Nodeのversionを.node-versionにより統一 4.…
アバター
NewsPicks のエンジニア採用に関する取り組みと、そこから得た学びについて共有します。
アバター
こんにちは、NewsPicks サーバーサイドエンジニアの池川です。 NewsPicks Advent Calendar 2022 の 3 日目です。 qiita.com 昨日は、 Virtual Muto さんによる 2 日目の記事で、感想などを書きたいところですが、実は本記事を 11 月末に書いているので、当日のお楽しみにしたいと思います。 本題ですが、NewsPicks では、もともと Java で書かれていたサーバにおいて、Kotlin を全面的に採用しており、現在では Kotlin を変更しない PR はないのではというほど、 Kotlin 開発が浸透しております。 この状態を達成す…
アバター
Product Team SREのkterui9019です。 Elastic Cloud on Kubernetes(以後ECK)をご存知でしょうか? Elastic stack(Elastic Search等)を、kubernetes上に展開するためのoperatorなのですが、弊社では今年から段階的にGCEで構築していたESクラスタをECKでリプレイスを進めています。 元々特定のマイクロサービスとのみ通信する小さめのESクラスタが複数個GCE上に存在していたのですが、今年に入ってから円安の影響で無視できないコストとなっていました。 ECKであればkubernetesクラスタ上でElasti…
アバター
このブログは NewsPicks Advent Calendar 2022 2日目の記事です。 qiita.com こんにちは。むとうです。 プログラミングって難しいですよね。昔スゴーク頑張って何十行も書いたコードをベテランの人に一行に直されて、衝撃が走ったことを覚えています。手練との歴然とした力の差を見せつけられる、みなさんもそういう経験があるのではないでしょうか? 私はかれこれ20年近くプログラミングを教えてきており、人のコードの書きっぷりを見て「これを身につければもっといい感じにできるのに」と感じることも増えてきました。そういう技は決して難しいものばかりではありません。誰でもすぐに身につ…
アバター
このブログは NewsPicks Advent Calendar 2022 1日目の記事です。 qiita.com NewsPicksのSREチームでリーダーをしている安藤です。 NewsPicksに入社して1年が経ちましたが、最近は円安により親の顔よりもAWS Cost Explorerを見る毎日です。 ということで、コストの話をしていきたいと思います。 NewsPicksでのコンテナ移行について ECS on EC2とは? コンテナの実行環境としてFargate or EC2を選択する時の評価基準 実際、Fargateはどれだけ割高なの? CPU性能の比較 コンピューティング料金の比較 パ…
アバター
こんにちはNewsPicks SREチームのエドウィンです。 NewsPicksが提案した「「最高の開発者体験」への挑戦 〜Amazon ECSによる全面コンテナ化の軌跡〜」というテーマが「AWS Dev Days Japan 2022」の発表テーマとして選ばれました。 「AWS Dev Day」はAWSさんが開催する「開発を牽引するエンジニアのためのテクニカルカンファレンス」です。 今回の「AWS Dev Day Japan 2022」は2022年11月8日から2022年11月12日の間に開催されて、NewsPicks SREチームリーダー安藤裕紀さんとDay 1の15時のセッションで発表し…
アバター
こんにちは!SaaS Product Team(UzabaseのB2B SaaS事業を開発するチームのこと)のイベントチームの炭谷、田中です。2022年10月にSaaS Product Team全体でキックオフを行いました。今回の記事はそのイベントレポートとなります。 キックオフは毎年上期と下期の初めにリモートで開催しているのですが、今回のキックオフでは新型コロナウイルス対策を考慮しつつオフィスで開催することになりました。 キックオフとは プログラム1: プロダクト全体の絵を描く プログラム2: リアル版テックフォーラム プログラム3: CTO稲垣さんと話そう キックオフを開催してみて Saa…
アバター
こんにちは! NewsPicksの法人向けサービス開発チームの森です。 2022年11月6日(日)に開催された「Acaric Career Cafe -理系女性限定 vol.3-」に文字さん、赤澤さん、飯田さん、森の4名で参加し、学生の皆様とお話させていただきました。 acaric.jp 今回は学生の皆様とお話して盛り上がったトークを本ブログでシェアさせていただければと思います! なぜエンジニアになりましたか? 参加者は女性のみのイベントだったこともあり、ダイバーシティ関連のお話も! こんな相談も受けました その他の制度などのご紹介 さいごに なぜエンジニアになりましたか? 様々な専攻の学生の…
アバター
はじめに 本題 Javaクラスの一部をKotlinで書く おわりに はじめに みなさんこんにちは!NewsPicks Growthチームの アダチ (@dikxs118)です。 NewsPicksではサーバーサイドの開発にKotlinの導入を推進しており、新規で書くコードは全てKotlin、既存のコードでもJavaで書いてあるものを随時Kotlinに書き換えています。 Kotlinを使うからには、「日本一使いこなせている!」と言えるまでに高められるよう、日々勉強会や、外部カンファレンスへの登壇を積極的に行なっています。 その成果もあって、社内での知見も溜まってきておりKotlinをはじめたての…
アバター
こんにちは。NewsPicksの崔(チェ)です。文系から情報系の大学院に進学し、NewsPicksにエンジニアとして新卒入社しました。現在は Data / Algorithm チームに所属しております。約1年前から検索エンジンの開発などを担当することになり、テックブログにもいくつか記事を書かせていただきました。今年の上半期に書いた「Elasticsearch の reindex をするために試行錯誤して分かったこと」をもとに、「第50回Elasticsearch勉強会」で初めての社外発表をしてきました。 tech.uzabase.com 今回はそのレポートを書いてみようと思います。新卒としてエ…
アバター
こんにちは。NewsPicks SREチームの 海老澤 です。 今回はGithub Actionsで実行していたテストを高速化したので紹介したいと思います。 課題 取り組み テストの並列化 AWS CodeBuildへの移行 CodeBuildの設定 コンピューティングタイプ トリガー buildspec.yml 結果 課題 NewsPicksでは Junitのテスト等をGithub Actions から実行しているのですが、2013年のサービス開始当初から存在する、一番コードベースが大きいリポジトリのビルド・テストの実行時間に 20~30分ほどかかっていました。 テスト自体はバグを産まないた…
アバター
こんにちは。Product Team の竹原です。 先日、社内用の小さな Web アプリを追加開発する機会がありまして、その際に CI/CD パイプラインの作成も行いました。 CI/CD パイプライン構築のために Argo Workflows を使ってみたところ非常に感触がよかったので、感想などを記載しておこうと思います。 ※ 今回は概要の紹介程度となります。実際に作成したワークフローはまた次回ご紹介します。 Argo Workflows とは 公式のワークフローサンプル Argo Workflow ならではの便利さとか工夫とか 利用するツールや動作環境のバージョンをコントロールしやすい Ku…
アバター
こんにちは、SaaS Product Teamのasanoです。 業務でF#を使って開発を行ったのですが、そこで判別共用体の便利さを実感したので紹介したいと思います。 判別共用体とは 判別共用体の使用例 判別共用体を使用するメリット まとめ 判別共用体とは 判別共用体(discriminated unions)とは、F#で使用される型の一種です。 TupleやRecordが型の積集合を表すのに対し、判別共用体は型の和集合を表し、定義したパターンのうちいずれかのパターンを取ることができます。 以下、Microsoft公式ページからの引用です。 判別共用体は、数多くの名前付きケースのうちのいずれか…
アバター
こんにちは。ユーザベースグループ 技術広報チームです。 この度、株式会社ニューズピックス (以下、NewsPicks) は、Findy Team+ Award 2022 を受賞致しました。 受賞内容について 今回の受賞について、NewsPicksフェロー・高山からのコメント NewsPicksのエンジニア組織について 11 月に「開発者体験の測定と改善」というテーマで、オンラインイベントも開催予定です! 募集ポジション 受賞内容について Findy Team+ は、エンジニア組織のパフォーマンス向上を支援するサービスです。 GitHub や Jira などを解析し、エンジニア組織のパフォーマン…
アバター
NewsPicks でサーバーサイドエンジニアを務めている池川です。 サービス運営をされている会社さんであれば、どの会社さんでも何らかの障害を起こし、その対策のための MTG を実施されていると思います。 が、サービスを長く運営していると、過去に発生してしまった事故と似た事故を発生させてしまうということが往々にしてあります。 NewsPicks でも、そのような事故が発生し、どうしたものかということが MTG での話題にのぼりました。 そこで、 NewsPicks ではそのような事故を風化させないための取り組みとして、事故が発生しそうな PR に対して、 GitHub Actions を用いて…
アバター
NewsPicks Web Experience Unit でフロントエンドエンジニアをしているじゆんきち(@junkisai)です。 弊チームでは、ここ1年間くらいWeb 版のNewsPicksを新しい基盤に置き換えつつ、見ためも刷新するプロジェクト(以下リニューアルプロジェクト)を進めています。 今回は、弊プロダクトで Visual Regression Testing をはじめて、3ヶ月ほど運用してきたので、今回はその導入や運用にあたっての話をしたいと思います。 導入に至った背景と目的 使用したツールと構成 ツール 構成 導入の流れ ライブラリのインストール storycap の設定 r…
アバター
こんにちは!Product Teamのtakenokoです。 2022年4月に Ubuntu 22.04 LTS がリリース*1されました。皆さんはもう試されましたか? Ubuntuのアップグレードって、基本的にはdo-release-upgradeコマンドを実行するだけなのですが、久しぶりのアップグレードだったりaptパッケージを長いこと更新していないと、何かと時間が掛かるものです。 そこで今回は細かい補足も交えながら、Ubuntu 20.04 LTS を Ubuntu 22.04 LTS にアップグレードする手順をまとめました。「もう準備OKだよ!」という方は、事前準備を読み飛ばしてもらっ…
アバター
こんにちは。NewsPicks Androidアプリエンジニアの sefwgweo です。 今回はタイトル通りNPのAndroidで使われているJsonのアサートをするライブラリについて話をします。 要件 苦労ポイント まとめ おわりに 要件 正解データはJsonファイルとして用意されるので、それを用いたアサーションを行うこと。 苦労ポイント Json同士を比較するために、Javaの世界ではいくつかライブラリがありましたがAndroid内で使おうとすると色々問題が出たため、初期の頃はケースによってはMapに変換してアサーションしていました。 Map変換していた理由としては、テストケースによって…
アバター
こんにちは。みなさんテスト書いてますか? Uzabase FORCAS開発チームです。 今回、FORCASから送っているメールの処理を変更するにあたり、これまで出来ていなかったメールを含むE2Eテストを実施するようにしたので、紹介したいと思います。 課題 MailHog サンプル構成と利用例 DockerでMailHogを立ち上げる サンプルアプリケーション E2Eテスト まとめ 課題 FORCASからのメール送信は、Amazon SESのSMTPインターフェイスを利用しています。 E2Eテストを実施するにあたって、費用面や検証の取り回しを考えると、Amazon SESを利用せずにテストできる…
アバター