タグ

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

  • スタディサプリ最大の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
    peketamin
    peketamin 2024/04/02
  • 社内技術ドキュメンテーションを科学する - スタディサプリ Product Team Blog

    最終更新日: 2024年02月27日(月) 1. ご挨拶 2. 記事執筆のモチベーション 3. ワークショップを通じて得たフィードバック 3-1. Pains -過去抱えた/現在進行形で抱えている辛み- 3-2. Approaches/Solutions -Pains を解消するために取った方策や導き出した解決策- 3-2-1. えいやで場所を決め打ちしてしまう(e.g., GitHub Wiki + Google docs しか使わない) 3-2-2. 個人的に、2023/12/05時点で〜みたいな書き方を心がけている 3-3. Tips -効果的な手法- 4. オーディエンスからの反響 4-1. 気づきや学び・NEXT ACTIONS 4-2. プレゼンター(@hayat01sh1da)へのフィードバック 4-3. Slack での反応 5. おわりに 1. ご挨拶 初投稿となります

    社内技術ドキュメンテーションを科学する - スタディサプリ Product Team Blog
    peketamin
    peketamin 2023/12/17
  • WebアプリケーションにGoの並行処理アーキテクチャを導入してSLOを改善し、WebAPIを100倍速くした話 - スタディサプリ Product Team Blog

    こんにちは。スタディサプリの小中高プロダクト基盤開発グループでProduct Platform Engineer兼テックリードをやっている@tooooooooomyです。 今回は、WebアプリケーションにGoの並行処理機構を導入してSLOを改善し、WebAPIを100倍速くした話をしたいと思います。 前提条件 システムを0から作らない場合、アーキテクチャの改善の際には前提条件が付きものです。そこでまずは今回のシステムの前提条件をお話します。 対象となるシステムと、アーキテクチャ 今回対象とするシステムは、ここでは security-tracker と呼び、Webアプリケーション体はGoで書かれています。 スタディサプリの各アプリケーションにおけるユーザーのログ1を、Amazon Kinesis Firehoseを通して、リクルート全体のセキュリティチームが管理するS3バケット(スタディサ

    WebアプリケーションにGoの並行処理アーキテクチャを導入してSLOを改善し、WebAPIを100倍速くした話 - スタディサプリ Product Team Blog
    peketamin
    peketamin 2023/10/10
  • Sprint Planning をやめた話 - スタディサプリ Product Team Blog

    小中新規開発グループ (a.k.a. tara チーム) の qsona です。 tara チームでは、スタディサプリ中学講座というプロダクトを開発しており、約1年前 (2022-02) にリリースして以来、継続してプロダクト開発を続けています。 tara チームのプロダクト開発は、基的にスクラムの手法にのっとる形で行っています。ビジネス的な境界により分けられた3つのスクラムチームが存在します。 スクラムの運用については、それぞれの現場において悩みごとが起きがちだと思いますが、tara チームでもご多分に漏れず、うまくいっていること・いっていないことが存在します。今回は、その3つのうちの1つのチームである「学習コアチーム」において存在した、Sprint Planning に関する (あるいはそこから掘り出された) 課題と、それに対してどう対処したかについて書きたいと思います。 なお、

    Sprint Planning をやめた話 - スタディサプリ Product Team Blog
    peketamin
    peketamin 2023/06/30
  • 早期ミスマッチ解消のために、職務経歴書のガイドを公開しました - スタディサプリ Product Team Blog

    こんにちは、Web Engineer の @wozaki です。 今回は、採用プロセスの改善として、職務経歴書に記載いただきたいことを公開した背景をご紹介します。 概要 職務経歴書に、採用チームとして期待する情報が不足していることがある 不足すると、以下の課題が発生することがある 書類選考は通過するが、その後の選考でミスマッチと分かる (経歴書が充足していたら、より早期にミスマッチが分かったかもしれない) 面接の前に経歴に踏み込んだ質問を設計できずに、面接時間内でマッチしているか情報を引き出す難易度が上がる 既存の対策として、情報の追記をお願いすることがある 新たな対策として、記載いただきたいことを ガイドとして公開 することにした 記載いただきたいこと 早期ミスマッチ解消の必要性 Web Engineer の採用は競争が激化している肌感があります。 応募者の方々にとっても、様々な企業の中

    早期ミスマッチ解消のために、職務経歴書のガイドを公開しました - スタディサプリ Product Team Blog
    peketamin
    peketamin 2023/06/22
    すごい。組織マネジメントがちゃんとしてる印象があり好感が持てる。ただ、応募する人は別分野の他社と並行応募する以上、ここまで厳密に決めれてる人は少ないんじゃないかな。ある程度の社交辞令も許容かね
  • Renovate の大量の Pull Request を処理する技術 - スタディサプリ Product Team Blog

    こんにちは。 SRE の @suzuki-shunsuke です。 Terraform Monorepo に対する Renovate の大量の Pull Request を処理するための技術について紹介します。 背景 過去ブログで何度か紹介しているように、弊プロダクトでは Terraform の Monorepo を管理しています。 先日、 CI を AWS CodeBuild から GitHub Actions + tfaction に移行しました。 blog.studysapuri.jp working directory (state) の数は 400 近くあり、 working directory ごとに以下のような tool のバージョンを管理しています。 Terraform Terraform Provider tflint tflint plugin tfsec etc これ

    Renovate の大量の Pull Request を処理する技術 - スタディサプリ Product Team Blog
    peketamin
    peketamin 2022/02/18
  • 「スタディサプリ」が React Native から卒業するまで、あるいは技術的負債への感謝と敬意 - スタディサプリ Product Team Blog

    こんにちは、Quipper iOS エンジニアの @manicmaniac です。 現在スタディサプリ iOS アプリ開発チームのエンジニアリングマネージャをしています。 今回はスタディサプリで長らく使われていた React Native のコードを Swift に書き換えた話をします。 実は React Native から Swift への置き換え自体は半年ほど前に完了していたのですが、ブログに記すのに時間がかかってしまいました。 スタディサプリにおける React Native の利用 Quipper では 2017年ごろから React Native を iOS / Android アプリ開発に利用し始め、スタディサプリでは 2018年3月ごろから徐々に React Native を iOS アプリケーション開発に導入していました。 iOS 版スタディサプリの、git から取り出した

    「スタディサプリ」が React Native から卒業するまで、あるいは技術的負債への感謝と敬意 - スタディサプリ Product Team Blog
    peketamin
    peketamin 2021/07/21
  • SRE Team のオンボーディングのいま - スタディサプリ Product Team Blog

    こんにちは。SRE の @chaspy です。 Quipper の SRE Team ではじめて「オンボーディング」と呼ばれるものを行って約2年経ちました。 quipper.hatenablog.com その後、3人の仲間が入社し、そのたびにオンボーディングプロセスを改善してきました。 記事では、SRE Team のオンボーディングプロセスの"いま"を振り返るとともに、その効果や意義を、オンボーディングを受けたメンバーからのコメントを交えて紹介したいと思います。 オンボーディングの目的 あらためてオンボーディングの目的について言語化しておきます。これは今も昔も変わっておらず、「New Joiner の早期の戦力化」だと思っています。 早期の戦力化のためには何が必要か、ということを考えると、現在のチームのミッションから普段の業務へブレークダウンし、それらをスムーズに遂行するために何が必要か

    SRE Team のオンボーディングのいま - スタディサプリ Product Team Blog
    peketamin
    peketamin 2021/03/17
  • 差し込みの多いプロダクト開発のスケジュールの精度を上げるためにはバーンアップチャートがおすすめです - スタディサプリ Product Team Blog

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

    差し込みの多いプロダクト開発のスケジュールの精度を上げるためにはバーンアップチャートがおすすめです - スタディサプリ Product Team Blog
    peketamin
    peketamin 2021/02/18
  • 褒めるラジオ quipper.fm - スタディサプリ Product Team Blog

    こんにちは。quipper.fm メインパーソナリティの @chaspy です。 今回、一緒に働く仲間をただひたすらに"褒める"社内企画をはじめてみました。好評により続いているので、その取り組みについて紹介します。 quipper.fm とは何か なぜはじめようと思ったのか 褒めることの重要性 1. "褒め"によるフィードバックが個人の振る舞いを強化する 2. "褒め"による振る舞いが言語化されることはそれ自体が貴重な学びの機会になる 褒める技術 褒められたひとからの言葉 おわりに quipper.fm とは何か 名前に深い意味はないんですが、ラジオっぽい"雰囲気"でゆるく聞いてもらえたら、という想いで .fm をつけています。実際は社内 Google Hangouts で行っているので、音声だけでなく映像も映ります。 この番組は隔週30分で行われています。各回に1名「褒められるひと」が選

    褒めるラジオ quipper.fm - スタディサプリ Product Team Blog
    peketamin
    peketamin 2020/08/19
  • 退職の作法、あるいはオフボーディング実践入門 - スタディサプリ Product Team Blog

    -0b10日後に最終出社を迎える@ohbaryeです。 最終出社を迎えるにあたって後任の任命や業務の引き継ぎといった退職・離職までの一連の流れを経験したわけですが、なにぶん人生でそうそうあることではないのでしばらくは暗中模索の様相を呈しました。人生において数度あるとはいえ慣れるほど数をこなすわけでもなく、同じ会社ですでに退職を経験された方々、あってほしい"先達"はすでになく。 会社としての事務手続きは整備されていても、どのような振る舞いがより効率的であるのか、退職後も良い信頼関係を築けるのかといった点についてはさほど多く語られていないと気付きました。 この記事では退職・離職までの一連の流れを"オフボーディング"と呼称し、退職が決まってからの効果的な過ごし方を目指してやってきたことについて記述します。 ありふれたビジネスマナー記事にならないように留意したつもりです。 対象読者 退職する人 同

    退職の作法、あるいはオフボーディング実践入門 - スタディサプリ Product Team Blog
    peketamin
    peketamin 2020/04/03
  • カジュアル面談への扉 - スタディサプリ Product Team Blog

    こんにちは、記事では弊社のカジュアル面談についてライトに書いてみました。文字数は5800字程度ですので読了には5~10分ほどを要すると思われます。 対象読者 Quipperのカジュアル面談に来てみようと思っている方 他社のカジュアル面談がどのような感じか知りたい方 言うまでもないかもしれませんが弊社のやり方が唯一の正解ではありませんし、完成形でもありません。とはいえ現時点で獲得しえたカジュアル面談のノウハウを世に出すことで業界全体の採用活動のレベルの底上げに寄与していきたい気持ちがあります! カジュアル【casual】[形動]格式ばらず、くつろいでいるさま。 カジュアル面談とは? 初めに言葉の定義を合わせていきます。 弊社 Quipper は面接・面談をより良いものにするために東京オフィス採用面接ガイドというものを公開しています。(同ガイドに関しての詳細はより良い面接を実現するために "

    カジュアル面談への扉 - スタディサプリ Product Team Blog
    peketamin
    peketamin 2020/02/05
  • 負荷試験との向き合い方 - スタディサプリ Product Team Blog

    こんにちは。SRE の近藤(@chaspy)です。 先日、より高い信頼性でサービスを提供するために、スタディサプリ小中高大のサービスの最後の砦であるデータベース、MongoDB のインスタンスクラスのスケールアップを行いました。また、スケールアップをするにあたり、負荷試験を行いました。 記事では、データベースインスタンスのスケールアップの際に行なった負荷試験に対する考え方と、得た学びを紹介します。 なぜスケールアップするのか サービスの急成長に伴い、アクセス数もデータ量も増加しています。数年前に「しばらくは大丈夫」と判断できるインスタンスクラスにスケールアップをしたデータベースも、高負荷時には性能が劣化してしまう問題に遭遇しました。 私たちの MongoDBAWS 上に EC2 インスタンスとしてセルフホストしており、MongoDB Cloud Manager を使って運用の一部を

    負荷試験との向き合い方 - スタディサプリ Product Team Blog
    peketamin
    peketamin 2019/09/26
  • iOS GraphQL クライアントのデバッグツールを作った話 - スタディサプリ Product Team Blog

    こんにちは、今年の4月から Quipper の iOS エンジニアになった @manicmaniac です。 ちょっと話題としてはニッチかもしれないのですが、今日は Apollo iOS client を利用したアプリで GraphQL のデバッグに苦労し、そしてコードを書いてそれを克服した話をします。 そもそも GraphQL とか Apollo ってなに? GraphQL とは Web API のクエリ言語であり、またそのランタイム自体を指す言葉です1。 対して、ApolloGraphQL のサーバー・クライアント用のライブラリで、Meteor の開発元でもある Meteor Development Group 社が開発しています。 Apollo の iOS 向けクライアントである Apollo iOS は単なる API クライアントを超えて、以下のような機能を備えています。 G

    iOS GraphQL クライアントのデバッグツールを作った話 - スタディサプリ Product Team Blog
    peketamin
    peketamin 2019/08/13
  • 新メンバーが多い大型プロジェクトでの不確実性との戦い方 - スタディサプリ Product Team Blog

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

    新メンバーが多い大型プロジェクトでの不確実性との戦い方 - スタディサプリ Product Team Blog
    peketamin
    peketamin 2019/06/27
  • 異動のおともにスキルマップ - スタディサプリ Product Team Blog

    こんにちは、Web Engineer の @wozaki です。 今回は、スキルマップを私が所属する開発チーム*1に導入した事例をご紹介します。 スキルマップとは、業務で必要なスキル(技術力、業務知識)と、チームメンバーのスキルレベルを一覧にした表です。 スキルマップの例 引用 スキルマップ作成のすすめ | Ryuzee.com 目次 概要 スキルマップ導入の背景 他社の事例とカスタマイズした点 スキルマップ詳細と運用方針 運用結果 まとめ 概要 チームで必要なスキル、メンバーのスキルレベル、志向性が不明だった 個人の志向性を表現できるようにカスタマイズしたスキルマップを導入した 結果 新メンバーにとって、スキル全体が明確になり、チームの役割の理解にも役立った スキル喪失リスクがあるものが明確になり、勉強会などスキル伝承のアクションにつながった 個人の志向性は、スキル伝承時の期待値調整にも

    異動のおともにスキルマップ - スタディサプリ Product Team Blog
    peketamin
    peketamin 2019/06/03
  • RubyKaigi 2019でujihisaが登壇した裏話 - スタディサプリ Product Team Blog

    ujihisaです。先日2019年4月に日の福岡で開催されたRubyKaigi 2019にて、ujihisaが "Play with local vars"というタイトルで発表してきました。この発表は、40分間英語でひたすらRubyのローカル変数についてだけ語るというものです。 発表スライドは公開済みで、こちらのgistですが、レンダリングにはshowtime.vimを要求しますし、実際にはデモがメインですので、RubyKaigi公式の動画を参照するのが便利です。 www.youtube.com 登壇に至るまで 一年前、RubyKaigi 2018に参加していろんなすばらしい発表を聞いているうちに、 「RubyKaigiでちゃんとした発表をしていないのは申し訳ない」という罪悪感というか強迫観念、 「Rubyを使う上でローカル変数と向き合うのは避けて通れないけど、これだけを取り扱った発表は

    RubyKaigi 2019でujihisaが登壇した裏話 - スタディサプリ Product Team Blog
    peketamin
    peketamin 2019/05/14
  • Quipper の Monorepo な Web アプリ開発における Git 戦略 - スタディサプリ Product Team Blog

    Rails Developers Meetup 2019 の自社スポンサーセッションはいっそ休憩室にすればいいのでは? と言い出した Web dev の @mtsmfm です。お弁当や神授業、そして Quipper からは 3 名が登壇しましたが、発表は楽しんでいただけましたでしょうか。 僕は自分の発表 を @jeremy さんが聞いてくださったり、キーノートでは Rails 6 で入ったパッチを紹介してもらったりして感無量です。 この場を借りて Rails DM の開催に尽力された @yhirano55 さん他みなさまには感謝を述べたいと思います。当にありがとうございました。 今日は、Quipper における GitランチKubernetes を組み合わせた、開発から番デプロイまでの流れを紹介したいと思います。 流れ ざっくりとした概要としては Git flow をアレンジ

    Quipper の Monorepo な Web アプリ開発における Git 戦略 - スタディサプリ Product Team Blog
  • Vim初心者に贈る、Vimの各種モードを完全に理解するとっておきの方法 - Quipper Product Team Blog

    つい先日, 2018-11-24 (土) に開催された VimConf 2018にて、弊Quipper社の ujihisa さんが登壇しVim技術発表を行いました。記事ではその発表の解説と、その裏話をめいっぱい記します。 発表タイトルは "Modes" という一単語のみで、公式サイトに載っているtalk abstractによると以下のようなものです。 Abstract Discover what is happening internally when you switch modes, such as insert mode, normal mode, and operator-pending mode. This talk first revisits how modes are when you use Vim, then I'll let you dive into the V

    Vim初心者に贈る、Vimの各種モードを完全に理解するとっておきの方法 - Quipper Product Team Blog
    peketamin
    peketamin 2018/12/10
  • Quipper Almuni Network(卒業生ネットワーク) - Quipper Product Team Blog

    こんにちは。@hotchemiです。 今回は、最近始まったQuipperのAlumni Network(卒業生ネットワーク)についてご紹介できればと思います。 Alumni Networkとは ALLIANCE アライアンス―――人と企業が信頼で結ばれる新しい雇用より引用します。 7、会社は「卒業生」ネットワークを作ろう 卒業生ネットワークをつくり、退職した人ともいい関係を作っておくことは双方にとってメリットがある。 会社にとっては、やめた人から人材を紹介してもらえる、出戻りの率があがる、情報を教えてもらえる、顧客を紹介してもらえるなど。 退職者にとっては会社から転職先を紹介してもらえる、退職者同士のネットワークが使える、やめた企業から仕事をもらえるなど。 現役、退職した人の両方を含めたネットワークをオンラインでつくる、定期的にイベントを開催して事代の費用を負担するなどのそれほど大きくな

    Quipper Almuni Network(卒業生ネットワーク) - Quipper Product Team Blog
    peketamin
    peketamin 2018/12/08