RubocopでRubyコードのスタイルを強制せず、バグだけ検出

今回はRubyのRubocopの使い方のお話です。 Summary RubocopのLayout, Lint, Metrics, Styleらのcopのほとんどすべてをdisable 潜在的バグ発見に役立つ系のSecurity, Lintのcopの一部をenable rubocop:disable や .rubocop_todo.yml だけゆるく禁止 というル…

「スタディサプリ」が React Native から卒業するまで、あるいは技術的負債への感謝と敬意

こんにちは、Quipper iOS エンジニアの @manicmaniac です。 現在スタディサプリ iOS アプリ開発チームのエンジニアリングマネージャをしています。 今回はスタディサプリで長らく使われていた React Native のコードを Swift に書き換えた話をします。 実は…

SRE と Developer のコラボレーションを支える仕組み

こんにちは。SRE の @int128 です。 Quipper の SRE チームでは、Platform の安定運用や改善だけでなく、Platform を利用する Developer のサポートも重要な仕事と位置付けています。 SRE チームで工夫していることを紹介します。 Issue に記録を残す SRE チ…

Kubeflow Pipeline の魅力を最大限に引き出すにはやっぱりコンポーネント化スキルが必要

レコメンドシステムのJenkins 部分をAI Platform Pipeline (以下AIP Pipeline) に置き換えた話です。 最初に導入するにあたっての迷いどころや躓きどころ、反省点など、1事例として紹介できればと思います。

Cloud Composer(Airflow)で分析者向けBigQuery SQL実行基盤をつくりました

はじめに こんにちは。Data Engineer の @shase です。 弊社ではいくつかのユースケースでCloud Composer(Airflow)を使っているのですが、今回はデータチームで開発している、分析者向けBigQuery SQL実行基盤(社内の通称はSaved Query Workflow)について…

AWS - GCP の ID 連携を使い、 AWS CodeBuild で Terraform を使って GCP を管理

こんにちは。 SRE の @suzuki-shunsuke です。 Google Cloud Platform (以下 GCP) を Terraform で管理するように CI/CD を整備した話を紹介します。 背景 何度か本ブログで紹介したように、弊社では Terraform を使い AWS を始めとする様々なリソースを管理…

プロジェクト失敗可能性を軽減するプレモーテム

こんにちは。Engineering Manager の @wozaki です。 2年前のプロジェクトで、プレモーテム(premortem)を実施した例をご紹介します。 プレモーテムとは、プロジェクト初期にチームで集まり「プロジェクトが失敗したとして、その失敗とは? 原因は? どう対策す…

AWS IAM User の初期パスワード通知を自動化

こんにちは。 SRE の @suzuki-shunsuke です。 AWS の IAM User 作成後に初期パスワードをユーザーに Slack の DM で通知する作業を自動化した話を紹介します。 背景 弊社では AWS を使っており、開発者は入社したらまず自分用の IAM User を作成します。 IA…

リモートワーク時代のチーム仕事術(15分ミーティングの活用)

こんにちは、@kei_yamashita です。 所属はデータソリューション部でスタディサプリのデータ分析関連業務を担当しています。 今回quipperでのブログ投稿は初投稿となりますので、至らないところもあるかもしれませんが、よろしくお付き合いください。 昨年2…

プロダクトやコード改善のためにチームでやっていることのご紹介

こんにちは。スタディサプリの Web エンジニアをやっている @ttokutake です。 今日は、私の所属するチームがプロダクトやコードを改善するためにやっていることを簡単にご紹介したいと思います。 そもそもどんなチームなのか 私の所属するチームはプロダク…