Skip to content
View Tsuchiya2's full-sized avatar

Block or report Tsuchiya2

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
Tsuchiya2/README.md

Tsuchiya Yuji

Backend Engineer | AI-Driven Development | Ruby on Rails / Go

About Me

Ruby on Rails を軸にしたバックエンドエンジニアです。

何かを作るとき、指標を取り違えないことを大事にしています。 Catchup Feed は技術記事のキャッチアップ用ですが、最適化したいのは「配信した記事数」ではなく「理解が定着したか」。そのために記事をラジオ番組に変換して、手が塞がる時間でも耳から入る形にしました。 目的から逆算して、要らない複雑さは削る——そういう設計が好きです。

Tech Stack

Backend

Ruby Rails Go Python PostgreSQL MySQL

Frontend

TypeScript React Next.js

Infrastructure / DevOps

Docker GitHub Actions Cloudflare Tailscale Raspberry Pi

AI / LLM

Claude Gemini Ollama Groq VOICEVOX


Featured Projects

catchup-feed

技術情報を毎朝10〜15分のラジオ番組に自動変換して届けるパーソナルポッドキャストシステム(実稼働中)

RSS・YouTube・ポッドキャストから技術情報を自動収集し、LLMで要約 → 台本生成 → VOICEVOXで音声合成した番組を、毎朝ポッドキャストアプリに配信するシステム。「配信された記事数」ではなく理解の定着を最適化目標に据え、育児等で手と目が塞がる細切れ時間でも耳から消化できる形に再設計しました。クイズ生成とspaced repetitionによる学習ループも音声に注入しています。

項目 内容
バックエンド Go 1.26(単一モジュール、server / worker / radio の3バイナリ構成)
フロントエンド Next.js 16 + TypeScript (Strict) + TanStack Query(PWAダッシュボード)
AI / 音声 要約: Gemini → Groq → Ollama フォールバック連鎖 / TTS: VOICEVOX / 文字起こし: faster-whisper
インフラ Raspberry Pi 5 + M3 Mac(夜間バッチ)+ Cloudflare Tunnel + Tailscale + Vercel
ダッシュボード pulse.catchup-feed.com

技術的なポイント:

アーキテクチャ:

  • 単一ユーザーに右サイズした設計(初期版のマイクロサービス・gRPC・Prometheus を意図的に撤去し約3.8万行を削減)
  • 縮退許容設計 — 「壊れない」より「壊れても翌日勝手に戻る」(Mac不在→エピソード欠番、無料API全滅→ローカルLLM、TTS障害→当日スキップ)
  • 固定費ゼロ運用 — LLMは無料枠→ローカルのフォールバック、ホスティングは自宅Pi 5 + Cloudflare Tunnel
  • プライバシー分界 — クラウドAPIに流すのは公開記事のみ、書籍・私的データはローカルLLM(Ollama)に限定

バックエンド:

  • RSS / YouTube / ポッドキャストのマルチモーダル取り込み + 書籍PDFのRAG取り込み(Python)
  • 理解定着の学習ループ — 放送記事からクイズを自動生成し、spaced repetition(3段ラダー)で復習を翌朝の番組に注入
  • トークン認証付きプライベートRSS配信(友人への限定配信、平文トークン非保存・404統一応答)
  • セキュリティ実装 — HttpOnly Cookie JWT・SSRF防御・XFF詐称対策のレート制限

フロントエンド:

  • OpenAPI仕様からの型自動生成によるEnd-to-End型安全性
  • ソース管理・友人/トークン管理・アクセスログ・学習トラッカーのPWAダッシュボード

開発プロセス:

  • Claude Codeのマルチエージェントオーケストレーション(親がタスク分解・裁定、実装エージェントとレビューエージェントを分離)で開発

📦 フロントエンド リポジトリ


EDAF

AIコード生成の品質を自動評価・保証する7フェーズ開発フレームワーク

Claude Codeのサブエージェント機能を活用し、9つの専門エージェント + 40の評価者による多層的な品質ゲートを実装。AIが生成したコードを自動的に評価・改善するサイクルを構築しました。

項目 内容
技術 Claude Code Subagent, Prompt Engineering
特徴 7フェーズ品質ゲート、自己適応型アーキテクチャ(技術スタック自動検出)
対応 11言語、50+フレームワーク
実績 Rails 6.1→8.1 + webpacker→esbuild移行を約1.5時間で完了(196ファイル変更、JSバンドル76%削減)

技術的なポイント:

  • 並列評価によるパフォーマンス最適化
  • サンドボックス実行による安全なコード評価
  • フィードバックループによる自動修正・再評価
  • 3,500行以上の設計書を自動生成

📝 EDAFの解説記事(Qiita) 📝 EDAFでRails 6.1→8.1アップグレード実践記事(Qiita)


ReLINE

休眠グループチャットを活性化するLINE Bot

コロナ禍で連絡が途切れがちなグループに、かわいい猫のマスコットが会話のきっかけを自動配信。LINE Messaging APIを活用したイベント駆動アーキテクチャで実装しました。

項目 内容
技術 Ruby 4.0.5 + Rails 8.1.3 + MySQL 8.0
連携 LINE Messaging API
テスト RSpec + Selenium(100%カバレッジ)
フロント Hotwire (Turbo + Stimulus) + Bootstrap 5

技術的なポイント:

  • サービスオブジェクトによる責務分離(Fat Model/Controller回避)
  • ストラテジーパターンによる動的イベントハンドラー選択
  • Rack::Attackによるレート制限・ブルートフォース対策
  • Brakeman・bundler-auditによるセキュリティ監査

Links

Qiita X

Popular repositories Loading

  1. evaluator-driven-agent-flow evaluator-driven-agent-flow Public

    A framework-agnostic system for AI-powered code generation with automatic quality gates. Self-adapting workers and evaluators for any language/framework.

    Shell 1

  2. cat_salvages_the_relationship cat_salvages_the_relationship Public

    LINE bot service that revitalizes dormant group chats with friendly cat messages - Built with Ruby on Rails 8 and LINE Messaging API

    Ruby

  3. catchup-feed-backend catchup-feed-backend Public

    毎朝10分の音声ラジオ番組をポッドキャスト配信する個人向け学習システムのバックエンド(Go / Raspberry Pi 5 / VOICEVOX)

    Go

  4. Tsuchiya2 Tsuchiya2 Public

  5. catchup-feed-frontend catchup-feed-frontend Public

    毎朝の音声ラジオ番組を配信する個人向け学習システム catchup-feed の運用ダッシュボード(Next.js PWA)

    TypeScript