monzoupのブックマーク (48)

  • エンジニア従業員エンゲージメント向上への道 - Uzabase for Engineers

    はじめに こんにちは!NewsPicksのVP Of Mobile Engineeringの石井です。 約1年前にPharmaXさん主催の「事例で学ぶ!エンジニア組織文化を作る採用・評価の仕組み」というイベントでPharmaX 取締役・エンジニアリング責任者の上野さん、カオナビCTOの松下さんと私の3人で事例発表やパネルディスカッションをしました。(そのときの記事は、PharmaXさんのこちらの記事にあります) このときに私が話したエンゲージメントに関することは、「採用とオンボーディングを頑張った結果、エンゲージメントもよくなりました」的な話もしました。 ただ、それ以外にも多くのことをしています。今回はそこを深掘りしたいと思います。 以前の状態との比較 当時、発表した時のモバイルチームのエンゲージメントは次の通りでした。(NewsPicksでは半期に一度、サーベイをしています) で、202

    エンジニア従業員エンゲージメント向上への道 - Uzabase for Engineers
    monzoup
    monzoup 2024/05/08
  • Playwrightを使ったE2Eテストを導入した話 - Uzabase for Engineers

    はじめに こんにちは。ソーシャル経済メディア「NewsPicks」の QA/SET チームの海老澤です。 先日 弊社で E2E テスト実行するために Playwright を導入したため紹介させてください。 E2Eテストとは E2Eテスト(エンドツーエンドテスト)とは、ソフトウェア開発におけるテスト手法の一つで、アプリケーションが実際の運用環境と同様の条件下で正しく動作することを確認するためのテストです。 システムの開始点から終了点までを通じて、ユーザーの視点でアプリケーションのフローを追い、機能全体が連携して期待通りに動くかを検証します。具体的には、ユーザーが行うであろう一連の操作をシミュレートして、データがシステムを通じて適切に流れるかや、最終的なアウトプットが正しいかどうかを確認します。E2Eテストにより、部分的な単体テストや統合テストでは見逃されがちな問題を発見することができます。

    Playwrightを使ったE2Eテストを導入した話 - Uzabase for Engineers
    monzoup
    monzoup 2024/04/26
  • ソフトウェアエンジニアのライブラリアップデートの向き合い方 - Uzabase for Engineers

    こんにちは。ソーシャル経済メディア「NewsPicksNewsPicks Stage.事業のエンジニアをしています、林です。 業務では Next.js / Rust / Go などを用いて、経済・ビジネス情報に特化した動画配信サービスであるNewsPicks Stage.の開発・運用を行っています。 はじめに 突然ですが、皆さんは自身のソフトウェアのライブラリアップデートは行えていますか? 皆さんはどのようにライブラリアップデートを行なっていますか? 新機能を試したくて? npm iで失敗してから頑張る? Renovate / dependabot が自動Mergeされる環境? もしくは対応担当が特定の日にまとめてMergeする運用? しかし多くの開発者は、アップデートに対して「うまくいっている」と言えないのではないでしょうか?自身も様々なプロダクトを開発してきた経験上、日々の中ではどう

    ソフトウェアエンジニアのライブラリアップデートの向き合い方 - Uzabase for Engineers
    monzoup
    monzoup 2024/03/22
  • ジュニアエンジニアを脱却するための「コンテナ流儀」 - Uzabase for Engineers

    こんにちは。ソーシャル経済メディア「NewsPicks」で検索システムを開発しております崔(ちぇ)です。 この記事は、 NewsPicks Advent Calendar 2023 の23日目の記事になります。 qiita.com 昨日ははぐっさんによる「SwiftUIのKeyframeAnimatorでちょっとしたカードアニメーション 〜の手を添えて〜」でした! はじめに コンテナ流儀: 必要最低限のものだけで運用する Point1)レイヤーは少ないほどいい TIP:ベースイメージを作る Point2)不要なパッケージをインストールしない Point3)いつ再起動してもいいコンテナを作る Point4)独立したアプリケーションにする TIP:複数のプロセスを実行したい場合もある TIP:環境変数を積極的に使う Point5)フォアグラウンドで実行する 終わりに まとめ 感想 告知 はじ

    ジュニアエンジニアを脱却するための「コンテナ流儀」 - Uzabase for Engineers
    monzoup
    monzoup 2023/12/24
  • EC2とcronで動いていたバッチ基盤をマネージド化した - Uzabase for Engineers

    概要 ソーシャル経済メディア「NewsPicks」SREチームの中川です。 皆さんはバッチ処理基盤はどうされていますでしょうか。 NewsPicks では少し前まではそれらをEC2、cronの組み合わせで動作させていました。 何年も前からこの仕組みだったのですがSREとしてはEC2の面倒見るのも手間ですし、それ以上にcronを変更する際のオペレーションミスが目立ったのが懸念点でした。 その為、まずはAWSマネージド化するための基盤を整備し、その後バッチアプリを載せ替えていくようにしました。 対応前の基盤構成 同じSREチームの安藤さんが CloudNative Days Tokyo 2023 で登壇されたときの資料をお借りします。 ご覧の通り、大体のサービスはマネージド化していましたがバッチ基盤だけは旧来のままEC2インスタンスを利用していました。 10年モノのサービスのインフラを漸進的

    EC2とcronで動いていたバッチ基盤をマネージド化した - Uzabase for Engineers
    monzoup
    monzoup 2023/12/21
  • あるエンジニアの、ささやかな成長|monzou

    これは勤務先の Advent Calendar なのだけど、何を書こうか考えてみたところ、今年は私的なふりかえりにしようと思ったので個人ブログに書いている。 何故そうしたかと言うと、一年を振り返ってみて、今年は —— 正確に言うとこの二年ぐらいなのだが —— 自分の中で大きな思考転換があったから。年始から Japan Marketing Week・日 CTO 協会のイベント・開発生産性カンファレンス などいくつかのイベントに登壇し、一貫して「プロダクト開発組織のあり方」や「CTO の役割」について話してきたが、どれも自分自身の失敗談と、そこからの思考転換や取り組みについて話してきた。このポエムでは、そんな失敗談の裏側 —— 個人的な気持ちの変化について、筆の進むままに徒然なく書いてみようと思う。 エンジニア仕事は、コードを書くだけではない新卒で入ったのは金融のトレーディングシステムをつ

    あるエンジニアの、ささやかな成長|monzou
    monzoup
    monzoup 2023/12/20
    今年のポエムです。
  • 2023年のSREチームのAWSコスト削減を振り返る - Uzabase for Engineers

    概要 全般 何はともあれコストタグ Cost Explorer でリソース別にコストを見よう IaC化しよう QuickSight も使おう 稼働時間対応する際はマスタカレンダを用意したい コンピューティング、コンテナ関連 EC2 定時バッチはマネージド化しよう EBS, Snapshot, AMI, EIP を消す ECS Container Insights の有効/無効を使い分けよう 何でも Fargate を選択すれば良いわけではない Fargate スポットを活用しよう Lambda Graviton対応しよう ECR イメージサイズを抑えよう ライフサイクルポリシーを設定しよう ネットワーキング VPC VPCエンドポイント入れ忘れに注意 VPC Flow Logs のS3バケット設定に注意しよう ストレージ系 RDS スロークエリ出てないかAPMを使って確認 DynamoDB

    2023年のSREチームのAWSコスト削減を振り返る - Uzabase for Engineers
    monzoup
    monzoup 2023/12/11
  • プログラミングの原則:enumの比較はすべてバグ - Uzabase for Engineers

    こんにちは、ソーシャル経済メディア「NewsPicks」のむとうです。 この記事は NewsPicks アドベントカレンダー 2023 の3日目の記事です。 昨日は@J_Nakagawa(隼佑 中川)さんによる『LambdaレスポンスストリーミングとAWS-SDKを使ってSlackに進捗バーを表示させる』でした! 世の中には再現が難しく一見してバグがありそうに思えないコードもありますが、一方でプロダクションコードの中にはひと目見てバグが有りそうなコードもまた多いものです。いくつかの特定のパターンをとる文字列(環境名など)やenum(以下どちらもenumと表現します)に関する条件分岐もその一つです。プルリクを見てこのようなパターンがあれば、バグの疑いが強くなります。周囲を見渡すと、大抵すでにバグっているか潜在バグを含むコードが見つかります。すべてバグというのは言い過ぎにせよ、わかりやすさと変

    プログラミングの原則:enumの比較はすべてバグ - Uzabase for Engineers
    monzoup
    monzoup 2023/12/03
  • 推薦システムを独学で勉強していた非情報系の博士学生が長期インターンをしてよかったことと苦戦したこと - Uzabase for Engineers

    皆さんこんにちは! 株式会社ユーザベース NewsPicks機械学習エンジニアとして長期インターンをしている森田です:) 現在はData/Algorithm チームで、NewsPicksの推薦システム・データ基盤まわりの開発に取り組んでいます。 記事は、私が2022年8月から同組織に入社して現在までの約1年間の長期インターン活動を経て、参加して良かったことと苦戦したことをまとめたものです。特に企業での長期インターンに興味がある方に向けて、記事の内容を共有できればと想定しています。 はじめに タイトルの通り、私は非情報系なのに推薦システムを独学で勉強していた博士学生です(実は記事の執筆期間中に博士学生ではなくなりました…!)。ちょうど博士課程への入学時期に偶然Kaggleをきっかけに推薦システムという分野と出会い、興味を持って論文読んで実装してブログに上げて...みたいな活動を趣味

    推薦システムを独学で勉強していた非情報系の博士学生が長期インターンをしてよかったことと苦戦したこと - Uzabase for Engineers
    monzoup
    monzoup 2023/10/07
  • NewsPicks 社内勉強会の紹介 - Uzabase for Engineers

    みなさんこんにちは。ソーシャル経済メディア「NewsPicks」を運営する、ユーザベースの技術広報チームです。 NewsPicks のプロダクト開発チームでは、技術やデザイン領域をテーマとした社内勉強会が多数開催されており、日々学びの場としてインプットに励んでいます。 日は、定期的に開催している社内勉強会を一挙ご紹介します! iOS勉強会 Android知見共有会 ゆる frontend 共有会 ABテスト輪読会 AI論文読み会 Kotlin 知見共有会 インフラ・運用勉強会 ポートフォリオ発表会 輪読会 ChatGPT 勉強会 iOS勉強会 【開催日程】 隔週金曜 15:00~ 【会の目的】 ・知見の共有 ・アウトプットする場を設けてインプットを強化 ・他のメンバーから刺激をもらう 【これまでの内容】 ・Sendableと@SendableとTCA ・Easingを意識してみよう ・え

    NewsPicks 社内勉強会の紹介 - Uzabase for Engineers
    monzoup
    monzoup 2023/08/15
  • 3 年半でまるで別企業?大幅に改善した NewsPicks の DX Criteria を大公開! - Uzabase for Engineers

    こんにちは。NewsPicks CPO/CTO の文字です。先週、仕事が少し落ち着いたタイミングで久しぶりに DX Criteria を測定したので、今回はその結果を大公開しようと思います。 はじめに:NewsPicks は開発者体験に注力しています NewsPicks は、まもなくサービス開始から 10 周年を迎える息の長いサービスです。およそ 10 年前に Uzabase の新規事業として立ち上がり、以降は比較的少人数のエンジニア体制で長らく開発が続けられていました。4 年ほど前からビジネスの多角化に伴いエンジニアを大幅に増員していますが、高成長の裏でシステム面では様々な箇所が老朽化しており、エンジニアを増員してもスケールできない状態に陥っていました(きっと多くの方が想像できる状況だと思います)。 そこで 2020 年に私と高山(現 VP of Data Engineering)が執行

    3 年半でまるで別企業?大幅に改善した NewsPicks の DX Criteria を大公開! - Uzabase for Engineers
    monzoup
    monzoup 2023/08/07
    地道に DX Criteria を改善してきたので、最新のスコアを大公開してみました。思えば 3 年前に今の姿は想像できませんでしたが、引き続き頑張ります 💪
  • NewsPicksのA/Bテストがすごいので株式会社プレイドさんと『ABテストの理論と実践』勉強会を開催しました - Uzabase for Engineers

    UB ResearchとNewsPicksの両方を担当している高山です。 去る7月10日に株式会社プレイドさんとNewsPicksの合同で、次のようなイベントを開催しました。 uzabase-tech.connpass.com 実はこのテーマは、僕から是非ともとお願いしてやってもらったのでした。 というのも、NewsPicks社内で蓄積されているA/Bテストの施策レポートが2年少々で120個(!)も溜まっていたので、是非ともその良い話を自分が聞きたいし、世の中にもシェアしたいと思ったのです。 NewsPicksでABテストの学びのストックが凄すぎるので絶対に世の中にアウトプットしたい!と思って是非にとお願いしてイベントで話してもらうことになりました!!もしかしたら地味なテーマなんですが、それは承知の上で、他社さんでABテストとかをやってる方々には参考にしてもらえるはず。 https://t

    NewsPicksのA/Bテストがすごいので株式会社プレイドさんと『ABテストの理論と実践』勉強会を開催しました - Uzabase for Engineers
    monzoup
    monzoup 2023/07/21
  • モバイルのE2Eテストでのリトライ自動化とリリース完全自動化を作った話 - Uzabase for Engineers

    NewsPicks Androidエンジニアの sefwgweo です。 今回はモバイルチームで取り入れているE2Eテストでのリトライ自動化とリリース完全自動化を作った話を紹介します。 モバイルチームでは品質担保のために毎晩定時にBitriseでE2Eテストを実行していますが、 端末やクラウドのネットワーク状態など、来グリーンになるはずのテストでもエラーになることで余計な確認が必要でした。 自動リトライとリリース完全自動化を入れる前後では以下な違いがありました。 Before After 毎朝Slackで失敗したテストを目視後、BitriseのWebコンソールでPassするまで手動でRetryを実行し、テスト結果が正しいかわからないため3回以上失敗した場合にBitriseでエラーログをみて対処 テスト結果が正しい。失敗していた場合は、ほぼ確実にデグレが起きてるので、Bitriseで確認す

    モバイルのE2Eテストでのリトライ自動化とリリース完全自動化を作った話 - Uzabase for Engineers
    monzoup
    monzoup 2023/07/07
  • ABテストの結果よりも大事なたった一つのこと - Uzabase for Engineers

    こんにちは。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 テストを行う際に特に大事にしていることについてお話ししていきます。 ABテストの結果よりも大事なたった一つのこと 目的 ~ AB テストの結果が良かったから施策を適用するわけではない ~ 仮説 ~ 事前調査に基づく観点での仮説検証

    ABテストの結果よりも大事なたった一つのこと - Uzabase for Engineers
    monzoup
    monzoup 2023/07/04
  • Amazon OpenSearch Serviceへ移行:AWS CDKで構築するSAML+OktaでOpenSearch Dashboardsにログインできる環境 - Uzabase for Engineers

    こんにちは。NewsPicksエンジニアをやっております崔(チェ)です。現在は Data / Algorithm チームで検索エンジンの開発を担当しております。 弊社は、検索エンジンとしてElasticsearch(以下、ES)をAmazon EC2に乗せて構築しておりましたが、ヤクの毛刈りも含め、約1年かけてマネージドサービスであるAmazon OpenSearch Service(以下、OpenSearch)に移行することができました!今回は、マネージド化のための諸タスクの中から、かなりハマっていたセキュリティの設定部分を中心にお話したいと思います。ご興味ある方は是非読んでいただけると嬉しいです。 はじめに OpenSearch DashboardsにOktaでログインできるようにしたい SAML認証とは きめ細かなアクセスコントロールとは Dashboards接続時にOktaのログ

    Amazon OpenSearch Serviceへ移行:AWS CDKで構築するSAML+OktaでOpenSearch Dashboardsにログインできる環境 - Uzabase for Engineers
    monzoup
    monzoup 2023/06/05
  • iOSアプリ開発でVisual Regression Testingを導入しUIのデグレ検知を自動化した話 - Uzabase for Engineers

    NewsPicks Mobile App Unitでインターンをしているりゅう(@ryu_hu03)です。 NewsPicksのiOSおよびAndroidアプリは基的に週一で新しいバージョンがリリースされています。 リリース作業の多くは自動化されており、重要な機能についてはUIテストによって品質が担保されるようになっているのですが、見た目上のデザイン崩れが起きていないかの確認はこれまで手動で行っていました。 デザイン崩れがないかどうかの確認は目視でやるしかなく、確認項目もそれなりに多いので、デザイン崩れの見落としがあったりリリース作業自体の負荷が大きいといった課題がありました。 そこで、デザイン崩れが起きていないかどうかの確認を自動化すべく、Visual Regression Testingを実装しました。 記事では、その実装や効果についての話をしたいと思います。 使用したツールと流れ

    iOSアプリ開発でVisual Regression Testingを導入しUIのデグレ検知を自動化した話 - Uzabase for Engineers
    monzoup
    monzoup 2023/06/05
  • キャリア決済を導入してみたら課金開始率が10%以上UPした話 - Uzabase for Engineers

    はじめに これまでのNewsPicks有料プランの決済手段と課題 なぜキャリア決済にしたのか 開発 キャリア決済導入という山に登る ABテスト 振り返り はじめに こんにちは、NewsPicksエンジニアの上村です。 NewsPicksのプレミアム月額プランがキャリア決済に対応しているのはご存知でしょうか? これまで決済手段はクレジットカード決済のみでしたが、今年(2023年)3月に全ての新規購読者向けに(プレミアム月額プランのみ)3キャリアの決済手段が選択可能になりました。 そこで今回はキャリア決済導入の経過と学びについて書いていきたいと思います。 プレミアム月額プランでキャリア決済が選択可能になりました これまでのNewsPicks有料プランの決済手段と課題 前述した通り、これまでNewsPicksではWEB有料プランの決済手段はクレジットカードのみで、クレジットカードを持っていない方

    キャリア決済を導入してみたら課金開始率が10%以上UPした話 - Uzabase for Engineers
    monzoup
    monzoup 2023/05/26
  • MySQLのutf8mb4と戦った話 - Uzabase for Engineers

    皆様こんにちは、NewsPicksエンジニアの米澤です。 先日 2023/03/30は、こちらでアナウンスしていた通り、サービスの停止を伴うシステムメンテナンスを実施させて頂きました。 NewsPicksをご利用頂いている皆様には、ご迷惑おかけいたしました。 今回はこのメンテナンスの中で行われたDBテーブルのmigrationについてお話ししたいと思います。 ことの始まり やったこと 方針決め utf8mb4に対応していないテーブルを調べる migrationを作成する 影響範囲を調べる 開発環境でリハーサルを行う メンテナンスの日 最後に ことの始まり NewsPicksではバグの検知にBugSnagを利用しています。 ある時、BugSnagにこんなエラーが通知されてきました。 org.springframework.orm.hibernate4.HibernateJdbcExcepti

    MySQLのutf8mb4と戦った話 - Uzabase for Engineers
    monzoup
    monzoup 2023/04/29
    コメントありがとうございます。個人情報などはマスクされていますので、追記してもらいました。
  • ChatGPT開発合宿を開催しました! - Uzabase for Engineers

    はじめに スケジュール 1日目 2日目 おわりに はじめに NewsPicksエンジニアの七五三です。 最近はChatGPTの話題が尽きません。弊社でもChatGPT APIの社内勉強会やブログの執筆が行われ盛り上がりを見せています。 tech.uzabase.com そんな中、ChatGPTを利用したプロダクト改善アイディアの発散や実装事例の作成を目的にNewsPicksプロダクトチームで「ChatGPT開発合宿」が開催されました。 開催から少し日が経ってしまいましたが、記事で合宿の様子をご紹介します。 スケジュール 3月30日から2日間に渡って開催された開発合宿は以下のスケジュールで進行しました。 1日目 10:00 集合・アイディア出し オフィスに集まり合宿スタートです。 アイスブレイクののち、アイディア出しを行いました。 プロダクトの新機能や社内の業務改善ツールなど、大小様々なア

    ChatGPT開発合宿を開催しました! - Uzabase for Engineers
    monzoup
    monzoup 2023/04/27
  • CI/CD Conference 2023に登壇しました - Uzabase for Engineers

    こんにちは、AlphaDriveでWebアプリケーションエンジニアをしている畠山(keyamin)です。 CI/CD Conference 2023 by CloudNative DaysにNewsPicks SREチームの安藤と合同で登壇し、「最高の開発者体験を目指してAWS CDKでCI/CDパイプラインを改善し続けている話」について発表しました。 発表内容の詳細につきましては、以下のアーカイブやスライドをご覧いただければと思います。 アーカイブ スライド 感想 アーカイブ event.cloudnativedays.jp スライド NewsPicks www.docswell.com AlphaDrive www.docswell.com 感想 自分はオンラインオフライン合わせてはじめての登壇でした。 最初はスライドの作り方や内容の組み立て方など何もわからない状態でしたが、チームメン

    CI/CD Conference 2023に登壇しました - Uzabase for Engineers
    monzoup
    monzoup 2023/03/22