タグ

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

  • 社内技術ドキュメンテーションを科学する - スタディサプリ Product Team Blog

    最終更新日: 2024年05月07日(火) 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
    advblog
    advblog 2023/12/18
  • 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
    advblog
    advblog 2023/10/11
  • なぜSeleniumを選ばなかったのか~AutifyとMagicPodを選びました~ - スタディサプリ Product Team Blog

    こんにちは。QA Engineerの@testtattoです。 今回はE2Eテストの自動化にあたって、どういった考えでツール選定を行ったのかを話したいと思います。 対象読者 以下に興味や関心を持つ方を対象読者として想定しています。 E2Eテスト自動化によって課題を解決したいが、どういった技術があるのか分からなくて困っている人 E2Eテストの自動化は実現できているが、継続に課題を抱えている人 テスト自動化なら何でも興味がある人 まえがき 読んでもらう前にいくつかの前提を共有します。 リリースサイクルについて 当社のwebプラットフォームのリリースサイクルは一部のマイクロサービスを除いて基的には週次です。 決まった曜日で各プロダクトのプルリクエストを取り込んで、リグレッションテストを実施し、リリースブロッカーがなければリリースしています。 流れとしてはこんな感じです。 月 火 水 木 金 特

    なぜSeleniumを選ばなかったのか~AutifyとMagicPodを選びました~ - スタディサプリ Product Team Blog
    advblog
    advblog 2022/08/29
  • 負荷試験、Gatlingを使ってやってみた - スタディサプリ Product Team Blog

    スタディサプリのコミュニケーション開発チームの @chata です。開発実装を行った際に負荷試験をして実際のパフォーマンスがどの程度なのか計測したときの模様を共有いたします。 TL;DR 背景と結果 負荷試験をいざやってみると色々問題が見つかりました。パフォーマンスにおける課題だけではなくアーキテクチャの課題も把握できました。また弊チーム以外でも同じようにやってみたいという声があり活用してもらっています。 負荷試験に関するまなび 負荷試験は3種類のテストをそれぞれの目的で実施すると必要なリソース(CPUやMEM)や台数などの把握が事前にできます。またパフォーマンスの課題も見つけやすいです。 実行環境に関する Tips SREチームの多大なる支援を背景にPR環境で Report がDeployされる Loadtest Platform を活用することで試行錯誤のサイクルを速くまわすことができ

    負荷試験、Gatlingを使ってやってみた - スタディサプリ Product Team Blog
    advblog
    advblog 2022/06/20
  • 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
    advblog
    advblog 2022/02/18
  • 〜その意思決定を刻め〜「アーキテクチャ・デシジョン・レコード(ADR)」を利用した設計の記録 - スタディサプリ Product Team Blog

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

    〜その意思決定を刻め〜「アーキテクチャ・デシジョン・レコード(ADR)」を利用した設計の記録 - スタディサプリ Product Team Blog
    advblog
    advblog 2021/04/06
  • カジュアル面談への扉 - スタディサプリ Product Team Blog

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

    カジュアル面談への扉 - スタディサプリ Product Team Blog
    advblog
    advblog 2020/02/06
  • 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
    advblog
    advblog 2019/04/02
  • データの民主化に向けて Lookerbot を導入した話と課題と今後 - スタディサプリ Product Team Blog

    はじめまして、データエンジニアリングチームの @toohsk です。 今回は、データの民主化を推進するために導入した Looker 社の Lookerbot という Slack ボットをご紹介します。 Lookerbot ってなによ Quipper では、先の記事「エンジニアを魅了する次世代 BI ツール『Looker』を Quipper が導入した理由(わけ)」でご紹介したように、BI ツールとして Looker を導入しています。 BI を導入した後、Slack などでの会話上でグラフやモニタリングした数値を共有したいと思うシーンはよくあると思いますが、Looker ではそのような用途のために Lookerbot と呼ばれるボットを公開しています。 Lookerbot が提供する主な機能は Look (Looker におけるデータを可視化するコンポーネントの最小単位)に対する、下記の二

    データの民主化に向けて Lookerbot を導入した話と課題と今後 - スタディサプリ Product Team Blog
    advblog
    advblog 2019/02/07
  • Working Out Loud 大声作業(しなさい)、チームメンバー同士でのトレーニング文化の醸成 - スタディサプリ Product Team Blog

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

    Working Out Loud 大声作業(しなさい)、チームメンバー同士でのトレーニング文化の醸成 - スタディサプリ Product Team Blog
    advblog
    advblog 2018/11/14
  • デザイン思考とデータ分析のミエナイ落とし穴 - Quipper Product Team Blog

    はじめまして、Quipper 東京オフィスでデザイナーをしております @daitorii です。 幼い頃は公園でよく落とし穴を掘っては友達が落ちて行く様を笑い転げて見ていました。なんでこんなのに引っかかるんだよ、俺は絶対に引っかからねえ。とは思っていたものの、もちろん自分も落とし穴にハマり(しかも結構壮大だったし若干トラウマ)、子供ながらになんとなく感じた古い記憶があります。 「自分が当たり前だと思っている前提や認識は、誰かにとっての当たり前ではない」 という事です。 今日はリアルな落とし穴の話ではなくデータの分析やデザイン思考の落とし穴の話。 ですが、実は根的な問題は同じような気もしています。 デザイン思考と科学的方法 最近よく「デザイン思考」という言葉を耳にする方も多いと思いますが、結局のところそれは何だということで Wikipedia 先生に聞いてみました。 デザイン思考(でざいん

    デザイン思考とデータ分析のミエナイ落とし穴 - Quipper Product Team Blog
    advblog
    advblog 2018/11/13
  • モバイルエンジニアが H.265/HEVC 使った方がいい理由(わけ) - スタディサプリ Product Team Blog

    こんにちは。モバイルエンジニアの@daisukefujiです。 少し前になりますが、WWDC 2017 にてH.265/high-efficiency video coding(HEVC) のサポートが発表されました。 iOS デベロッパーの方はご存知だと思いますが App Store審査ガイドライン に以下のビデオストリーミングコンテンツについての規定があります。 2.5.7 携帯電話ネットワークを介した10分以上のビデオストリーミングコンテンツにはHTTP Live Streamingを使用し、ベースラインの192 kbpsのHTTPライブストリーミングを含める必要があります。 ここで唐突に「ベースライン」という用語が使われていますが、これは「H.264 Baseline profile」もしくは「MPEG-4 Part 10 Advanced Video Coding の Basel

    モバイルエンジニアが H.265/HEVC 使った方がいい理由(わけ) - スタディサプリ Product Team Blog
    advblog
    advblog 2018/06/14
  • エンジニアを魅了する次世代 BI ツール『Looker』を Quipper が導入した理由(わけ) - スタディサプリ Product Team Blog

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

    エンジニアを魅了する次世代 BI ツール『Looker』を Quipper が導入した理由(わけ) - スタディサプリ Product Team Blog
    advblog
    advblog 2018/06/04
  • インドネシアから見たQuipperのプロダクト開発 - スタディサプリ Product Team Blog

    自己紹介とインドネシア進捗 こんにちは、Quipper創業メンバーで、現在Quipper Indonesiaのカントリーマネージャーをやっている間拓也です。簡単に、(プロダクトブログですので)インドネシア展開の現状についてプロダクトチームとの関わりも含めて、ご紹介させていただければと思います。 Quipperはもともとイギリスで創業された会社なのですが、2014年からアジア展開をしてきました。そのあたりの温度感に関しては以前Wantedlyブログなどに書いたので、ご参照ください。 ・「ユーザーと共創する」 ・「異文化の組織を成長させるために大事にしている3つのこと」 ・「新興国で急成長する「Quipper」の躍進」 フィリピン、インドネシア、ベトナム、タイ、メキシコ、といった国々でQuipperを展開していますが、その中でも2016年はインドネシアで大きく組織を拡大しました。40人程度の

    インドネシアから見たQuipperのプロダクト開発 - スタディサプリ Product Team Blog
    advblog
    advblog 2016/12/27
  • Quipper Handbook を公開しました - スタディサプリ Product Team Blog

    Web Developer の長永です。 Quipper に興味を持っているエンジニアの方に向けて、面接・面談の場で利用している会社紹介のプレゼンテーションスライドに説明をそえたドキュメントを GitHub で公開しました。 Quipper Handbook Quipper はロンドンで創業し、海外を中心にサービスを展開してきたので、日でのサービスの知名度はいまひとつでした。そのため、面接・面談の場では時間をかけて会社やプロダクトを紹介していたのですが、会社紹介に時間がかかりすぎる傾向がありました。 面接・面談の時間は貴重なので、できればその場でしかできないことに使いたいですし、すでに Quipper のことを知っている方にとっては、同じ内容を改めて説明するのは冗長です。そこで、会社紹介の際に利用しているプレゼンテーションスライドに説明をそえたドキュメントをあらかじめお伝えし、目を通して

    Quipper Handbook を公開しました - スタディサプリ Product Team Blog
    advblog
    advblog 2016/11/18
  • Quipper におけるリリース作業の負荷を分散するための取り組み - スタディサプリ Product Team Blog

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

    Quipper におけるリリース作業の負荷を分散するための取り組み - スタディサプリ Product Team Blog
    advblog
    advblog 2016/10/31
  • Treasure Data から大量のデータを MongoDB にインポートする話 - スタディサプリ Product Team Blog

    こんにちは。今年の6月に入社した Web Developer の田中です。 Quipper ではデータの収集に Treasure Data(以下 TD) を使っています。今回、収集したデータの一部(数千万件ほど!)を MongoDB にインポートする必要があったので、その時にやった事をまとめました。 tl;dr TD に数千万件あるデータを MongoDB にインポートする必要があった Ruby で愚直に書いたらリソースを使いきってサーバが落ちた Engineering チームと協力して、サーバ強化+別インスタンス化、コードの省メモリ化を行い、無事にインポートできた 概要 以下のような事をやりました。 まず、TD で必要なデータを出力する JOB をつくる Rake タスクで、以下を行う JOB ID を指定してデータをダウンロード ダウンロードしたデータを MongoDB に突っ込む つ

    Treasure Data から大量のデータを MongoDB にインポートする話 - スタディサプリ Product Team Blog
    advblog
    advblog 2016/10/14
  • 1