atama plus techblogのフィード
https://zenn.dev/p/atamaplus
EdTechスタートアップatama plusのメンバーが書いた技術記事を投稿していきます。
フィード

Google Cloudで検索基盤を作ろうとして迷ったら(Vertex AI Serach,Vertex AI Vector Search)
1

atama plus techblogのフィード
こんにちは、atama plus でデータエンジニアをしている kumewata です。最近 Google Cloud 上の検索基盤を検討した時に、いろいろ迷いポイントがあったので、同じところで迷う人を減らせたらと思い記事を書いてみました 🙋 迷いポイントその 1: Vertex AI って N 個あんねんまず「google cloud 検索エンジン」と Google 検索してみると上から何番目かに「Vertex AI Search」が出てきます。機能紹介を見てみると、手元のデータでお手軽に検索基盤を用意できることがわかります。企業のアプリやエクスペリエンスのために Goo...
1日前

BigQueryへのデータ転送方式移行でマルチリージョンに苦しんだ話
atama plus techblogのフィード
はじめにはじめまして、4月からatama plusにデータエンジニアとしてジョインしたTackungです。弊社ではデータ基盤にBigQueryを採用しており、プロダクト側で日々発生するデータをTROCCOやGoogle Cloud Dataform、Composerを使った日次転送でデータを蓄積しています。今回、コスト削減を目的として一部のデータの転送方式をTROCCOからGoogle Cloud Dataform+Composerを使った方式に移行するプロジェクトに取り組みました。この移行によって、不要インスタンスの削除によるコスト削減ができました。この取り組みの中で、Bi...
21日前

Mastraワークフローの型安全性と変更容易性を高める設計指針
atama plus techblogのフィード
はじめにこんにちは、atamaplus の takei です。最近、趣味や業務でエージェントフレームワークであるMastra のワークフロー機能[1]を約 1 ヶ月ほど使ってみました。実際に使ってみて非常に便利である一方で、適切に設計しないと型安全性や変更容易性(保守性)に課題が生じやすいと感じました。特に以下のような課題に直面しました。ステップ[2] の中で getInitData[3] や runtimeContext[4] を使うと型推論が効かず、型安全でないコードになるステップがワークフロー定義に依存し、ワークフローの変更や他のワークフローでのステップの再利用が...
1ヶ月前

DataformでBigQueryのPython UDFを管理する事例紹介
atama plus techblogのフィード
こんにちは、atama plus でデータエンジニアをしている kumewata です。先日プレビュー版が公開された BigQuery の Python UDFを、Dataform 経由で利用してみたので紹介します。 背景弊社で利用している BigQuery 上で iCal 形式で保存しているデータ(弊社プロダクトで利用しているスケジュール機能で利用)があり、実際の日付のデータの変換にしたものを BigQuery 上の Warehouse/Mart で提供したいと考えていました。そのために iCal データを扱えるライブラリを利用したく、たとえば Python だと dateu...
1ヶ月前

QA主催!エンジニアとともに品質文化を育てるテスト勉強会の舞台裏
atama plus techblogのフィード
こんにちは!atama plusでQAエンジニアをしています、池上です。「エンジニアを巻き込んで品質について考えたいが、どう働きかければ良いかわからない」そんな悩みを抱えるQAエンジニアの方もいらっしゃるのではないでしょうか。この記事では、エンジニアを巻き込んで開催した「テスト勉強会」について、企画の背景から参加者のリアルな声までご紹介します。開発チーム全体で品質向上を目指したい方のヒントになれば幸いです。 1. なぜ「テスト勉強会」を開催したのか?QAチームが大切にしていること本題に入る前にatama plusのQAチームが大切にしていることを紹介させてください。...
2ヶ月前

【CircleCI】モノレポでpath-filteringを使って既存のデプロイフローを維持したまま無駄なデプロイを減らす
atama plus techblogのフィード
atama plusのtakeiです。この記事では、モノレポ構成においてCircleCIのpath-filteringを使って既存のデプロイフローを変更せずにデプロイを効率化する方法について紹介します。 背景と目的私たちの開発中のプロジェクト※では、frontend、backend、infrastructureがすべて1つのリポジトリで管理されているモノレポ構成を採用しています。(※新規プロダクトで、エンジニア2名の最小限の開発チームです)開発初期はCIの最適化が十分に行われておらず、たとえばfrontendのコードにわずかな変更を加えただけでも、backendやinfrast...
2ヶ月前

TSKaigiで登壇デビューしました 〜過去の自分に伝えたい登壇して良かったことと準備の流れ〜
atama plus techblogのフィード
はじめにこんにちは。atama plusのtakei(@yutake27)です。先日、TypeScriptのカンファレンス「TSKaigi2025」のライトニングトーク(LT)枠で人生で初めて登壇しました。これまで小さなイベントでさえ現地参加の経験がほとんどなく、登壇は自分には縁がないと思っていました。そんな自分が、なぜ登壇することになったのか、どんな準備をして、どんな経験を得たのかをまとめます。かつての自分のように「登壇はハードルが高い」と感じている方の参考になれば幸いです。参考までに当日の登壇資料はこちらです。TypeScriptのdeclaration mer...
3ヶ月前

Standalone時代のIonic Angularでion-iconをスマートに扱う!
atama plus techblogのフィード
Standalone時代のIonic Angularでion-iconをスマートに扱う! 〜ion-icon-angular-standaloneのご紹介〜atama plusという教育の会社でエンジニアをしている@ippeiukaiです。Ionic AngularのStandalone構成が導入され、コンポーネントの取り扱い方が大きく変わりました。特に、ion-iconコンポーネントに関しては、使用するアイコンのSVGデータを事前にロードし、ioniconsライブラリのaddIcons関数を使って登録する必要が生じ、以前のようにname属性を指定するだけでは表示されなくなりまし...
3ヶ月前

useFormでバリデーション制御に悩んだ話 〜setErrorとisValid〜
atama plus techblogのフィード
TL;DRsetErrorするだけではisValidが変わらない素直にregisterやControllerのonChangeを使おう はじめにReact Hook Form(以下 RHF)は、軽量で直感的に使えるフォームライブラリとして、多くのReactプロジェクトで利用されています。実際に使ってみると、register や Controller を通して簡単にバリデーションを設定でき、フォームの状態も formState を通じて一括管理できるので非常に便利です。しかし、実際の開発では「ちょっとした例外的なケース」にぶつかることがあります。今回私が遭遇したのはその...
3ヶ月前

作って理解するModel Context Protocol (MCP) Server
atama plus techblogのフィード
はじめにModel Context Protocol (MCP) は、AIモデルとユーザーのデータソースを安全に接続するための規格です。この記事では、MCP Serverの実装を通じて学んだ、MCPの技術概要や通信の仕様について解釈してみます。 MCPの技術的概要と通信インターフェース MCPとは何かModel Context Protocol (MCP) は、AIアシスタントと外部データソース・ツールを接続するための標準プロトコルです[1]。ClaudeやCursorなどのAIアシスタントが、ユーザーの許可したデータにアクセスできるようにする橋渡し役を担います。...
5ヶ月前

langchain/openevalsでLLM-as-a-judgeの基本を理解
atama plus techblogのフィード
はじめにLLMアプリケーションを本番環境にデプロイする際、従来のソフトウェアテストと同様、評価は非常に重要な役割を果たします。適切な評価を行わなければ、モデルが期待通りに動作しているかどうかを確認することができません。今回、LangChainが提供するopenevalsというライブラリを使用して、複数のLLMモデルの出力を比較評価する方法を試してみたので書き留めておきます。 LLM-as-a-judge とはLLM-as-ajudgeとは、他のAIモデルのパフォーマンスを含め、様々なタイプのコンテンツ、反応、パフォーマンスを評価するためにLLMを使用することを指します。...
5ヶ月前

atama plusのSREチーム:EdTechサービスを支えるインフラの舞台裏と採用情報
atama plus techblogのフィード
こんにちは! atama plusの技術広報チームです。この記事では、現在採用を強化中[1]のSREチームについて詳しくご紹介します。atama plusは、AIを活用した教育サービスを提供するEdTech企業です。塾・予備校向けBtoB事業の進化、「atama+塾」フランチャイズ事業の立ち上げ、大学への高大接続プログラムの提供など、新たな取り組みを次々と展開しています。このような事業拡大と増加するユーザーに対応するため、スケーラブルで可用性の高いクラウドインフラの設計・実装・運用を担当するSREエンジニアを募集しています。私たちと一緒に、教育の未来を支えるインフラを構築しませんか...
7ヶ月前

2024年のatama plus × Angular
atama plus techblogのフィード
atama plusでプロダクトのWebエンジニアをやっている @rettar5 です。今日はアドベントカレンダー最終日ということで、この1年で行ったatama plusでのAngularに関する取り組みをまとめながら振り返ります。 atama plusとAngularatama plusは「教育に、人に、社会に、次の可能性を。」というミッション実現に向かって活動しているスタートアップです。2017年の設立からAI教材「atama+」というプロダクトを作っており、「塾のタブレットにアプリをインストールして学習をしてもらう」という体験の実現のため、Angular x Ionicと...
8ヶ月前

新機能向けのダッシュボード開発で学んだデータ可視化のプロセス
atama plus techblogのフィード
!この記事は atama plus アドベントカレンダー 2024 12 月 20 日の記事です。 はじめにこんにちは、atama plus でデータエンジニアをしている kumewata です。最近リリースした AI ステップ解説という新機能のダッシュボードを作ることになり、試行錯誤しながら開発を進めました。その後社内向けのドキュメントとしてダッシュボード実装までの全体のプロセスを整理していたのですが、せっかくアドベントカレンダーのシーズンなので外部向けの記事として書いてみることにしました 🙋https://prtimes.jp/main/html/rd/p/000000...
8ヶ月前

エンジニア組織のナレッジマネジメントにチームで立ち向かう
atama plus techblogのフィード
この記事は atama plus Advent Calender 2024 12月19日の記事です。みなさんのエンジニア組織では、開発にまつわる様々なナレッジの属人化問題であったり、ドキュメントの継続的メンテナンスやナレッジシェアの促進など、ナレッジを取り巻く諸問題にどのように対応されているでしょうか?atama plus ではこれら様々な問題に対して「ナレッジマネジメント」という軸で横断的に腰を据えて取り組み続けるために、エンジニア組織の中に有志で立ち上がったナレッジマネジメント組織が存在します。この記事では atama plus のナレッジマネジメント組織の目的、スコープ、活...
8ヶ月前

QAチームミッションのアップデート 〜進める上での工夫と学び〜
atama plus techblogのフィード
こんにちは!atama plusでQA Engineering Managerをしている池上です。atama plus Advent Calendar 2024の12月18日の記事になります!ミッションの策定のような抽象的なテーマを扱う際、どうやって全員を巻き込み、共通認識を形成するか悩んだことがある方もいらっしゃるのではないかと思います。本ブログでは、QAチームがミッションをアップデートするプロジェクトで実際に取り組んだプロセスと工夫を紹介します。Engineering Managerなどチームミッション/ビジョンなどを検討する方の参考になれば幸いです。 背景:ミッションア...
8ヶ月前

期間選択UIを統一するために自社デザインシステムにコントリビュートした話
atama plus techblogのフィード
はじめに!この記事は atama plus Advent Calender 2024 12月17日の記事です。こんにちは!atama plusの@sekkenです。今回は、atama plusで運用しているデザインシステムについてご紹介します。 背景atama plusでは、生徒・先生には「一貫した体験」のために、プロダクト開発チームには「意思決定の速度と開発効率、精度向上」を目指して、uniformというデザインシステムを開発・運用しています。汎用的なコンポーネントを用意しておくのではなく、関心が似たコンポーネントが増えてきたら後からデザインシステムのコンポーネン...
8ヶ月前

bug bashの型化と工夫
atama plus techblogのフィード
こんにちは!atama plusでQAをしている吉原です。「atama plus Advent Calendar 2024」12月16日の記事になります。 はじめにatama plusでは、大きな新機能開発がある度にQA主導でbug bash(バグバッシュ)というイベントを開催してきました。回数を重ねるごとに知見が溜まり、遂には型化され、結果誰でも開催できる仕組みになってきました!今回そんな型化されたbug bashについて紹介したいと思います。この記事は、bug bashに興味がある方や、これから開催を考えている方の参考になれば幸いです。 bug bashとはbug ba...
8ヶ月前

Playwrightを導入した時の話
atama plus techblogのフィード
はじめにはじめまして。atama plus で QA Engineering Manager をやっていますItoです。atama plus Advent Calendar 2024の12月13日の記事になります!昨年のアドベントカレンダーで池上さんから開発プロセス内でPlaywrightを活用して自動化を進めている話として、弊社でテスト自動化をどのように開発プロセスに組み込んでいるのかについて紹介しました。今回はそこから少し時間を遡り、テスト自動化の推進に舵を切り、Playwrightを導入した時の話をしたいと思います。これからテスト自動化を導入したいと考えている方の参考に...
8ヶ月前

ビジュアルリグレッションテスト導入での学び
atama plus techblogのフィード
はじめにこんにちは、atama plusでQAをしているAchanです。atama plus Advent Calendar 2024の12月12日の記事です。昨年弊社QA @ikegagagamiが紹介しました「開発プロセスでPlaywrightを活用して自動化を進めている話」でチャレンジ中でしたビジュアルリグレッションテストでの失敗や成果などをご紹介出来ればと思います。Playwrightでビジュアルリグレッションテストを導入してみたいといった方の参考になれば幸いです。本記事では以下の構成でご紹介していきます!ビジュアルリグレッションテスト導入の経緯検出すべき不具...
8ヶ月前