タグ

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

  • スタディサプリ最大の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
    ohbarye
    ohbarye 2024/04/02
    reforkの利用はメモリ使用量とレイテンシのトレードオフになる認識だったので "reforkを無限に繰り返してもメモリ使用量の削減にはあまり意味がない" "計6000リクエストほど処理した段階でreforkを止めるように設定"に唸った
  • Engineering Manager のしごと - スタディサプリ小中高 SRE チームの場合 - - スタディサプリ Product Team Blog

    こんにちは。SRE Team の @chaspy です。次の10月で Engineering Manager をつとめて1年になります。 記事ではもしかするとメンバーからわかりづらい Engineering Manager のしごとについて、昨年10月からの約1年間を振り返りながら説明しようと思います。 ところで「エンジニアリングマネージャのしごと」もうすぐ発売ですね。筆者もとても楽しみにしています。検索のノイズになるのは意ではないので記事のタイトルはカタカナではなく英語表記にしました。 www.oreilly.co.jp なお、リクルートでは人事制度上 "Engineering Manager" というロールはなく、GM (Group Manager) が正式なロールです。EM と GM は重複する部分、そうでない部分ありますが記事では割愛します。 基情報 会社組織編 SRE T

    Engineering Manager のしごと - スタディサプリ小中高 SRE チームの場合 - - スタディサプリ Product Team Blog
  • プロジェクト失敗可能性を軽減するプレモーテム - スタディサプリ Product Team Blog

    こんにちは。Engineering Manager の @wozaki です。 2年前のプロジェクトで、プレモーテム(premortem)を実施した例をご紹介します。 プレモーテムとは、プロジェクト初期にチームで集まり「プロジェクトが失敗したとして、その失敗とは? 原因は? どう対策するか?」を話し合うワークショップです。*1 プレモーテム実施例 なお、記事におけるリスクの定義はこちらです。 引用元 熊とワルツを - リスクを愉しむプロジェクト管理 将来起こりうる出来事で、望まない結果を生むもの 望まない結果そのもの 目次 概要 背景 なぜプレモーテムが打ち手だったのか プレモーテムの再設計 実施結果 参加者の所感 最終的にプロジェクトはどうなった? 終わりに 概要 プロジェクトは2つの特性があった 初めて協業するステークホルダーが多い 開発規模が大きい 特性に対する懸念の打ち手としてプ

    プロジェクト失敗可能性を軽減するプレモーテム - スタディサプリ Product Team Blog
  • GitHub Actions Self-hosted Runner の導入と安定運用に向けた軌跡 - スタディサプリ Product Team Blog

    こんにちは。SRE の @int128 です。 Quipper では GitHub Actions Self-hosted Runner を一部のジョブで導入しています。稿ではその目的と具体例を紹介します。 背景と解決したい課題 Quipper では以下の CI サービスを用途に合わせて利用しています。 CircleCI(テストやデプロイなど) GitHub Actions(テストやデプロイなど) AWS CodeBuild(主に Terraform など AWS リソースにアクセスする場合) Google Cloud Build(主に Google Cloud のリソースにアクセスする場合) Jenkins(定期実行や手動実行に特化したジョブ) このうち GitHub Actions は以下の点が優れていると感じています。 monorepo 構成の場合にマイクロサービスごとに独立して

    GitHub Actions Self-hosted Runner の導入と安定運用に向けた軌跡 - スタディサプリ Product Team Blog
  • 〜その意思決定を刻め〜「アーキテクチャ・デシジョン・レコード(ADR)」を利用した設計の記録 - スタディサプリ Product Team Blog

    こんにちは。スタディサプリのWeb開発をやっている@highwideです。 今日は、自分の所属する"コーチングチーム"(個別指導コースや合格特訓コースの機能開発を行っています)が、最近のプロジェクトで利用した「アーキテクチャ・デシジョン・レコード」、通称「ADR」について紹介したいと思います。 アーキテクチャ・デシジョン・レコード(ADR)とは 「ADR」「アーキテクチャ・デシジョン・レコード」という概念を知ったのは、社内で行っていた「Design It! プログラマーのためのアーキテクティング入門」(以後「Design It!」)の読書会でのことでした。 www.oreilly.co.jp 最初にそのキーワードが登場する「11.2.3 必要なときだけ形式的な記述に投資する」では、「"膨大な量のドキュメントになる傾向"がある形式的なドキュメンテーション」に対比して、以下のように紹介されます

    〜その意思決定を刻め〜「アーキテクチャ・デシジョン・レコード(ADR)」を利用した設計の記録 - スタディサプリ Product Team Blog
    ohbarye
    ohbarye 2021/04/05
    “プロジェクトが終わるまで、1つのissueのコメントに設計判断を書き連ねていく” "フレームワークを内面化できたことで文化形成に繋がった"
  • 新規開発におけるシフトレフトアプローチ - スタディサプリ Product Team Blog

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

    新規開発におけるシフトレフトアプローチ - スタディサプリ Product Team Blog
  • bimg (libvips Goバインディング) でサムネイル画像作成を高速化する - スタディサプリ Product Team Blog

    はじめに こんにちは、Webエンジニアの濱田裕太 (@yuuta) です。 Quipperが開発・運用している スタディサプリ のプロダクトでは、バックエンドの一部をGoで実装しています。そのサムネイル画像作成で利用する画像処理ライブラリを imaging から bimg (libvips のGoバインディング) に変更したことで、高速化・省メモリ化を実現しました。エントリでは、それによって得られた知見を共有します。 1. どのくらい高速化・省メモリ化したか 1-1. 検証コード 1-2. 処理時間 1-3. メモリ使用量 2. なぜ高速化・省メモリ化されるのか 2-1. libvipsの画像処理アーキテクチャ 2-2. SIMD対応 2-3. JPEGスケーリングデコード 3. 運用時の留意点 3-1. libvipsのパッケージサイズ 3-2. libvipsのオペレーションキャッシ

    bimg (libvips Goバインディング) でサムネイル画像作成を高速化する - スタディサプリ Product Team Blog
  • 差し込みの多いプロダクト開発のスケジュールの精度を上げるためにはバーンアップチャートがおすすめです - スタディサプリ Product Team Blog

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

    差し込みの多いプロダクト開発のスケジュールの精度を上げるためにはバーンアップチャートがおすすめです - スタディサプリ Product Team Blog
    ohbarye
    ohbarye 2021/02/08
    “バーンアップチャートではタスクが増えたときに単純に縦軸が伸びていくため、「増えている」という事実を把握するのがバーンダウンチャートよりも簡単"
  • ブログ番長を Bot にした - スタディサプリ Product Team Blog

    Web Dev の @mtsmfm です。 ブログ再開 から2年半、年間40~50程度のブログ記事がこの Product Team Blog からでています。 継続的な更新を重視し、これまで概ね週1程度が公開されるようにしてきました。 ローテーションを組んでいるものと、個々人が高まったときにゲリラ的に執筆するものの2パターンあります。 このローテーションについて、ブログ番長という責任者を立てスケジュール管理などを行ってきました。そのタスクは概ねローテーションの管理と執筆依頼の 2 つです。とはいえ締め切りの催促は、手間としては大きくないもののお互いにストレスが溜まります。 これの自動化を試みて2ヶ月ほど経過し、少しづつ形が見えてきたので共有したいと思います。 ブログ番長 Bot の仕事 ブログ番長 Bot の業務は、以下の通りです。 次週の執筆者を決定して通知する (木曜朝10時) 執

    ブログ番長を Bot にした - スタディサプリ Product Team Blog
    ohbarye
    ohbarye 2021/02/01
  • 私のシェルプロンプト遍歴 - スタディサプリ Product Team Blog

    入社一年目の @sakuro です。 プログラマーが日々使うツールの中には、カスタマイズに無限の時間を消費できてしまうものがあります。 ウィンドウマネージャ エディタ そしてシェル 日々使うものであればあるほど、使って心地よい状態でないとストレスになるので、納得できるカスタマイズを行い、また繰り返し改善を進めていくことになるでしょう。 そんな私のツールカスタマイズの中から、今回はシェルプロンプトに関する設定を振り返ってみたいと思います。 大昔 初めて使った UNIX 系 OS は SunSO4.1.3 でした。当時は tcsh を使っていました。 LinuxmacOS (Mac OS X) を使うようになって bash をメインに、その後 zsh を使うようになります。 この頃のプロンプトには % や $ といった簡素なものを使っていました。 右プロンプトを知る zsh のマニュアル

  • 褒めるラジオ quipper.fm - スタディサプリ Product Team Blog

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

    褒めるラジオ quipper.fm - スタディサプリ Product Team Blog
  • リモート環境でも同じように楽しくやりたい!(後編) 〜2020年度 Coaching チームのモブプログラミング、オンボーディング事情 〜 - スタディサプリ Product Team Blog

    再びこんにちは、 Quipper webエンジニアの @motorollerscalatron です。 前編には 自分の所属する開発チームでのリモート事情をとりあげました。後編では、そんな季節の中で、ちょっと癖のあるテーマ「モブプログラミング」「オンボーディング」をどうやって行って行ったかを、少し紹介させて下さい。 2 リモートで いつものプラクティスを続ける (モププロとオンボーディング) ToC チームでは、もともと昨年度始め頃から、チームとしての開発力をあげる試みとして、「モブプログラミング」「オンボーディング」に注目していました。 この2つは、web開発者として様々な会社で開発プロセスを経験してきた中でも、私が Quipper に入社してから始めて出会い、挑戦してきたプラクティスでもあります。 そんな個人的な思い入れなんじゃないかと言われそうなこの2つのテーマについて、なぜリモート

    リモート環境でも同じように楽しくやりたい!(後編) 〜2020年度 Coaching チームのモブプログラミング、オンボーディング事情 〜 - スタディサプリ Product Team Blog
    ohbarye
    ohbarye 2020/08/03
    人それぞれのモブプロの捉え方の項、特に内向的人間とモブプロの話が良かった。自分もソロ作業に寄りがちなので
  • リモート環境でも同じように楽しくやりたい!(前編) 〜2020年度Coaching チームのリモートふん闘記〜 - スタディサプリ Product Team Blog

    こんにちは、 自分が入社した時に憧れた先達がいなくなって寂しき中も、自身はもうすぐ Quipper 2年生をそつ業しようとしている、危うげな Quipper web エンジニアの @motorollerscalatron です。 stay home と言われて久しいですが、今回はそんな中でも私のいる ToC Coaching チーム が、どのように今までやっていたプラクティスをリモート主体の会社生活でも再現しようとしているかをブログ記事にしてみました。 お断りのようなもの 普通の我々の Product Blog では、対象読者をわりかし最初のほうできちんと定義していますが、今回に関しては明確にしていません。 表題の件に関して、結論から言うと、「正解」を私たちはいまだに見つけられずにいます。 wantedly では 弊社 @akane-suzuki568 により3月頃に に Quipper流

    リモート環境でも同じように楽しくやりたい!(前編) 〜2020年度Coaching チームのリモートふん闘記〜 - スタディサプリ Product Team Blog
    ohbarye
    ohbarye 2020/07/13
    感情の渦 / “全世界的な生活スタイル・経済の変化がほぼ同じタイミングで起きたこともあり、 私たち自身も、かつてない感情の渦の中で、年度の切替を迎えました”
  • 退職の作法、あるいはオフボーディング実践入門 - スタディサプリ Product Team Blog

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

    退職の作法、あるいはオフボーディング実践入門 - スタディサプリ Product Team Blog
    ohbarye
    ohbarye 2020/04/02
    会社を退職する直前に行なったことや、効果的なオフボーディングについて退職者目線で書きました。すべての退職に関わる人に幸あれ────
  • APIの開発に(なるべく)依存しないモバイルアプリ開発 - スタディサプリ Product Team Blog

    Mobile Engineer の @chiiia12 です。 今回は試験的に私たちのチームで導入した "MockApiInterceptor" の取り組みについてご紹介します。 (今回は、Android アプリでの例を紹介します。) 背景 最初に私たちのチーム構成/開発の進め方について説明させてください。 私たちのサービスは、Web フロント・サーバーサイドを開発する "Web チーム" と Android/iOS アプリを開発する "Native アプリチーム" に分かれています。これまでの開発は Web チームの人数の多さもあり Web での機能開発が先行する形で行われ、Native アプリでの同じ機能開発は "後追い" する形で開発を進めてきたことが大半でした。したがって、既に API が用意されている状態でアプリの開発が開始できました。 今回、Native アプリの開発が先行する

    APIの開発に(なるべく)依存しないモバイルアプリ開発 - スタディサプリ Product Team Blog
    ohbarye
    ohbarye 2020/04/01
    “1つのクラスの追加と一行の設定を変更するだけで開発体験を改善することができるのは、コストパフォーマンスとしても良い”
  • 採用候補者から見る、Quipperのエンジニア採用フロー - スタディサプリ Product Team Blog

    こんにちは、2019年10月からQuipperにjoinした @qsona です。ということはつい数ヶ月前までは一採用候補者としてQuipperの採用を受けていたことになりますが、その中で、Quipperの採用には良い特色が多くあると感じました。今後はQuipperの一員として採用する側に回ることになりますが、採用候補者の視点から感じたことを忘れないうちにこの記事に書きたいと思います。(この記事の9割は入社前に書き上げていたのですが、入社後は普通に仕事が面白すぎて記事を放置してしまい、4ヶ月も経ってしまいました。こうならないように、書いたらさっさと出すのが鉄則です!) 概要 Quipperの面接のフローや各ステップの目的は、ガイドにまとめられています。以下はWebエンジニアの面接ガイドです。 Quipper Web Engineer 東京オフィス採用面接ガイド また、ここに書かれている以外

    採用候補者から見る、Quipperのエンジニア採用フロー - スタディサプリ Product Team Blog
    ohbarye
    ohbarye 2020/02/07
  • カジュアル面談への扉 - スタディサプリ Product Team Blog

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

    カジュアル面談への扉 - スタディサプリ Product Team Blog
    ohbarye
    ohbarye 2020/02/05
    Quipperのカジュアル面談について書きました。後半はカジュアル面談を実施する側の内容が多めになりました
  • 障害対応とポストモーテム - スタディサプリ Product Team Blog

    こんにちは。SRE の @chaspy です。 ユーザに価値が提供できなくなってしまうシステム障害は起きてほしくはありませんが、絶対に発生しないとは言い切れません。 そんなシステム障害は、そもそも発生頻度が不定、かつ多くないので、どのように対応すべきかを体系化することは(起きる事象が毎回異なることも相まって)難しいと思います。 記事では、Quipper において、どのように障害対応を行うのか、また、障害発生時の考え方を紹介します。 障害はどのように対処されていくのか 障害発生フロー Quipper では 標準化された障害時連絡のフロー / 障害レベルがあります。 これによって、障害の内容、影響範囲によっては親会社のリクルートマーケティングパートナーズへのエスカレーションが必要であることと、その基準が言語化されました。また、エスカレーション時に送るメールのテンプレートも用意されており、「誰

    障害対応とポストモーテム - スタディサプリ Product Team Blog
    ohbarye
    ohbarye 2019/11/27
    “ポストモーテム読書会”
  • Vim を愛する我々 - スタディサプリ Product Team Blog

    Quipper で Web エンジニアをしている @pankona です。 2019 年 11 月、さまざまな Vim 関連イベントを通して高まった 社内の Vim 熱 について紹介します。 Vim というテキストエディタをテーマに、ごく一部ですが弊社に在籍するエンジニアの一面を紹介できればと思っています。 VimConf 2019 に参加する我々 先の @mopp による記事にもありますが、弊社はこの度シルバースポンサーとして VimConf 2019 に参加しました。それのみならず、弊社からは 9 人が VimConf 2019 に参加しました (登壇 3 人、参加 6 人) 。内訳は Web エンジニア、SRE、モバイルエンジニアと様々です。また、一名はカナダのバンクーバーから、一名はインドネシアから VimConf 2019 のために来日していました。 記事を書いている私も参加さ

    Vim を愛する我々 - スタディサプリ Product Team Blog
    ohbarye
    ohbarye 2019/11/25
    “Quipper は Vim を愛する方も、他のエディタを愛する方も募集しております。”
  • UIだけでは足りない「教育サービス」でのデザインの役割とは ~ UX MILK Fest 2019 登壇より ~ - スタディサプリ Product Team Blog

    VP of Design をしております @daitorii です。記事は2019年9月14日に開催された UX MILK Fest 2019 の登壇内容を噛み砕いたセルフ解説ブログとなります(話が長くなりそうなので、グローバルの話は割愛させていただきました)。 はじめに 勉強は面倒くさいものです。私はそう思います。興味のある領域において、知らないことを知る/知識をつけること自体は大好きなんですが、勉強と聞くと途端に面倒くさい。その過程が面倒に感じてしまう。 大切なのは、学習サービスが「面倒なこと」をやり続けてもらわなければいけないものと認識すること、だと私は思います。勉強自体がやりたいことではなくそれは手段であり、ユーザーが欲しいものを手に入れるための過程なのです。 人間は「現在」を過大評価する 「今すぐもらえる10万円」と「1年後にもらえる11万円」どちらを選びますか? 目の前に10

    UIだけでは足りない「教育サービス」でのデザインの役割とは ~ UX MILK Fest 2019 登壇より ~ - スタディサプリ Product Team Blog
    ohbarye
    ohbarye 2019/11/18
    “私達にとっての競合は塾や予備校ではありません。LINE、スマートフォンゲーム、TwitterやInstagramなどのSNS、Youtubeなど、スマートフォンでユーザーが消費している時間すべてが私達の競合になり得ます”