TECH PLAY

株式会社ユーザベース

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

476

UB ResearchとNewsPicksの両方を担当している高山です。 去る7月10日に株式会社プレイドさんとNewsPicksの合同で、次のようなイベントを開催しました。 uzabase-tech.connpass.com 実はこのテーマは、僕から是非ともとお願いしてやってもらったのでした。 というのも、NewsPicks社内で蓄積されているA/Bテストの施策レポートが2年少々で120個(!)も溜まっていたので、是非ともその良い話を自分が聞きたいし、世の中にもシェアしたいと思ったのです。 NewsPicksでABテストの学びのストックが凄すぎるので絶対に世の中にアウトプットしたい!と思って…
アバター
こんにちは。ユーザベースの技術広報チームです。 NewsPicksのiOSチームが、iOSDC Japan 2023にシルバースポンサーとして協賛することになりました! iOSDC Japan とは、iOS関連技術をコアのテーマとした技術者のためのカンファレンスです。 iOSDC Japan メインのコンテンツは日本中、世界中から公募されたスピーカーによる知的好奇心を刺激するトークと参加者間のコミュニケーションですが、それ以外にも開催期間をお楽しみ頂ける企画が検討されているイベントです。 iosdc.jp ノベルティボックスには下記のチラシが同封されています。 裏面には、NewsPicks i…
アバター
NewsPicks Androidエンジニアの sefwgweo です。 今回はモバイルチームで取り入れているE2Eテストでのリトライ自動化とリリース完全自動化を作った話を紹介します。 モバイルチームでは品質担保のために毎晩定時にBitriseでE2Eテストを実行していますが、 端末やクラウドのネットワーク状態など、本来グリーンになるはずのテストでもエラーになることで余計な確認が必要でした。 自動リトライとリリース完全自動化を入れる前後では以下な違いがありました。 Before After 毎朝Slackで失敗したテストを目視後、BitriseのWebコンソールでPassするまで手動でRetr…
アバター
こんにちは。NewsPicks App Reader Experience Unit でエンジニアしている青木です。 NewsPicks では日々のサービス改善において AB テストを数多く実施しています。 施策毎に AB テストを柔軟に実施できるのは過去紹介した AB テスト基盤があってこそです。 https://tech.uzabase.com/entry/2022/12/25/183334 App Reader Experience Unit(以下 ARX)でも上記の AB テスト基盤を使ってモバイルアプリの改善を行なっています。 今回は ARX で AB テストを行う際に特に大事にして…
アバター
導入 こんにちは、Product Teamの朴です。 プロダクトを開発する中で、信頼が大事という話は良く聞きます。プロダクトマネジメントに関する本の「INSPIRED」、「Radical Candor」などでもメンバー同士の信頼関係の構築の大事さが強調されています。 特にプロダクト開発の中で多く取り上げられるこの信頼とはなんでしょうか? 時々組織の技術的な面よりこの信頼を積み上げることで、プロダクト開発のスピードが上がる重要なキーにもなります。ではプロダクト開発のスピードにも関係するこの信頼はどう積み上げていけば良いでしょうか? この記事は信頼についてと、信頼を資産のように考え、活用する方法に…
アバター
前回のまとめ jit-accessとは terraformでjit-accessを構築する 1. jit-accessアプリケーション用のサービスアカウントを作成 2. ネットワークリソースの作成 3. cloudrunの作成 4. モジュールの適用 5. IAM Conditionの追加 まとめ 前回のまとめ みなさんこんにちは。ProductTeam SREのkterui9019です。 前回の記事では、無秩序に作られていたIAMの設定を見直し、Googleグループの作成と組織体系に沿ったGCPプロジェクトのフォルダ階層を設計しました。しかし、最小権限の原則に従って設計したため、「障害対応時…
アバター
導入 なぜやるのか 起きたこと 個人からGoogleグループへ IAMの設計 まとめ 導入 みなさんこんにちは。ProductTeam SREのkterui9019です。 今回は、私たちがGoogle CloudのIAM権限を整理し始めていることについてお伝えします。 チームメンバーの入れ替わりやメンバーの入社・退職で発生する権限管理の課題に対する取り組みについて前後編に分けてお伝えします。 前編である今回は無秩序に設定されていたIAMロールのバインディングから、Googleグループを作って組織の階層構造に合ったフォルダ階層に整理した経験について書きます。 泥臭い内容にはなりますが、IAMロー…
アバター
UB Researchという企業研究所の立ち上げをしている高山です。 以前にお伝えした通り、人工知能学会全国大会2023にスポンサー & ポスターセッションで参加しました。 tech.uzabase.com スポンサーブース ポスターセッション 感想 スポンサーブース スポンサーブースではユーザベースの持つデータや課題を掲載していました。企業さんや学生さんなど多くの方々と交流することができました。 中には企業で研究開発チームにいてSPEEDAも使っていらっしゃるという方もいらっしゃって、改めて自社サービスの強みや課題に気づくこともできました。 また、共同研究に向けて前向きなお話ができたところも…
アバター
はじめに こんにちは!AlphaDriveで新規プロダクトの開発を担当している清水です。 私は前職が地方公務員で、ソフトウェアエンジニアとして働くのはAlphaDriveが初めてです。入社後4ヶ月が経ったので、私の目線から弊社の「開発組織のおすすめポイント」をお届けしようと思います! 私自身が入社前に「もっとここで働くイメージを掴めたら嬉しいな〜」と感じていたので、AlphaDriveに興味を持ってくださった方の参考に少しでもなれば幸いです! はじめに コーディング面接・面談での体験 実際に働くイメージができたライブコーディング面接 希望に合わせた面談を複数回セッティングしてくれた ジュニアメ…
アバター
こんにちは。NewsPicksでエンジニアをやっております崔(チェ)です。現在は Data / Algorithm チームで検索エンジンの開発を担当しております。 弊社は、検索エンジンとしてElasticsearch(以下、ES)をAmazon EC2に乗せて構築しておりましたが、ヤクの毛刈りも含め、約1年かけてマネージドサービスであるAmazon OpenSearch Service(以下、OpenSearch)に移行することができました!今回は、マネージド化のための諸タスクの中から、かなりハマっていたセキュリティの設定部分を中心にお話したいと思います。ご興味ある方は是非読んでいただけると嬉…
アバター
NewsPicks Mobile App Unitでインターンをしているりゅう(@ryu_hu03)です。 NewsPicksのiOSおよびAndroidアプリは基本的に週一で新しいバージョンがリリースされています。 リリース作業の多くは自動化されており、重要な機能についてはUIテストによって品質が担保されるようになっているのですが、見た目上のデザイン崩れが起きていないかの確認はこれまで手動で行っていました。 デザイン崩れがないかどうかの確認は目視でやるしかなく、確認項目もそれなりに多いので、デザイン崩れの見落としがあったりリリース作業自体の負荷が大きいといった課題がありました。 そこで、デザ…
アバター
こんにちは、あやぴーです。 今日は F# における Lens の話をしようと思います。 ある日のこと… Lens を用いて問題を解く まとめ ある日のこと… チームで F# を使って開発をしているとあることに気が付きました。あれ、もしかしてレコードタイプからフィールドの値を取り出すだけのラムダ式が結構書かれている…? 例えば、以下のようなレコードタイプがあるとします。 type Employee = { Name: string; Title: string } type Department = { Name: string; Leader: Employee } このとき次のようなデータに…
アバター
こんにちは、Product Teamのあやぴーです。 今回はここ1年くらい私のいるチームで使っているF#とASP.NET Coreを使ったAPI開発について簡単にまとめていきます。 F#ってなんだ? なぜ、今F#を採用したのか Minimal APIを使って、APIをつくる アプリケーションの雛形をつくる 任意のHTTPステータスとJSONレスポンスを返却する ルートパラメータやJSONボディの受け取り方 最後にF#を採用してみた雑感 F#ってなんだ? F#はMicrosoft(MSFT)が開発した、いわゆる関数型言語の特徴(第一級関数,イミュータブルデータなど)を持つ言語です。.NET VM…
アバター
導入 問題の発覚 動的ポート割り当ての落とし穴 監視とアラート 導入 こんにちは、Product Team SREのkterui9019です。 今回はGCPのCloudNATについての調査結果を共有したいと思います。CloudNATを利用している中で気づかないうちに実はパケットロスが発生していたので、詳細をご紹介します。 問題の発覚 私たちはお客様からの問い合わせを受けて、GKEにデプロイされている特定のマイクロサービスの「遅いエンドポイント」について調査を行っていました。 Datadogのトレースを追っていく中で、GCPのVPC外へのAPIアクセスがタイムアウトしていることが判明しました。し…
アバター
はじめに 経歴 キャッチアップ方法の結論 やったこと(時系列) 参画前(2ヶ月) Kotlin Android アーキテクチャ 参画後(6ヶ月) やっていたこと NewsPicksだからできたこと 最後に はじめに はじめまして、Androidエンジニアのa7therです。 Androidエンジニアとはいっても、まだまだAndroid開発に従事して8ヶ月の駆け出しのため、 自分なりの技術キャッチアップ方法と参画前後でどのようなことをしてきたかを書きたいと思います。 経歴 前提情報として自分の経歴を軽く.. 業務系Webアプリケーション開発と組込み系Java開発に約6年従事していました。 そのた…
アバター
NewsPicks SREチームのEdwin Wilsonです。 NewsPicksでは開発環境のテストデータのプロビジョニングを行うツールとしてDatarefreshというものがあります。 このツールは本番環境のデータストアから開発環境のデータストアに対してデータを同期するアプリケーションです。 対象のデータストアは以下となります。 Amazon RDS Amazon DynamoDB Amazon S3 Amazon ElastiCache 個人情報はRDSにのみに存在しており、マスク処理を行った後、同期しています。 DynamoDB ,S3, ElastiCacheには個人情報を存在しな…
アバター
はじめに これまでのNewsPicks有料プランの決済手段と課題 なぜキャリア決済にしたのか 開発 キャリア決済導入という山に登る ABテスト 振り返り はじめに こんにちは、NewsPicksエンジニアの上村です。 NewsPicksのプレミアム月額プランがキャリア決済に対応しているのはご存知でしょうか? これまで決済手段はクレジットカード決済のみでしたが、今年(2023年)3月に全ての新規購読者向けに(プレミアム月額プランのみ)3キャリアの決済手段が選択可能になりました。 そこで今回はキャリア決済導入の経過と学びについて書いていきたいと思います。 プレミアム月額プランでキャリア決済が選択可…
アバター
あいさつ 私たちの困りごと 原因はなんだろう? 解決策 おわりに あいさつ こんにちは。Product Team の冨田、阿波連、渡邉、鈴木、長田です。*1 本記事では、EmotionでスタイリングしたReactコンポーネントをWeb Componentとして出力しようとした時に、困ったことがあったので、解決方法をお教えします。 私たちの困りごと 私たちは、ReactコンポーネントをEmotionでスタイリングして、それをWeb Componentsとして出力することにしました。 以下のような感じです。 import { createRoot } from "react-dom/client"…
アバター
概要 どうやって指標を確認しているの? NewsPicksのFour Keysはどんな感じ? 改善前はどんな感じ? 改善のために何をした? 終わりに 概要 NewsPicksは「最高の開発体験の追求」をしている会社です。エンジニア向けのサイトの1ページでも謳っており、そこから弊社高山の記事に辿れるので、こちらも読んで頂けると幸いです。 そして、これはサーバーサイドだけの話しではなく、モバイルチームでも同じように開発者体験向上を目指し、Four Keysを追っています。 Four Keys とは、ソフトウェア開発チームのパフォーマンスを計測する4つの指標です。Four Keys 指標を用いること…
アバター
こんにちは。NewsPicks Expert開発チームです。 NewsPicks Expertはエキスパート・ネットワーク・サービスのアプリケーションの一部です。直近では主にエキスパートの情報の登録・編集機能の開発を進めています。 登録はこちらから => https://newspicks.expert/ 今回は開発チームで独自に行っている「学びの会」の取り組みについて紹介したいと思います。 取り組み紹介 経緯 起きたこと 課題と改善 こうしていきたい おわりに 取り組み紹介 学びの会は、毎日行っている朝会後の10分くらいの時間を利用して、それぞれのメンバーが業務外で学んでいること(主に業務で…
アバター