スタディサプリ Product Team Blog

株式会社リクルートが開発するスタディサプリのプロダクトチームのブログです

dep-doctor による archived / not-maintained な依存ライブラリ検出の仕組み

こんにちは。@chaspyです。技術戦略グループのマネージャをしています。 本記事では dep-doctorという依存ライブラリのメンテナンス状態をチェックするツールを活用した事例を紹介します。 依存ライブラリのメンテナンス状態を確認したい スタディサプリ小中…

スタディサプリ中学講座で市区町村データの更新を行いました

こんにちは。教育支援小中高プロダクト開発部の @mtgto です。スタディサプリで小中学生向けサービスのバックエンド開発を担当しています。 今回は業務上で行った市区町村のデータの更新作業でわかった市区町村の再編処理について紹介します。 スタディサプ…

Signed Query は GraphQL の Trusted Document の新しい実装パターンです

こんにちは。スタディサプリの小中新規開発チームで Web エンジニアをしている @YutaUra です。 去年の4月に新卒で入社をしまして約 1 年が経ちました。インターン生時代にもブログを書いているのでご興味あれば合わせてご覧ください。 GraphQL と Persiste…

鼻をきかせろ!エンジニアバックグラウンドのないTPMが出せる価値について

こんにちは、スタディサプリTPM(Technical Product Manager) *1 の nozomikajimoto です。 突然ですが、私はエンジニアのバックグラウンドがありません。スタディサプリのTPMはエンジニア経験のあるメンバーがほとんどなので、少し変わったタイプだと自負し…

Amazon アプリストアでスタディサプリ小学・中学講座を公開するまで

スタディサプリ小学・中学講座を開発している Android エンジニアの @maxfie1d と @omtians9425 です。 2024年2月26日にスタディサプリ小学・中学講座をAmazonアプリストアにて配信を開始致しました。 すなわち今後は Fire タブレット においてもスタディサ…

スタディサプリ最大のRailsアプリケーションにYJIT+pitchforkを導入してメモリ使用量を劇的に削減するまで

こんにちは。SREのkyontanです。Rubyが大好きなのでRubyの話をします。ちなみにリクルートはRubyKaigi 2024へGold Sponsorとして協賛しています! *1。ぜひ沖縄でお会いしましょう。 これはあるアプリケーションのメモリ消費量を示すグラフなのですが、まさか…

エンジニアブランディングチームのご紹介

こんにちは、@chaspy です。エンジニアブランディングチームをやってます。 本記事では、先日参加した LT の紹介を通じて、ブランディングチームの活動内容を紹介していきたいと思います。 LT してきました smarthr.connpass.com こちらのイベントにお邪魔し…

何もしてないのにプログラムが完成する不思議な話

はじめに こんにちは。スタディサプリのiOSアプリの開発に携わっているk-koheyです。突然ですがみなさんは、「なにもしとらんのに壊れた」という言葉を聞いた事はありますか??ソフトウェア開発の現場では、ついさっきまで正常に動いていたプログラムが急に…

Engineering Manager のオンボーディング

こんにちは、@chaspyです。プロダクト開発部の部長をしています。 スタディサプリ小中高の開発組織では、Engineering Manager (以降 EM と記す) という役割があります。*1 その役割は、エンジニアリングマネージャ/プロダクトマネージャのための知識体系と読…

スタディサプリ小学・中学講座にRoborazziを導入して半年が経過しました

こんにちは、Androidエンジニアの@morux2です。 スタディサプリ小学・中学講座では、Visual Regression Test (以下 VRT)を実施しています。VRTは画像比較によるUIの回帰テストです。変更前後のコードそれぞれに対する画面のスクリーンショットを比較し、意図…

技術戦略策定のための Fact 収集術

こんにちは。@chaspy です。プロダクト開発部の技術戦略グループのマネージャをしています。 技術戦略グループでは、日頃開発する上での課題の投げ込みや議論、解決するための計画をボトムアップで行っています。技術戦略グループの活動については過去のアウ…

A/B テストによるプロダクトエンハンスを支援する PLG(Product Led Growth) Team のご紹介

こんにちは。@chaspy です。本記事で紹介するスタディサプリ中学講座の PLG(Product Led Growth) Team の Engineering Manager をしています。 本記事では、2023年2月に結成したこのチームの活動について紹介します。 スタディサプリ中学講座について PLG Te…

detekt × Dangerで、プルリクコメントにルール名を表示する

こんにちは。スタディサプリ Androidエンジニアの@morayl です。 本記事では、Kotlinの静的解析ツールであるdetektの解析結果をDangerでプルリクにコメントする際に、ルール名も一緒にコメントするためにしたことを紹介します。 Dangerの基礎言語であるRuby…

GitHub Copilot for Business 使っています

スタディサプリでエンジニアリングマネージャー等をしている @pankona です。 スタディサプリ (小中高、English) では GitHub Copilot for Business を使っています。本稿では、GitHub Copilot for Business を導入した背景と、導入後の活用方法について紹介…

スタディサプリ小中高プロダクト開発部2023年の登壇資料紹介

こんにちは。技術広報チーム*1の @chaspy です。本記事では2023年に発表されたスタディサプリ小中高の登壇資料を紹介します。 Summary 2023年の登壇は合計19件ありました。 技術領域別の内訳は以下です。どの領域も満遍なく登壇がありました。 技術領域 登壇…

スタディサプリ小中高の技術戦略について

この記事は Enginnering Manager Advent Calendar その2の1日目の記事です。(大遅刻しました) こんにちは。@chaspy です。10月からスタディサプリ小中高*1プロダクト開発部の部長をしています。 本記事では、我々の組織で取り組んでいる技術戦略の現状と…

社内技術ドキュメンテーションを科学する

部署内の技術トーク会にて、理想的なドキュメンテーションにおいて回避不可能なトレードオフと、それを踏まえた実践的な手順を発表しました。 その際のワークショップで得た他エンジニアが持つ Pains や知見、そして彼らからの反響を共有致します。

入稿devsチームで、校閲PDF出力機能のリニューアルをおこなった話【2/2 振り返り編】

こんにちは、スタディサプリで開発をしている @motorollerscalatron です。 前編では、「入稿」「校閲」ドメインの発足からサブチームへの切り出しと、校閲出力サービスのリニューアルのエピソードを技術的観点を交えながら共有させていただきました。この後…

入稿devsチームで、校閲PDF出力機能のリニューアルをおこなった話【1/2 入稿ドメインとは?〜開発事例編】

こんにちは、スタディサプリで開発をしている @motorollerscalatron です。 私は、5 年前に web エンジニアとしてスタディサプリに join していますが、今年に入ってから、今までの社内(中学講座の開発プロジェクト(通称 tara、最近は 小学講座も加わってい…

スタディサプリにおけるKarpenterの導入トラブル振り返り

スタディサプリにおけるKarpenterの導入トラブル振り返り こんにちは。スタディサプリ小中高SREの@aoi1です。 スタディサプリでは、Kubernetesを利用しているのですが、Nodeの運用自動化のために2023年3月から本番環境を含む全環境でKarpenterを導入していま…

Android チームが使っている GitHub Actions のユニークな自動化レシピ集🍞👨‍🍳

スタサプ小中高を開発している Android エンジニアの@maxfie1d、@morayl とスタサプ ENGLISHを開発している Android エンジニアの田村です。 GitHub Actions(以下 GHA) はアプリをビルドしたりストアに配信したりすることに使えるのはもちろん、もっともっと…

SLI の計測のために Envoy や service mesh を選択しなかった理由

こんにちは。スタディサプリの小中高プロダクト開発部で主にコミュニケーション機能の開発をしている @snowfield702 です。 今回はスタディサプリで SLI の計測に Envoy と service mesh を使うのをやめて Datadog APM を利用することにしたという話をしたい…

単一アプリでユーザに応じた機能切り替えを実現するために

はじめに iOSエンジニアのkomajiです。2023年9月に「スタディサプリ 小学講座」をリニューアルし、既存の「スタディサプリ 中学講座」アプリに組み込む形でリリースしました。 この小学講座は既存の中学講座とは機能が全く異なっていますが、単一アプリで両…

SwiftUI: Explicit Identity の正しい使い方と落とし穴

こんにちは。iOS エンジニアの @_nkmrh です。 SwiftUI が発表されてからはや4年が経ち、昨今のプロダクションコードでも多く活用されているのではないでしょうか。 そこで本稿では SwiftUI を活用する上で欠かすことのできない SwiftUI.View の Explicit Id…

デザインをそのままの形でユーザーにお届けするためのデザインQA

スタサプ小中で Android エンジニアをしている石田とデザイナーの竹本です。 2023年9月に リニューアルをしたスタディサプリ 小学講座をリリースしました。小学開発ではエンジニアが実装したアプリの画面をデザイナーがレビューするプロセスを デザインQA と…

Firebase Remote Config の変更内容を Slack に通知する

こんにちは、@manicmaniac です。スタディサプリ iOS アプリ開発チームのエンジニアリングマネージャーをしています。 小ネタみたいな話ではありますが、Firebase Remote Config の変更を Slack に通知するようにしたらちょっと便利だったので記事にしようと…

WebアプリケーションにGoの並行処理アーキテクチャを導入してSLOを改善し、WebAPIを100倍速くした話

こんにちは。スタディサプリの小中高プロダクト基盤開発グループでProduct Platform Engineer兼テックリードをやっている@tooooooooomyです。 今回は、WebアプリケーションにGoの並行処理機構を導入してSLOを改善し、WebAPIを100倍速くした話をしたいと思い…

スタディサプリ小学・中学講座でRoborazziを導入しました

こんにちは、Androidエンジニアの@morux2です。本記事ではスクリーンショットの撮影にRoborazziを導入した経緯をご紹介できればと思います。 はじめに きっかけ RoborazziとPaparazziの比較 書きやすさ 複数端末での撮影 スクロールした画面の撮影 Showkase…

GraphQL Tokyo Meetup #21 で会場スポンサーしました #GraphQLTokyo

こんにちは。@chaspy です。 9/13 に開催された GraphQL Tokyo にて弊社九段下オフィスの会場を提供させていただきました。 www.meetup.com 九段下オフィスについて 九段下駅から徒歩3分でとっても便利な立地です。 goo.gl 以下の記事も合わせてご覧ください…

Developers Summit 2023 SummerでADRについて発表しました & ベストスピーカー賞を受賞しました🎉

こんにちは。スタディサプリでプロダクトプラットフォームの開発を行っている @highwide です。 少し前の話になってしまいますが、2023-07-27に行われた「Developers Summit 2023 Summer」(以下、「デブサミ」と書きます)にて「アーキテクチャデシジョンレコ…