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

  • 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
    daiki_17
    daiki_17 2019/11/26
  • 新メンバーが多い大型プロジェクトでの不確実性との戦い方 - スタディサプリ Product Team Blog

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

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

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

    異動のおともにスキルマップ - スタディサプリ Product Team Blog
    daiki_17
    daiki_17 2019/06/03
  • 決済単位でのトランザクション管理モデルを用意すると調査にも開発にも役立つ - Quipper Product Team Blog

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

    決済単位でのトランザクション管理モデルを用意すると調査にも開発にも役立つ - Quipper Product Team Blog
    daiki_17
    daiki_17 2018/11/20
  • より良い面接を実現するために "Quipper採用面接ガイド" を公開しました - スタディサプリ Product Team Blog

    Engineering Manager の @ohbarye です。 このたび"Quipper Web Engineer 東京オフィス採用面接ガイド"を Quipper Handbook*1 の一部として公開しました。 Quipper Web Engineer 東京オフィス採用面接ガイド (2019-10-09 追記: Quipper iOS Engineer 東京オフィス採用面接ガイド も公開しました!) (2020-01-16 追記: Quipper Android Engineer 東京オフィス採用面接ガイド も公開しました!) 記事では同ガイドについてご紹介させてください。 採用面接ガイドとは? Quipper東京オフィスで行っている採用プロセスについてより多くの方に知っていただくためのドキュメントです。とりわけ面接に訪れる方を読者として想定しており、候補者には面接の日程調整時に

    より良い面接を実現するために "Quipper採用面接ガイド" を公開しました - スタディサプリ Product Team Blog
    daiki_17
    daiki_17 2018/09/06
  • VimのデバグにGDBを使う - スタディサプリ Product Team Blog

    はじめまして、Quipperに再来週に入社予定のujihisaと申します。 記事では、Vim体のC実装をデバグするのにGNU Debugger (GDB)を用いる方法について説明します。 巷には「GDBVimに統合させて何らかのプログラムをデバグする方法」はいくつか解説記事がありますが、記事はそうではなく、Vim自体のデバグについてに着目します。 Quipperでは社内のソフトウェアエンジニアのうち4割 *1がVimを使用しており、我々はVim体の未解決バグを踏んだときに自力で解決しVimコア開発者にフィードバックできるようになっているべきです。 Vimを debug_info, not stripped でビルドする お使いのVimのバイナリは、おそらくdebug buildではないです。ちょっと確認してみましょう。 $ file `which vim` /usr/sbin/v

    VimのデバグにGDBを使う - スタディサプリ Product Team Blog
    daiki_17
    daiki_17 2018/08/22
  • Web Developer も知っておきたい Kubernetes における Sidecar Pattern と Ambassador Pattern - スタディサプリ Product Team Blog

    Site Reliability Engineering チームの @yuya-takeyama です。 年末年始頃は React Native でのアプリ開発をやっていた気がしますが、「スキルを Web 開発から SRE の領域まで広げたい」という以前からの私自身の思いと、「Kubernetes による Microservices 基盤を作っていくメンバーがもっと必要」「Microservices を技術面だけでなく組織面でも Production Ready な形でやっていく上で Developer と SRE のつなぎ役が必要」という会社の状況が一致したので、異動して AWS, Kubernetes または MongoDB などと向き合っています。 3 行でまとめ Sidecar Pattern はアプリケーションのコンテナから再利用可能な部分をもう一つのコンテナとして切り出すパター

    Web Developer も知っておきたい Kubernetes における Sidecar Pattern と Ambassador Pattern - スタディサプリ Product Team Blog
    daiki_17
    daiki_17 2018/06/19
  • 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
    daiki_17
    daiki_17 2017/12/05
  • グローバルサービスでのタイムゾーンとの向き合い方 - Quipper Product Team Blog

    Web developer の大庭 (@ohbarye) です。 今回はタイムゾーンにまつわるお話をしたいと思います。 タイムゾーンは私が Quipper に入社したばかりの頃に最も頭を悩ませたことの一つです。入社以前にはタイムゾーンを跨ぐようなグローバルなアプリケーションの開発を全くしてこなかったので、まさにゼロから学び、考え、そしてハマりました。今でも気を抜くとハマりそうです。 入社からおよそ1年。この間に得た経験と知識を活かし、タイムゾーンと向き合うテクニックをまとめてみたいと思います。 目次 はじめに 前提 - Quipper のご紹介 難しさ 現在時刻を扱う問題 言語、フレームワークの実装 認知の問題 タイムゾーンを考慮した設計の問題 解法 基的な考え方 デフォルトタイムゾーンを設定する PostgreSQL Rails タイムゾーンを意識した設計 タイムゾーンを意識したプログ

    グローバルサービスでのタイムゾーンとの向き合い方 - Quipper Product Team Blog
    daiki_17
    daiki_17 2016/12/08
  • グローバルサービスでのタイムゾーンとの向き合い方 -ケーススタディ編- - スタディサプリ Product Team Blog

    前回の記事に引き続き、Web developer の大庭 (@ohbarye) です。 先日『グローバルサービスでのタイムゾーンとの向き合い方』にてタイムゾーンにまつわる諸問題や解決策を1つの記事にまとめました。 しかし同記事はテクニック集としての側面が多く、Quipper の開発者として実際にどのような問題に直面するのかいまいち伝わりづらかったかもしれません。 そこで今回は Quipper の機能に関連するタイムゾーンを考慮した設計と実装の一部をケーススタディ編と題し、改めてご紹介します。前回の記事と一部重複する内容はありますが具体例を交えた復習として参考になれば幸いです。 目次 1 宿題管理機能 モデルイメージ 設計に関する問いかけ 解答・解説 2 TODO 管理機能 画面仕様 信頼すべきタイムゾーン 3 キャンペーン機能 画面仕様 タイムゾーンをユーザーに入力してもらう リテラシーへ

    グローバルサービスでのタイムゾーンとの向き合い方 -ケーススタディ編- - スタディサプリ Product Team Blog
    daiki_17
    daiki_17 2016/12/08
  • Quipperで働く環境・制度について - スタディサプリ Product Team Blog

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

    Quipperで働く環境・制度について - スタディサプリ Product Team Blog
    daiki_17
    daiki_17 2016/11/29
  • Quipperの近況アップデート + 積極採用再開 - スタディサプリ Product Team Blog

    今回、Quipperでは積極的な採用活動を再開し、それにあわせてこの公式ブログを開始することになりました。CTOの中野です。 まず、前回、今年の初旬に、積極採用活動をしていたときに書いたものがいくつかあるので置いておきます。 Quipperの今 Quipper開発チームに入って欲しい人 Quipperの開発体制の今 スタディサプリ開発の裏側 Quipperは歴史的に採用活動の波が結構大きいのですが、前回は今年の頭くらいに大々的に行い、それにあわせてブログを頻繁に更新したのですが、目標の採用数に達したのでまた静かになっていました。潔い「採用目的」です。 今回、積極採用モードに再度入るにあたり、この日語の公式のブログを作ってみんなで更新してみることにしました。余談になりますが、Quipperの採用活動、人事の人に手伝ってもらいながらも基的には開発者主体で行っています。今回のブログを作るとい

    Quipperの近況アップデート + 積極採用再開 - スタディサプリ Product Team Blog
    daiki_17
    daiki_17 2016/11/29
  • Developerの問い合わせ対応との関わり方 - スタディサプリ Product Team Blog

    Web developer の @wozaki です。 MacBook Proの到着を楽しみに日々を過ごしています(ちなみにTouch Bar無しです) 今回は、問い合わせ対応について紹介します。 プロダクトの運用で必ず発生するのが、ユーザからの問い合わせです。 ユーザは、プロダクトの挙動が期待する結果と異なる事に対して不満、疑問をいだき問い合わせに至ります。 素早くユーザの不満や疑問を解消することは、ユーザと長期的に良好な関係を保つために不可欠です。 そのため、問い合わせ対応は重要な業務の一つです。 以下、Web developerを中心に、どのように スタディサプリ高校講座/大学受験講座 の問い合わせに関わっているのか紹介します。 全体概要 問い合わせがWeb developerに届くまで まず問い合わせは、カスタマーサービスや営業*1に届きます。 カスタマーサービス・営業は、過去の類

    Developerの問い合わせ対応との関わり方 - スタディサプリ Product Team Blog
    daiki_17
    daiki_17 2016/11/15
  • 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
    daiki_17
    daiki_17 2016/10/25
  • 1