記事一覧 - Classi開発者ブログ

Classi開発者ブログ

教育プラットフォーム「Classi」を開発・運営するClassi株式会社の開発者ブログです。

朝当番をやめた話

こんにちは。プロダクト本部プラットフォーム部SREチームのid:ut61zです。 サービスを運用していくうえで監視は避けて通れません。 Classiでは長らく朝当番という制度を設け、平日朝のピークタイムにエンジニアを監視担当としてアサインし、何らかの問題が発…

GraphQL スキーマから API ドキュメントを自動生成して GitHub Pages へデプロイする

Classi で提供している学習トレーニング機能を裏で支えているコンテンツ管理システム ( 以下、内部 CMS ) では、バックエンドに GraphQL を採用しています。 この GraphQL は Classi 内の様々なシステムで広く利用されています。 tech.classi.jp 内部 CMS の…

sql.Openとsql.OpenDBの違い、そしてドライバーごとにsql.OpenDBを使うべきかの検討

Go

id:aerealです。Goの話をします。 sql.Openとsql.OpenDBの違い GoでRDBMSなどに繋ぐ際にはふつうdatabase/sqlを使います。 ORMを使う場合でも内部的にはこのパッケージに依存していることがほとんどです。 特定のデータベースに対して接続を確立したりクエリ…

Kaigi on Rails 2024 に「ActiveRecord SQLインジェクションクイズ (Rails 7.1.3.4)」というタイトルで登壇します

こんにちは、ソフトウェアエンジニアの中村 ( id:kozy4324 ) です。 2024年10月25日 (金) から 26日 (土) に、東京の有明セントラルタワーホール & カンファレンスで開催予定の Kaigi on Rails 2024 にて、「ActiveRecord SQLインジェクションクイズ (Rails …

チームでやろう!「ルールズ・オブ・プログラミング」読書会

今回は、チームメンバーを中心に『ルールズ・オブ・プログラミング』という本の読書会を行いました。

社内の9個のリポジトリの CI/CD を CircleCI から GitHub Actions に移行した際に考えたこと

はじめに こんにちは、エンジニアの id:kiryuanzu です!今回はチームで管理するRailsリポジトリ9個の CI/CD を CircleCI から GitHub Actions に移行した際の話を共有します。 概要 Classi では全社的な方針により、メインで使う CI/CDプラットフォームを C…

tetoruのチームビルディング施策 -Wevox Values Cardの事例を添えて-

こんにちは。tetoruでUXデザイナーをしている原田です。 tetoruチームでは年数回、チームビルディングとして関係者全員参加のワークショップを開催しています。今回はその取り組みを具体例を交えてご紹介します。 tetoruのチームビルディングとは このチーム…

24年度新卒エンジニアが研修を終えて

こんにちは。4月にClassiへ新卒で入社した伊森です。 私は4月から8月上旬までの約4ヶ月、Classiのエンジニアとして働くための新卒研修を受けてきました。 今回はその研修期間を経て、大まかな内容の振り返りや身についた考え方を紹介していきます。 入社前の…

SRE NEXT 2024にSILVER SPONSORとして協賛&参加してきました

ソフトウェアエンジニアの onigra です。2024年8月3日から4日にかけて開催された SRE NEXT 2024に参加してきました。 https://sre-next.dev/2024/ ClassiはSILVER SPONSORとして協賛し、いただいたスポンサーチケットで参加しました。 https://x.com/onigra_…

tetoru は Ruby 3.3 + YJIT で本番運用しています

プロダクト本部 tetoru 開発部の中田です。普段は giraffate という ID を使っていることが多いです。 ここでは、弊社が提供している小中学校向け保護者連絡配信サービス tetoru の利用している Ruby のバージョンを 3.2 から 3.3 にバージョンアップしたと…

QAチームで新卒エンジニア研修を開催して感じた効果

こんにちは。プロダクト本部プラットフォーム部QAチームの牛木です。 今年度、新卒エンジニアの研修にQAチームによる研修が新たに追加されました。今回は、その研修を開催した経緯と、実際に開催して感じた効果をお伝えします。 なぜ開催したか QAチームの活…

S3上のログデータをBigQueryにニアリアルタイム連携する基盤を作った話

こんにちは、データプラットフォームチームの鳥山(id: to_lz1)とマイン(id: manhnguyen1998)です。 Classiでは、AWS上にあるサービスが出力したログをBigQueryに連携するプロダクト「Seneka」を開発し*1、社内の開発者・分析者に役立ててもらっています。 ロ…

SRE留学体験記(第5期生)

こんにちは、学習PMF部でエンジニアをしている辻です。 私は2023年12月から2024年5月までSRE留学という社内制度を利用して、SREチームに期間限定で所属していました。 SRE留学とは?や、第1期生、2期生、3期生の体験記はこちらをご覧ください。 tech.classi.…

詳解Terraform読書会を実施しました

こんにちは。プロダクト本部プラットフォーム部SREチームの id:ut61z です。 SREチームが主体となって書籍『詳解 Terraform 第3版』(以後、詳解Terraform)の読書会を社内で実施しました。 www.oreilly.co.jp どう進めたか、実施してみた感想や反響、学んだこ…

なれる!データエンジニア

はじめに こんにちは。データプラットフォームチームのマイン(id:manhnguyen1998)です。 2024年1月からデータエンジニア留学(第1期)という制度を利用して、データプラットフォームチームに配属されています。第1期生として、このデータエンジニア留学制度…

Classiのエンジニア2名が RubyKaigi 2024 に参加しました

はじめに こんにちは、エンジニアの id:kiryuanzu です! 今回の記事は 5月15日(水)から 5月17日(金)の3日間を通して開催された RubyKaigi 2024 の参加レポートです。 rubykaigi.org 弊社からは 2名のエンジニアが参加しました。本記事では各メンバーによる…

Strict CSP を Content Security Policy Level 3 に対応したブラウザに絞って適用する

こんにちは、プロダクト本部エンジニアの中村 (kozy4324) です。 現在 Classi が提供している Web サービスでは Content Security Policy を導入しています。その導入時の話は以下の記事で紹介させてもらいました。 今回の記事では、運用を続けていく中でわ…

Shinjuku.rb#92をClassiで開催しました

ソフトウェアエンジニア&Shinjuku.rbオーガナイザーの onigra です。5/31にClassiオフィスにてShinjuku.rbを開催いたしました。足元の悪い中ご参加くださった方々、本当にありがとうございました。 Shinjuku.rb とは、新宿周辺のRuby技術者たちが気軽に集ま…

dbtを導入した話、そしてClassiのデータ基盤「ソクラテス」の現在地

こんにちは、データプラットフォームチームの鳥山(@to_lz1)です。 Classiでは、2019年ごろからデータ基盤に「ソクラテス」の愛称をつけて運用を続けています。初期の構成は2021年に書かれたエントリ*1にも詳しいですが、数年の間に進化したことも増えてき…

Classiは技術コミュニティの勉強会・ミートアップに会場提供を行います

はじめに ソフトウェアエンジニアの onigra です。タイトルの通り、Classiは技術コミュニティの勉強会・ミートアップ等に、自社のイベントスペースを会場として提供致します。 昨今、オフラインでの勉強会・カンファレンス・ミートアップの盛り上がりを強く…

GitLab本輪読会、他社と合同で振り返りを行いました

こんにちは。プロダクト本部でエンジニアをしています daichi ( id:da1chi24 ) です。 先日、社内でGitLab本の輪読会を実施しました。 さらに今回はそれだけでなく、同時期に同じ本の輪読会をした他社の方と合同で振り返りを行うイベントに参加しました。 今…

データを活用したQA検証の取り組み

QA

こんにちは!QAチームの池田です。 今回は、2023年度でQAチームが行った取り組みについてご紹介します! QAチームでは、2023年度で2つ目標を掲げ活動をしてきました。 そのうちの1つの目標が「機能別の検証密度と優先度の抽出」です。 この目標は、検証漏れ…

IME変換中のエンターキーで送信される!への対処法[追記あり]

[2024年4月25日 追記] Safariの動作について考慮漏れがありましたので、一部追記・編集しました。 新宿にオフィスのあるClassiは、岡山在住の私のような地方在住者だけでなく、いわゆる通勤圏内に在住していてもリモートワークで働いている人が多い会社です…

英文法問題の制作プロセスに生成AIを取り入れた話

こんにちは。データサイエンティストの高木です。 弊社では昨年6月に「学習トレーニング」機能をリリースし、機能の利用促進や改善が進んでいます。 corp.classi.jp このような学習機能を通して、より質の高い個別最適な学習を実現するためには、多くの「問…

株式会社万葉のみなさんとエンジニア交流会を実施しました

こんにちは、エンジニアの id:kiryuanzu です。 2024年の1月に Classi のオフィスで 株式会社万葉のエンジニアの方々と交流会を実施しました。 今回の記事では万葉さんとの交流会の様子を紹介した上で、他社との交流会を実施してみての振り返りレポートを紹…

たった1行のPRでチームの"速さ"を可視化できる計測基盤を作った話

こんにちは、データプラットフォームチームの鳥山(@to_lz1)です。エンジニアの皆さん、自分のチームのパフォーマンス、計測していますか? DevOps Research and Assessment(DORA)の2019年のレポート により、開発チームのパフォーマンスを示す指標として提…

リードタイムを測るシェルスクリプトを作ってチームの振り返り会を活発にした話

こんにちは。エンジニアのすずまさです。 去年の夏頃にリードタイムの計測を始めてから、振り返りで良い気づきを得られるようになったりリードタイムを減らすアクションが生まれたりと良いことがたくさんあったので、今回はその紹介をしようと思います。 リ…

SLO本読書会、監訳者である山口能迪さんを囲んでSLOの理解を深める会を実施しました

こんにちは。プロダクト本部プラットフォーム部SREチームの ID:ut61z です。 SREチームが主体となってSLO本読書会を社内で実施しました。 そしてなんと贅沢なことに、監訳、翻訳に携わった Google Cloud の Developer Relations Engineer である山口能迪さん…

コスト削減成功!Amazon Auroraの監査ログをS3に保存する仕組みを構築した話

こんにちは。プロダクト本部Growth部でエンジニアをしている id:ruru8net です。 前回はこちらの記事を書かせていただきました。 tech.classi.jp 今日は前述したSRE留学中にやったことの中の「Amazon Auroraの監査ログをCloudWatch Logsを経由せずS3に保存す…

RubyWorld Conference 2023 に参加しました

こんにちは!エンジニアの id:kiryuanzu です。最近はよく GitHub Actions のワークフローいじりをしています。 今回の記事は11/9(木)〜11/10(金)に筆者が参加した RubyWorld Conference 2023 の参加レポートです。 2023.rubyworld-conf.org RubyWorld Confe…

© 2020 Classi Corp.