Classi開発者ブログ

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

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

はじめに こんにちは!開発本部所属のエンジニアの id:kiryuanzu です。 9月8日(木) 〜 9月10日(土) にRubyKaigi 2022が開催されました。 今回弊社ではシルバースポンサーとして協賛し、3名のエンジニアがオフラインで RubyKaigi に3日間通して参加しました…

フルリモート環境である開発本部の課題を解決するために始めてみたこと

こんにちは。技術戦略室にてエンジニアをしています、中島です。 以前、リモートワーク環境におけるコミュニケーション課題の一つである「質問」についてブログを書かせていたただきました。 tech.classi.jp 弊社では今でも全社的にフルリモートを続けていま…

RubyとRailsのコミッターである松田明さんの講演でプログラミングを楽しむモチベーションが上がりました

2022年4月から新卒エンジニアとして入社しました daichi ( id:da1chi24 )です。 先日社内でRubyとRailsのコミッターである松田明さんによる特別講義が開催されました。 開催の経緯や感想、当日出た質問を紹介します。 開催の経緯 2022年の新卒研修では、研修…

UNIX 系システムのプロセスに関する社内勉強会に参加しました

こんにちは。新卒 1 年目エンジニアのすずまさです。 先日、弊社 VPoT の id:nkgt_chkonk が執筆した process-book の勉強会を修了しました。 process-book は *nix系のシステムにおけるプロセスやシグナルなどについて説明することを目的に書かれました。「…

Amazon OpenSearch Serviceをアップグレードしました

こんにちは、プロダクト開発部でバックエンドエンジニアをしている望月です。 Classiのサービスでは、先生や生徒がアップロードしたコンテンツファイルやWebテストなどの検索システムにおいてAmazon OpenSearch Service(以下、OpenSearch)を利用しています…

Jest v28 shard オプションを使い、CI でカバレッジを計測できるようにする

こんにちは、ラーニング・学習トレーニングチームの id:tkdn です。 今日は Jest shard オプションを使って CI でどうカバレッジ計測をしたか について書いていきます。 Jest v28 shard オプション Jest v28 から shard オプションが入りました。このオプシ…

ClassiのアダプティブラーニングエンジンCALEの品質を高める取り組み

はじめに こんにちは、Pythonエンジニアをしてます工藤( id:irisuinwl )です。 この度、Classi独自のアダプティブラーニングエンジンである Classi Adaptive Learning Engine (CALE) をリリースしました。 corp.classi.jp 自分は主にCALE開発において、レコ…

個別学習機能の裏側を紹介: アダプティブラーニングエンジン「CALE」

みなさん、こんにちは。 データAI部でデータサイエンティストをしております廣田と申します。今回は、2022年5月にリリースした「全国模試に対応したAI搭載の個別学習機能」について、ユーザーからのフィードバック及びAIの部分について簡単に紹介していきた…

Rubyの会社の手札にGoを加えるまで

Go

こんにちは・こんばんは・おはようございます、System Platform領域所属のid:aerealです。 前回このブログに記事を書いた時の所属から変わり、チームトポロジーを参考に編成された新たな領域でチームを横断した関心事に取り組んでいます。 当社ClassiはRuby…

研修を終えて勉強になったこと

自己紹介 初めまして、エンジニアのmanhnguyen1998です。 2021年秋にベトナムからClassi株式会社に入社してから半年程新卒研修を受けました。 今回、研修で印象に残ったことについて振り返ります。 研修でやったこと 以下の内容の研修を受けました 日本語研…

ISUCON12予選 スコア4位相当でしたが失格になりました

TL;DR こんにちは。Classi開発部のminhquang4334です。 今年は開発支援部のhenchiyb先輩と一緒に 2回目でyasuoチームとして ISUCON12の予選に参加しました (参考: 1回目で参加したブログ)。 最終結果は予選通過スコアを超えて、 4位/700チーム相当でしたが、…

データ基盤の品質向上への取り組み

こんにちは、データエンジニアの石井です。 先日公開した記事「社内向けのデータ基盤から集計結果をReverse ETLしてサービスに組み込んだ話」で、ダッシュボード機能のリリースにより、Classiのデータ基盤が「社内用データ基盤」から「ユーザー影響あるシス…

チームトポロジーを参考に新組織の編成を考えた話

みなさん、こんにちは。開発本部で本部長をしている徹郎(id:tetsuro-ito)です。 Classiでは今年度より組織のあり方を少し見直し、チームトポロジーの考え方も導入してみたので、今回はその過程の話を紹介します。 Classiのこれまでの組織 Classiでは、2020年…

Content Security Policy のレポートを収集するためにやったこと

はじめに こんにちは、開発本部所属エンジニアの id:kiryuanzu です。 現在、Classi ではサービスのセキュリティリスクをできる限りなくすために Content Security Policy を導入して脆弱性を検知する仕組みの導入を進めています。 本記事ではこの仕組みを導…

Classiの技術選定に対するスタンス

VPoTの丸山です。本日はClassiがいまのところどういうスタンスで技術選定に臨んでいるのかについてお話しします。これは「いまのところ」のスタンスであり、未来永劫このようなスタンスでいくかどうかというのは定かではありませんが、考え方のひとつとして…

Classi初の新卒データサイエンティストが研修を終えて

こんにちは、今年の4月にClassi初の新卒データサイエンティストとして入社した白瀧です。 私が入社して2ヶ月強の新卒研修を終えた振り返りを書きたいと思います。 アウトプット会をgatherで開催した時の図 新卒研修をやるにあたっての私の心構え 新卒入社前…

アラート対応で気をつけていること

こんにちは!開発本部の id:lime1024 です。 アラート対応について社内で esa にまとめていたところ、参考になると社内でフィードバックをいただいたので開発者ブログでも紹介します。 前提として、平日日勤帯でのアラート発生を想定しています。 対応すると…

社内向けのデータ基盤から集計結果をReverse ETLしてサービスに組み込んだ話

ダッシュボード機能をリリースしました。 この機能のデータ集計は既存の社内用データ基盤からのReverse ETLで実現しました。 そのアーキテクチャの説明と「社内用データ基盤」から「ユーザー影響あるシステムの一部」になったことによる変化について紹介しま…

新サービスのブランド「tetoru」策定に至るまで

こんにちは。UXデザイン部の原田です。小中学校向けに「tetoru」というプロダクト開発に携わっています。 2022年4月に「tetoru」は正式リリースをいたしました。 corp.classi.jp 今回はこの生まれたてのサービスがどのようなプロセスを経て「tetoru」という…

Datadogで深夜バッチの失敗アラートを営業時間に受け取る方法

深夜の定期バッチの監視 Webサービスのオフピーク時に重たい処理を実行させるというのは一般的なプラクティスといえます。 特に深夜〜早朝は多くのサービスでバッチ処理を実行させているのではないでしょうか。 Webサービスだけではなく、当然バッチ処理も監…

DatadogでECS Fargate TaskのCPU利用率が100%を超えて表示されていたので調べてみた

こんにちは。開発本部の遠藤です。 ClassiではAmazon ECSをアプリケーション実行環境として利用しています。 ECSの各種メトリクスをDatadogを使ってモニタリングしながら、日々安定稼働しているかどうかをチェックしています。 そのうちの一つの重要なメトリ…

monorepoでのWeb Components配信アーキテクチャ

コミュニケーションチームのid:NozomuMiyamotoです。 Classiでは、2021年12月のAngularJSのEOLに向けて、Web Componentsを利用した段階的AngularJS脱出作戦を進めてきました。これはAngular Elementsと呼ばれるAngularで作成したコンポーネントをWebComponen…

Mock Service WorkerでAPIをモックして開発をスムーズに進められた話

こんにちは。開発本部 認証連携チームでエンジニアをしている id:ruru8net です。前回はこちらの記事を書かせていただきました。 tech.classi.jp 現在は認証基盤再建というプロジェクトの中で、主にフロントエンド開発を担当しています。この記事ではフロン…

開発メンバーの保守運用スキルを上げるため実施している朝当番制度の紹介

こんにちは、開発支援部基盤インフラチームの kenryooo です。 Classiでは過去の高負荷によるアクセス障害での反省を踏まえ、エンジニア向けに保守運用スキルを高める施策として、朝当番という制度を運用しています。今回はその紹介をします。 目的 朝当番制…

go generateを忘れていないかCIで検出する

こんにちは・こんばんは・おはようございます 開発支援部基盤バックエンドチームのid:aerealです。 今回は小粒でピリリと辛いちょっとしたテクニックをお届けします。 Goとコード生成 Goとコード生成は密接な関係にあります。 なにしろ go generate というサ…

コロナ禍で失われた交流と挑戦の機会を回復するためハードル低めの社内LT会を半年運営してみた話

みなさんはじめまして。Classi で開発支援部に所属するイノウエと申します。 当社は教育事業を手掛けているため、教育に関心のあるメンバーが集まっており、ジュニアメンバーに対する社内教育にも力を入れています。巷を騒がす感染症の流行により、当社でも…

「Python FlaskによるWebアプリ開発入門」の紹介

こんにちは、データAI部Pythonエンジニアの工藤( id:irisuinwl )です。 今回は弊社Pythonエンジニアである平田さんが著者の一人であるPython FlaskによるWebアプリ開発入門のご紹介をいたします。 Python FlaskによるWebアプリ開発入門 物体検知アプリ&機械…

完走したClassi developers Advent Calendar 2021を振り返って今年を締めよう!

挨拶 振り返り 12/1 id:tetsuro-ito: 開発本部長になってやったこと - tetsuroitoのブログ 12/2 沼沢一樹: GitHub に AWS 認証情報を持たせずに、Actions で S3 Backend な Terraform の plan を実行する - Qiita 12/3 id:tkdn: JSConf JP に参加してきまし…

2021年Classiに起こった変化の振り返り

VPoTの id:nkgt_chkonk です。この記事は Classi developers Advent Calendar 2021 25日目の記事です。昨日は平田(@JesseTetsuya)さんによるFlask App Builderでコンテンツマネジメントシステムとメタデータマネジメントシステムをさくっと作ってみたら役立…

Flask App Builderでコンテンツマネジメントシステムとメタデータマネジメントシステムをさくっと作ってみたら役立った話

この記事はClassi developers Advent Calendar 2021の24日目の記事です。 こんにちは、データAI部でPythonエンジニアをしている平田(@JesseTetsuya)です。普段は、PoCとデータをもってくる、というところ以外全部やる、というスタンスで開発業務を行っていま…

© 2020 Classi Corp.