タグ

ブックマーク / blog.studysapuri.jp (17)

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

    こんにちは。SREのkyontanです。Rubyが大好きなのでRubyの話をします。ちなみにリクルートはRubyKaigi 2024へGold Sponsorとして協賛しています! *1。ぜひ沖縄でお会いしましょう。 これはあるアプリケーションのメモリ消費量を示すグラフなのですが、まさかgemを入れ替えるだけでこんなに嬉しい変化が見られるとは思っていませんでした。今日はそんなgemの話をします。 話は遡って2023年4月のある日、インターネットを眺めていたところ、ShopifyがpitchforkというOSSを公開したという情報が目に留まりました。 調べてみると、どうやら著名なRackサーバー実装の1つであるunicornの派生版であり、メモリ使用量の削減に特化しているらしいのです。 github.com これはスタディサプリ小中高のあのリソースドカいマイクロサービス第一位である api

    スタディサプリ最大のRailsアプリケーションにYJIT+pitchforkを導入してメモリ使用量を劇的に削減するまで - スタディサプリ Product Team Blog
    tofu-kun
    tofu-kun 2024/04/02
  • Sentry の運用を最適化して継続していく - スタディサプリ Product Team Blog

    こんにちは。フロントエンドエンジニアの @sakamuuy です。 私たちのチームではエラートラッキングに Sentry というサービスを利用しています。この運用を開始して半年が経過しました。 今回は私が所属するフロントエンドチームでのSentry運用について、苦労したこととその打ち手についてお話したいと思います。 はじめに エラーを検知し重大なバグなどに早めに気づくことは、Sentryを運用する一つの目的だと思います。 そのためには未解決のエラー件数をなるべく少なくし、発生したエラーを監視できている状態を保つことが必要だと考えています。この状態を保てるように運用で工夫していることについてお話します。 チーム チームでの運用についてお話する前に、私の所属しているtara学習コアチーム (taraとはスタディサプリ中学講座のリニューアルプロジェクトの通称です) についてお話します。 tara

    Sentry の運用を最適化して継続していく - スタディサプリ Product Team Blog
    tofu-kun
    tofu-kun 2022/10/03
  • 新規開発におけるシフトレフトアプローチ - スタディサプリ Product Team Blog

    こんにちは。QA Engineer の@testtattoです。 今自分は新規開発プロジェクトスクラムチームの一員として参画しています。 今回はチーム内で行っているテスト活動をシフトレフトアプローチの事例として紹介いたします。 対象読者 以下に興味や関心を持つ方を対象読者として想定しています。 アジャイルプロセスの中でのテスト活動を知りたい方 ウォーターフォールプロジェクトだが、上流からアサインされて困っている方 テスト、QA のことなら何でも知りたい方 まえがき 読んでもらう前にいくつかの前提を共有します。 シフトレフトとは この記事では シフトレフト(shift-left) を 「テスト活動を早期に行う」 という少し広い意味で使っています。 シフトレフト自体はWikipediaにおいて複数のタイプに系統分けされていたりしますが、国内におけるシフトレフトはテスト 7 原則の「早期テスト

    新規開発におけるシフトレフトアプローチ - スタディサプリ Product Team Blog
    tofu-kun
    tofu-kun 2021/03/23
  • 差し込みの多いプロダクト開発のスケジュールの精度を上げるためにはバーンアップチャートがおすすめです - スタディサプリ Product Team Blog

    こんにちは。 今回は差し込みの多いプロダクト開発におけるスケジュール精度の上げ方として、バーンアップチャートの利用をおすすめしたいと思います。 どんな人に読んでほしいか Product GrowthやEnhancementに携わっているけど、やることが多くて思ったように進捗が管理できない人 ↑のようなProduct Manager(PdM)やProject Manager(PjM)とのコミュニケーションが多いけど、期待に対してうまく動いてくれないことをもどかしく思ってる方 TL;DR 3ヶ月や6ヶ月程度でタイムボックスを切りましょう タイムボックスの中でやりたいことを全部リストアップして見積もりをしましょう 終わったタスクのcloseと新規タスクのリストアップを繰り返すと、自然と「やりたいことが全部できるのかどうか」が見える化します バーンアップチャートとは 下記のようなものです。 図中の

    差し込みの多いプロダクト開発のスケジュールの精度を上げるためにはバーンアップチャートがおすすめです - スタディサプリ Product Team Blog
    tofu-kun
    tofu-kun 2021/02/18
  • 新メンバーが多い大型プロジェクトでの不確実性との戦い方 - スタディサプリ Product Team Blog

    ペアプロ・モブプロ、スキルマップ、1-on-1等々… チーム開発にまつわる各論・方法論・話題をよく見る昨今、関心の高まりは歓迎さるべきことながら つまるところそれらが現実のどのような問題を解決していくのか? どのように相互作用するのか? これらが有機的に結びつくことで現実のどのような問題を解決していくか? こうした疑問に答えたり、具体例とともに記した記事はさほど多くないのではと思います。 記事では昨年度に筆者のチームが約7ヶ月携わったプロジェクトにて、プロジェクト特性に起因する不確実性と我々がいかに戦ったかを記します。チーム開発を行う方にとってこの記事が実りあるケーススタディとなれば幸いです。*1 なお、記事では以下のことは旨とは逸れるため割愛させていただきます。 プロジェクトの機能的側面 技術的不確実性 各取り組み単体の詳細 はじめに / プロジェクトの雰囲気を伝える図 この記事で

    新メンバーが多い大型プロジェクトでの不確実性との戦い方 - スタディサプリ Product Team Blog
  • マルケト戦記 - スタディサプリ Product Team Blog

    はじめに MAツールを導入前のメール配信方法と課題 まずスキーマ設計してから Marketo を導入 期中、やらないことを決める 目指せ、スマイルカーブ 昼会という名のデイリースクラム 他社事例の調査と運用の型化 スマイルカーブの行方 さいごに、スマイルカーブの向こうへ はじめに みなさんこんにちは、データエンジニアリングチームの戸井田( @toitech )です。 今回は、昨年の春からスタディサプリのユーザーへのメール配信で利用しているマーケティングオートメーションツール(以下 MAツール)「Marketo」の導入について書きたいと思います。 このプロジェクトで私は、スタディサプリのデータ分析基盤と Marketo のシステム連携を実装するエンジニアとしてアサインされました。 しかし、なぜか自分でも知らぬ間に役割がプロジェクトマネージャー的な立ち位置に変わっていきました。 そんな私が、ど

    マルケト戦記 - スタディサプリ Product Team Blog
  • UI/UXはデザイナーだけで作るもの?チームで求められるデザイナーの役割とは? - スタディサプリ Product Team Blog

    QuipperデザイナーのMatsumotoです。 今回はQuipperのデザイナーが、普段どんなチーム構成で働きどんなワークフローで動いているのか、簡単に紹介していきます。 また、様々な職能を持つメンバーが集うチームで求められるデザイナーの役割、日々の気づき、今後の抱負など軽くまとめてみました。 デザイナーの「何かの気づき」になれば嬉しいし、エンジニアPMの方が、デザイナーと一緒に「デザインについて考える」きっかけとなれば幸いです。 はじめに 事業会社で働く面白さ どんなチームで働いている? プロダクト単位のチーム チーム内訳 職業単位のデザインチーム プロダクト単位のチームによるワークフロー 良い点 改善したい点 UI/UXはデザイナーだけで作るもの? どんなフィードバックがいいの? 終わりに はじめに 前提として自分の経歴を簡単に書いておきます。 2017年11月にQuipperに

    UI/UXはデザイナーだけで作るもの?チームで求められるデザイナーの役割とは? - スタディサプリ Product Team Blog
  • React Nativeアプリのメモリリークを追いかける - Quipper Product Team Blog

    モバイルエンジニアの@hotchemiです。 今回は少し前にReact Nativeアプリの開発中にメモリリークを調査、解決した体験が学びが多かったので調査の顛末を共有できればと思います。 概要 今回問題となったのは、上記の課題・宿題を管理する画面の開発でした。 QA中に発覚した問題としては、「アプリを操作していると特定の端末(主にiPhone5)でアプリが落ちたり、その他の端末でも次第に筐体が熱くなる事がある」というもので、表示するデータはそれなりにあるものの画像や動画を表示する画面ではないのでさすがにおかしいだろうという事と、プロセス起動から時間が経つに従い事象が発生・深刻化していくという特性を考慮しメモリのリークが発生しているという仮説を元に調査を開始しました。 モニタリング 「推測するな、計測せよ」の格言通り、まずはメモリの使用量を計測する所から始めてみます。 Native Rea

    React Nativeアプリのメモリリークを追いかける - Quipper Product Team Blog
    tofu-kun
    tofu-kun 2018/12/07
  • 決済単位でのトランザクション管理モデルを用意すると調査にも開発にも役立つ - Quipper Product Team Blog

    Web Engineer の @kachick です。 今回はスタディサプリのクレジットカード決済を堅牢化するために行っている工夫の一部を抜粋して紹介したいと思います。 前提 記事で紹介する内容は、過去に我々が提供していたサービス(以下、サービスAとします)において直面した決済バグから学び、スタディサプリに導入したものです。 決済バグとは 決済というものはその性質上、セキュリティに次いでバグへの高い温度感を求められがちです。 サービスプロバイダの目線からは決済のバグを2つに大別出来ます。 来よりも多く請求しまい、ユーザーからの信頼を損ねる。 決済の金額を増やしてしまった。 決済の時期を早めてしまった。 決済は通ったがサービスを提供できていなかった。 来よりも少なく請求してしまい、事業運営に支障を来す。 決済の金額を少なくしてしまった。 決済の時期を遅くしてしまった。 実際には決済が通

    決済単位でのトランザクション管理モデルを用意すると調査にも開発にも役立つ - Quipper Product Team Blog
  • Working Out Loud 大声作業(しなさい)、チームメンバー同士でのトレーニング文化の醸成 - スタディサプリ Product Team Blog

    ソフトウェアエンジニアリングと一見関わりはなさそうで、しかしチームで成果を出す過程においてとても重要だと筆者が考えているコンセプト、 "Working Out Loud" について書いてみます。 日語の記事がほとんど見当たらないのであまり知られている言葉ではないかもしれません。 対象読者 以下に興味や関心を持つ方を対象読者として想定しています。 チーム開発におけるコラボレーション手法 チーム開発者としての振る舞い方 テックリードやスペシャリストの育成 が、心ではチーム開発する全ての方に届いてほしいです。 まえがき ある夜に同僚の@ujihisaと近場ないし遠方のEngineering ManagerやVPofEの皆さんと話す機会があり、その折にふと筆者がこぼしたのが 「開発などの日常の業務において自分がやっている以下の思考様式が大変便利なので、この考え方を最近入社したメンバーにもインス

    Working Out Loud 大声作業(しなさい)、チームメンバー同士でのトレーニング文化の醸成 - スタディサプリ Product Team Blog
    tofu-kun
    tofu-kun 2018/11/15
    Loud Loud Loud
  • QuipperのWebエンジニア採用におけるコードテスト - Quipper Product Team Blog

    こんにちは、Web エンジニアの @kechol です。 Quipper では現在、ブログを再開したり StudySapuri Meetup(Product 回、Data 回)を開催したりと、採用活動に力を入れています。今日はそんな採用活動について、僕も関わっている Web エンジニアの採用プロセスの裏側を少しご紹介したいと思います。 TL;DR Quipper における Web エンジニア採用プロセスにおいては、コードテストを実施しており、そのプロセスは非常に重要なものだと考えている これまでアプリケーションを書いてもらうようなテストを実施していたが、候補者・採用メンバー双方の負担が大きく、改善の余地があった それを受けて、より小さく、実務に近いコードでテストできるようにコードテストを改善した Quipper における Web エンジニアの採用プロセス Quipper における Web

    QuipperのWebエンジニア採用におけるコードテスト - Quipper Product Team Blog
  • エンジニアを魅了する次世代 BI ツール『Looker』を Quipper が導入した理由(わけ) - スタディサプリ Product Team Blog

    こんにちは、データグループのマネージャーをやっています beniyama と申します。 先の記事『プロダクトの「負債」を「機能」と呼び直す 〜A/Bテストを用いた"価値"の定量化〜』でも触れられていますが、データグループではデータ分析基盤の構築(参考資料)からデータ分析、あるいは学習データを活用した研究開発までスタディサプリのデータに関わることほとんど全てを担当しています。 プロダクトや事業 KPI の社内向けモニタリング環境の構築・整備も行なっているのですが、今回、既存の環境を刷新して Looker というまだ日ではほとんど無名?のツールを導入することにしましたのでその経緯をお話ししつつ、今後国内でもユーザーが増えていくといいなという願いを込めて1エンジニアとして興奮したポイントを書き連ねていこうと思います。 最初の1年間は DOMO を導入して運用 スタディサプリではもともと各種 K

    エンジニアを魅了する次世代 BI ツール『Looker』を Quipper が導入した理由(わけ) - スタディサプリ Product Team Blog
    tofu-kun
    tofu-kun 2018/06/04
    モデルの変更を Git 管理してくれるのは良いな
  • プロダクトの「負債」を「機能」と呼び直す 〜A/Bテストを用いた"価値"の定量化〜 - スタディサプリ Product Team Blog

    Quipper で Web Engineer 兼 Engineering Manager を務める @ohbarye です。スタディサプリの開発、その中でも特に合格特訓コースや決済周りの機能開発・保守が主な業務です。 弊社が開発するプロダクト「スタディサプリ」ではA/Bテストを用いたプロダクトの改善を行っています。Quipper の行動指針の一つに "Fact based" という言葉が含まれており、憶測や独断ではなく計測されたデータや事実に基づいて意思決定することが強く推奨されているためです。 このたびスタディサプリにおいて負債と考えられていた機能を「消してよいかどうか」、A/Bテストを通して判断しました。その際に用いた手法や結果、そこから見えたこと、考えたことをご紹介します。 プロダクトの負債とは プロダクトチームにとって負債と考えられていたのは「キャリア決済」という決済手段でした。そ

    プロダクトの「負債」を「機能」と呼び直す 〜A/Bテストを用いた"価値"の定量化〜 - スタディサプリ Product Team Blog
  • QuipperにおけるReact Native活用事例 - スタディサプリ Product Team Blog

    この記事はReact Native Advent Calendar 2017の5日目の記事です。 こんにちは。モバイルエンジニアの@hotchemiです。 今回はQuipperにおけるReact Native活用事例に関して紹介したいと思います。 目次 導入の背景/効能 開発におけるメリット/デメリット リリースサイクル 技術スタック おわりに 導入の背景/効能 Quipperが開発しているスタディサプリでは合格特訓プランという現役大学生コーチによる学習伴走サービスを提供しており、コーチとユーザーのコミュニケーションをより円滑にする為にメッセージ機能をベースとした業務補助iOSアプリの開発を実施する事になりました。 最初のバージョンこそSwiftで開発を進めていたものの以下の組織的・技術的な課題に直面した為、React Nativeを用いた開発に方針転換し現在では運用が軌道に乗っています。

    QuipperにおけるReact Native活用事例 - スタディサプリ Product Team Blog
  • Quipperで働く環境・制度について - スタディサプリ Product Team Blog

    こんにちは、Quipper Ltd.人事の松尾です。 先日、面接・面談の場で利用している会社紹介のスライドをGitHubで公開しました。 ブログもそうですが、Quipperのことをもっと知りたいと思ってくださっている方に向けて、どんどん情報を公開していきたいと思っています。 それは、情報の透明性がQuipperが大事にしている文化の一つですし、そうすることによって、みなさんの時間を無駄にすることなく、ありのままのQuipperを良いと思ってくださる方に選考を受けて頂けるからです。 なので今回は、面接・面談時に質問が多いものを中心に、環境と制度についてご紹介したいと思います。 Quipperで働くイメージが少しでも湧いたら幸いです。 リモートワークができるか たまに聞かれるのですが、Quipperにリモートワーク制度というものはなく、基的にはオフィスに出社となります。それは、チームで働く

    Quipperで働く環境・制度について - スタディサプリ Product Team Blog
    tofu-kun
    tofu-kun 2016/11/29
    面白そう
  • Quipper におけるリリース作業の負荷を分散するための取り組み - スタディサプリ Product Team Blog

    Web Developer の @yuya-takeyama です。 入社から 1 年と少し経ちました。 Quipper School/スタディサプリ高校講座/大学受験講座の Web 開発を担当していて、帰宅前にバッティングセンターに通うのがほぼ日課です。 今日はリリースに関する話を書きますが、デプロイの自動化とかそういった話ではなく、もうちょっと泥臭い話です。 リリースまでの流れ 前提として、Quipper では番環境へのアプリの自動デプロイはあまり行っていません。 カスタマーサポート用の社内アプリ等は GitHub での master ブランチへのマージ時に自動デプロイを行っていたりもしますが、 エンドユーザ向けのアプリは週に一度、以下のような流れで行います。 その週のリリースに必要な機能が揃ったところでリリース用のブランチを作成し、リリーステスト用の環境にデプロイ テストケースに沿

    Quipper におけるリリース作業の負荷を分散するための取り組み - スタディサプリ Product Team Blog
  • QuipperにおけるTerraformの運用 - スタディサプリ Product Team Blog

    こんにちは、Engineeringチームの石村(kamatama41)です。Engineeringチームの主な役割はインフラ構築や監視、パフォーマンス改善などのいわゆるDevOpsやSREと言われる領域になります。 Quipperでは現在グローバル向けであるQuipper (School, Video)と日向けのスタディサプリという二つのプロダクトを運用しており、それらのプロダクトはAWS上に構築され、Terraformを使って構成管理をしています。そこで、私達がTerraformを運用するために工夫している点を紹介したいと思います。 Terraformとは? Vagrantなどを提供するHashiCorp社製のインフラ構成管理ツールで、AWSGCPなどが提供している各種クラウドサービスをリソースという単位で構築、コード化出来るツールになります。 (AWSのEC2インスタンスを5台立ち

    QuipperにおけるTerraformの運用 - スタディサプリ Product Team Blog
  • 1