TECH PLAY

株式会社ユーザベース

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

481

こんにちは。ソーシャル経済メディア「NewsPicks」を運営する、ユーザベースの技術広報チームです。 NewsPicksのAndroidチームが、DroidKaigi 2023にサポーターとして協賛することになりました! DroidKaigiは、エンジニアが主役のAndroidカンファレンスです。Android開発者有志による実行委員会が主催し、Android技術情報の共有とコミュニケーションを目的に開催します。 2023.droidkaigi.jp Day1(9月14日)終了後、アフターパーティーも開催予定となっております。 NewsPicksのAndroidチームが参加予定ですので、色ん…
みなさんこんにちは。ソーシャル経済メディア「NewsPicks」を運営する、ユーザベースの技術広報チームです。 NewsPicks のプロダクト開発チームでは、技術やデザイン領域をテーマとした社内勉強会が多数開催されており、日々学びの場としてインプットに励んでいます。 本日は、定期的に開催している社内勉強会を一挙ご紹介します! iOS勉強会 Android知見共有会 ゆる frontend 共有会 ABテスト輪読会 AI論文読み会 Kotlin 知見共有会 インフラ・運用勉強会 ポートフォリオ発表会 輪読会 ChatGPT 勉強会 iOS勉強会 【開催日程】 隔週金曜 15:00~ 【会の目的…
NewsPicks Androidエンジニアの sefwgweo です。 こちらでも紹介しましたがモバイルチームでは品質担保のために毎晩定時にE2Eテストを実行しており、今回はその中のVisual Regression Testに焦点をしぼって紹介します。 iOSのVisual Regression Test紹介記事にもある通り、Visual Regression Test導入前はデザイン崩れは目視でやっていましたが確認事項が多く見落としも出るため自動化に至りました。 本記事では特にVisual Regression Testの細かな説明はせず、Androidで導入時苦労した点をAPI28以下…
NewsPicks は開発者体験に注力しています。およそ 3 年半の取り組みの結果、DX Criteria のスコアが大幅に改善したため、測定結果を公開します!
導入 企画の背景 ハンズオン 環境構築 攻撃開始 XSS の説明 順位発表 ハンズオンをやってみてどうだったか? 良かったこと 伸びしろ 学び 今後に向けて We are hiring 導入 こんにちは、BtoB SaaS Product Team (以下 Product Team) の利根です。SPEEDA、FORCAS、INITIAL といったプロダクトの開発を行っています。 Product Team 内には、全社セキュリティを担うチームとは別に、プロダクトセキュリティの底上げを担うセキュリティチームが存在しています。 このセキュリティチームの課題はいくつもあるのですが、この数年でエンジニ…
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年従事していました。 そのた…