Engineering

bimg (libvips Goバインディング) でサムネイル画像作成を高速化する

はじめに こんにちは、Webエンジニアの濱田裕太 (@yuuta) です。 Quipperが開発・運用している スタディサプリ のプロダクトでは、バックエンドの一部をGoで実装しています。そのサムネイル画像作成で利用する画像処理ライブラリを imaging から bimg (libvi…

iOS/Androidチーム合同でユニットテストクロスレビューを行っている話

こんにちは。2020年6月から Quipper に join している @omtians9425 です。現在新規プロジェクトにおいて Android アプリ開発を担当しております。 今回は弊プロジェクトの iOS/Android チーム合同で行っている、ユニットテストのケースを相互にレビューし合…

Renovate の Tips

こんにちは。 SRE の @suzuki-shunsuke です。 Quipper では Renovate という様々なツール、ライブラリのバージョンをアップデートしてくれるツールを活用しています。 今日はこれに関する Tips を紹介します。 Reviewer を設定する 対象を絞り込む 自動でマ…

Terraform の CI/CD を CodeBuild に移行した話

こんにちは。 SRE の @suzuki-shunsuke です。 Terraform の CI/CD を CircleCI から AWS CodeBuild に移行した話を紹介します。 背景 弊社では AWS のリソースを Terraform で管理しており、元々 CircleCI で CI/CD を実行していました。 リポジトリは mono…

巨大な .circleci/config.yml を分割した話

こんにちは。 SRE の @suzuki-shunsuke です。 6000 行を超える巨大な .circleci/config.yml を分割してメンテナンス性を改善した話を紹介します。 背景 我々 SRE は日々 Developer Productivity の改善に取り組んでいます。 その取り組みの一環で Developer…

ステージング環境の夜間停止によるコスト削減

こんにちは。SRE の @chaspy です。 今回、ステージング環境のリソースを使用していない時間に削減することで、コストを削減したのでその事例を紹介します。 前提: Pull Request namespace Quipper では本番環境、開発環境ともに Amazon EKS*1 を使用してい…

Docker Hub の Rate Limit 問題に対応した話

こんにちは。 SRE の @suzuki-shunsuke です。 Docker Hub から Docker image を Pull する際に Rate Limit に引っかからないように対応した話について書きます。 anonymous user に対する Docker Hub の Rate Limit は段階的に導入されていて、 2020-11-02 …

新学習機能:ディクテーションの開発 ~ Android 編 ~

こんにちは。Android アプリエンジニアの geckour です。 今回は、スタディサプリ 中学/高校/大学受験講座 にて先日リリースした問題タイプ "ディクテーション" の Android アプリにおける実装についてお話します。

ALB Weighted Target Groups による EKS Cluster の Canary Switching

こんにちは。SRE の @chaspy です。 Quipper では Application Platform として Amazon EKS(以降、EKS)を利用しています。*1これまで Cluster を Upgrade する際には Blue/Green 方式で行っていましたが、今回 Canary 方式で Cluster の切り替えを行いまし…

GraphQL + Apollo の世界 ~Android 編~

こんにちは。Android アプリ開発者の geckour です。 今回は、Android における GraphQL と Apollo についてお話しします。 はじめに Quipper では現在新規プロジェクトに取り組んでいて、その技術スタックの議論の中で「GraphQL を使っていきたい」という意…

コーディングテストを見直した話 ~Android アプリエンジニア採用編~

こんにちは。Android アプリエンジニアの geckour です。 今回は、Android アプリ開発チームが先日アップデートした採用活動におけるコーディングテストについてお話します。

採用候補者から見る、Quipperのエンジニア採用フロー

こんにちは、2019年10月からQuipperにjoinした @qsona です。ということはつい数ヶ月前までは一採用候補者としてQuipperの採用を受けていたことになりますが、その中で、Quipperの採用には良い特色が多くあると感じました。今後はQuipperの一員として採用す…

スタディサプリ/Quipper Product Meetup #4 を開催しました!

2020-02-05(水)に「スタディサプリ/Quipper Product Meetup #4 〜スタディサプリのiOS/Android開発組織とアーキテクチャ〜」を開催しました。

SRE NEXT 2020 で「SLO Review」というタイトルで登壇しました #srenext

こんにちは。SRE の @chaspy です。 先日行われた SRE NEXT 2020 にて、SLO Review というタイトルで発表してきました。 本記事では、会場に来られた方には内容を追体験してもらえるように、来られなかった方には伝えたかった内容を持ち帰っていただけるよう…

Prefer ISO 8601

01/02/03 という日付を見たときに、どう読み取りますか? 著者 ujihisa はこれを素直に 2003年1月2日と読み取りますが、人によっては 2001 年 2 月 3 日 2003 年 2 月 1 日 平成元年 2 月 3 日 令和元年 2 月 3 日 などと読み取ることもあるでしょう。日本で…

Business Trip for Global Team

はじめに ビーチで"何もしない"を1日半することでリラックスできました Boracay のビーチからこんにちは。SRE の @chaspy です。 今回、Business Trip で Indonesia と Philippines に行ってきたのでその話をします。 なんのために行ったのか Developer との…

障害対応とポストモーテム

こんにちは。SRE の @chaspy です。 ユーザに価値が提供できなくなってしまうシステム障害は起きてほしくはありませんが、絶対に発生しないとは言い切れません。 そんなシステム障害は、そもそも発生頻度が不定、かつ多くないので、どのように対応すべきかを…

Vim を愛する我々

Quipper で Web エンジニアをしている @pankona です。 2019 年 11 月、さまざまな Vim 関連イベントを通して高まった 社内の Vim 熱 について紹介します。 Vim というテキストエディタをテーマに、ごく一部ですが弊社に在籍するエンジニアの一面を紹介でき…

VimConf 2019 の運営スタッフと登壇とスポンサーをした話

VimConf 2019 の運営スタッフと登壇とスポンサーをした話 こんにちは。 2019-06にQuipperへ入社したmoppです。 2019-11-03 (日) にVimConf 2019が開催されました。 今年も無事に成功を収めることが出来て非常に嬉しく感じています。 記事のタイトルの通り、…

社内の実践的ruby勉強会にて圧倒的学びがあったお話

こんにちは。2019 年 9 月から Quipper に join しました、School チームで Web engineer をしている@miyamizuです!ようやく会社に慣れてきました。 先日、社内で@ujihisaさん主催の「実践的 Ruby 勉強会」が開催されました。 私はこれまで Rails アプリの…

Kotlin の scope functions との上手な付き合い方

こんにちは、Native チームの @geckour です。 今回は、Kotlin の便利な関数である scope functions の概要と、そのうまい使い所の話をします。

負荷試験との向き合い方

こんにちは。SRE の近藤(@chaspy)です。 先日、より高い信頼性でサービスを提供するために、スタディサプリ小中高大のサービスの最後の砦であるデータベース、MongoDB のインスタンスクラスのスケールアップを行いました。また、スケールアップをするにあ…

Monitor and fix app's performance with Android vitals

Overview Hi! I am @padobariya again! working as a mobile engineer with Quipper (Japan office). In this post, I will talk about Android vitals and how to monitor your app's technical performance and some of the possible fixes. It is a tool …

iOSDC Japan 2019 ボトルウォータースポンサーのお知らせ

こんにちは。@isaoekaです。 iOSDC Japan 2019まで、いよいよ1週間を切りました! Quipperは昨年に引き続き、今年もボトルウォータースポンサーを致します!

iOS GraphQL クライアントのデバッグツールを作った話

こんにちは、今年の4月から Quipper の iOS エンジニアになった @manicmaniac です。 ちょっと話題としてはニッチかもしれないのですが、今日は Apollo iOS client を利用したアプリで GraphQL のデバッグに苦労し、そしてコードを書いてそれを克服した話を…

スタディサプリ/Quipper Product Meetup #3 を開催しました!

2019-7-18(木)に「スタディサプリ/Quipper Product Meetup #3 〜SREチームが取り組むマイクロサービス化に向けたDevOps開発事例〜」を開催しました。 本エントリーでは、当日いらしていただいた方だけでなく、当日いらっしゃることのできなかった方にもご…

Gradle Play Publisher プラグインをアップデートする

はじめましてこんにちは、4月に Native チームに加わった @geckour です。 今回は、Google Play Console の管理を自動化してくれる Gradle プラグインである Gradle Play Publisher のバージョンを v1.2.2 から v2.2.1 に上げた話をします。

新メンバーが多い大型プロジェクトでの不確実性との戦い方

ペアプロ・モブプロ、スキルマップ、1-on-1等々… チーム開発にまつわる各論・方法論・話題をよく見る昨今、関心の高まりは歓迎さるべきことながら つまるところそれらが現実のどのような問題を解決していくのか? どのように相互作用するのか? これらが有機…

英語でのプレゼンをやりきるたった1つのコツ

こんにちは。SREの近藤(@chaspy)です。 2019年6月12日 ~ 14日、シンガポールで開催されたSRECon19 Asia/Pacific で登壇してきました。これは私にとってはじめての国際イベントでのプレゼンでした。 *1 *2 本記事では突然やってきたそんなチャンスをいかに…

Production Readiness Check のはじめかた

こんにちは。SREの近藤(@chaspy)です。 新しいサービス、あるいは Microservices を 本番環境へリリースする際、私たちは何を注意すべきでしょうか。 今回は、Production Readiness CheckList と導入方法について説明します。 Production-Readiness Checkl…