スタディサプリ Product Team Blog

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

2024-12-01から1ヶ月間の記事一覧

開発組織が事業貢献するには

こんにちは。@chaspyです。『スタディサプリ 小学・中学・高校講座(以下、スタディサプリ小中高)』の開発部長をしています。この記事はスタディサプリProduct Team Advent Calendar 2024の25日目の記事です。 まずはじめに、このアドベントカレンダーを執…

Jenkins から Argo Workflows 移行に挑戦した話

Merry Christmas! SRE Team の @panicboat です。 突然ですが、皆さんはジョブ基盤に何を使っていますか? Jenkins や Digdag、Apache Airflow など多くの選択肢があり組織にマッチするものを選択するだけでも苦労しますよね。 今回はジョブ基盤を Jenkins …

oapi-codegen の strict-server オプションを使ってより硬くサーバーサイドを実装する

スタディサプリ小中高でエンジニアリングマネージャーやソフトウェアエンジニアをしている @pankona です。 本稿では oapi-codegen の strict-server オプションを使った開発事例を紹介します。 OpenAPI と oapi-codegen OpenAPI とは、Web API の仕様を記述…

Xcode ProjectにローカルのSwift Packageを追加する2つの方法の違い

背景 まず、Swift Package、Xcode Project、およびXcode ProjectにSwift Packageを追加する方法について説明します。なお、説明は全てXcode 15.4の挙動に基づいています。 Swift PackageはSwiftのソースコードや関連するリソースファイルを1つにまとめる仕組…

k6+TypeScriptでRSA公開鍵を用いたチャレンジレスポンス認証を突破する

k6+TypeScriptでRSA公開鍵を利用し、各VUごとにAPIのチャレンジレスポンス認証を突破する手法について紹介します。

エンジニアリングマネージャーはいいぞ

こんにちは。スタディサプリの開発組織でエンジニアリングマネージャー(以下、EM)をしている @ojiry です。 本稿はスタディサプリProduct Team Advent Calendar 2024 20日目の記事になります。 私はEMになってから3年と3ヶ月ほど経つのですが、その中で得…

Credential Managerに移行するために調べたこと

こんにちは。スタディサプリ Androidエンジニアの@moraylと@omtians9425 です。 スタディサプリのAndroidアプリでは、ID/パスワードの記憶に CredentialsApiを使っている箇所がありました。現在はCredential Managerが推奨となっており、そちらへ移行するた…

現在時刻に依存する機能の動作確認コストを下げる基盤 -Time Injection-

こんにちは。スタディサプリ小学・中学講座の Engineering Manager をしている @ywada526 です。 今回は、現在時刻に依存する機能の動作確認コストを下げる基盤について紹介します。この基盤は、社内ではコード上の名前をとって「Time Injection」という愛称…

『プログラマが知るべき97のこと』に学ぶ5つの金科玉条

『プログラマが知るべき97のこと』を通読して得た特に重要な5つの教訓を筆者の独断と偏見と好奇でピックアップしました。

New Joiner こそ Working Out Loud ~ 具体的な実践方法と実践に向けた姿勢 ~

こんにちは。24 卒で入社し、7 月から『スタディサプリ小学・中学講座』の開発チームで Web エンジニアをしている @ryomaejii です。 本記事は スタディサプリ Product Team Advent Calendar 2024 17 日目の記事で、 私が大切にしている考え方である Working…

スタディサプリ動画基盤におけるFastlyの利用と陥った落とし穴

はじめに こんにちは、スタディサプリのプロダクト基盤...その中でも特に動画基盤の開発を行っている @highwide です。 これは スタディサプリProduct Team Advent Calendar 2024 16日目の記事です。 今日は動画基盤チームで利用しているFastlyの構成や、我…

将来のプロダクト状態を考えて技術改善を計画する

スタディサプリ小学・中学講座の iOS アプリエンジニアをしている @komaji です。本稿は スタディサプリProduct Team Advent Calendar 2024 15日目の記事で、私が所属する iOS チームでの技術改善の取り組み方について紹介していきます。 技術改善を計画する…

エンジニアリングオフィスチームを結成しました

はじめに こんにちは。スタディサプリの開発グループでエンジニアをしている @ttokutake です。 本稿は 技術広報 Advent Calendar 2024 シリーズ 2の14日目の記事です。 今回はスタディサプリの開発グループ内でエンジニアリングオフィスチームを結成した話…

FlutterKaigi 2024に登壇しました

こんにちは。『スタディサプリ for SCHOOL』 の開発に携わっている @koji-1009 です。 この記事はスタディサプリProduct Team Advent Calendar 2024 14日目の記事になります。カレンダー2週目も今日で終わりです。 本稿ではFlutterKaigi 2024に参加し、登壇…

Bundle version だけ変えた iOS アプリをシュッと作る

iOS

こんにちは、@manicmaniac です。 普段はスタディサプリの iOS 開発チームのマネージャーをしています。 前回 の投稿から1年ちょっとぶりの投稿です。 非常に限定された場面ではありますが、試行錯誤の時間を大幅に減らすことができる TIPS を紹介します。 …

おそらく Go 1.24 からツールのバージョン管理を go.mod で行うためのコマンドが導入されます

スタディサプリでソフトウェアエンジニアやエンジニアリングマネージャをやっている @pankona です。 Go 1.24 でツールのバージョン管理が便利になりそうという話をします。 (Go 1.23 現在) go install という便利なコマンドがある Go 1.24 の話をする前に、…

スタディサプリの開発運用を支える GitHub Actions

こんにちは。SRE の @int128 です。 スタディサプリのプロダクト開発では GitHub Actions を積極的に導入しています。本稿では、日常の風景に溶け込んでいる GitHub Actions を紹介します。 プロダクトの開発運用を支える GitHub Actions リポジトリとオーナ…

年末だし大掃除しよう!AWSコスト削減術ご紹介

こんにちは!@_a0iです! この記事はスタディサプリProduct Team Advent Calendar 2024 9日目の記事です! スタディサプリProduct Team - Qiita Advent Calendar 2024 - Qiita 年末といえば大掃除、大掃除といえばコスト削減!ということで私たちスタディサ…

エンゲージメントサーベイによる組織改善

こんにちは。スタディサプリの開発グループでマネージャーをしている @ttokutake です。 本稿は スタディサプリProduct Team Advent Calendar 2024 8日目の記事です。 今回はエンゲージメントサーベイの実施と振り返りをして自分のチームの問題点の発見・解…

Jetpack Compose の Canvas でお絵描き機能を実装する

こんにちは、Androidエンジニアの@morux2です。スタディサプリ小学講座には、子どもがお絵描きツールで保護者とコミュニケーションを取れる「きょうもできた!」機能があります。本記事では、この機能の実装詳細をご紹介できればと思います。 「きょうもでき…

VimConf 2024 に参加してきました (Quickfix編)

先日の VimConf 2024 のスポンサーになりました 記事にあるように、株式会社リクルートは、VimConf 2024 という世界最大の Vim の国際カンファレンスのスポンサーになり、何名かが VimConf に参加してきました。 (過去には Vim初心者に贈る、Vimの各種モード…

KubernetesのNode管理を楽にしたい〜EKS on Fargateの落とし穴紹介〜

こんにちは!スタディサプリ小中高SREの@_a0iです。 この記事はスタディサプリProduct Team Advent Calendar 2024一日目の記事です! 私たちはここ数年KubernetesのNode管理を楽に・効率的に行おうとKarpenterの導入に励んできました。 Karpenter導入時のト…

宿題配信基盤の移行の旅がはじまりました!

はじめまして、webエンジニアの@shushutochakoと@yoh-shimizuです。普段はスタディサプリ学校向けの事業でwebフロント&サーバサイドの開発をしています。 学校向けの事業では『スタディサプリ for TEACHERS』と言う先生向けのプロダクトがあり、先生が生徒に…

source maps を守る話

こんにちは。スタディサプリの小中新規開発チームで Web エンジニアをしている @YutaUra です。 昨今の JavaScript を利用する開発では source maps の存在が欠かせません。今回の記事では、私たちが直面した source maps が壊れてしまう場面と、 source map…

GitHub Copilot の Usage API を叩いてみた結果を味わう

本稿は スタディサプリProduct Team Advent Calendar 2024 2日目の記事です。 スタディサプリでソフトウェアエンジニアやエンジニアリングマネージャをやっている @pankona です。GitHub Copilot Usage API を味わってみた話をします。 GitHub Copilot は便…

GitHub Actions の異なる Workflow 間で Artifact をやり取りする方法

はじめに こんにちは! 私は教育支援小中高プロダクト開発部に所属し、スタディサプリの小中学生向けサービスの開発・運用を担当しています。 今回は、GitHub Actions で異なる Workflow 間で Artifact をやり取りする方法について解説します。 業務の中で、…