本記事では、Slackでの議論を簡単にRedmineチケット化する仕組みを紹介します。特定のスタンプを押すだけで、Slack投稿をAWS Step Functions経由で処理し、AWS Bedrockで要約・整形した後、Redmine APIを使って自動的にチケットを作成します。構成にはSlack…
本記事では、2025年に急速に進化した Vision Language Model (VLM) の動向を紹介します。画像をテキストとして理解するだけでなく、物体検出やOCR、セグメンテーションなど、従来は専用モデルが必要だったタスクが Qwen2.5-VL、Gemini 2.5/3.0、Qwen3-VL な…
本記事では、Electron ForgeでビルドしたAppX形式のファイルに対して、ハードウェアトークンを用いたコード署名を行う方法を解説します。Electron Forgeは標準で.pfx証明書による署名を前提としており、ハードウェアトークン署名はサポートされていません。…
この記事では、24卒エンジニアが個人開発でiOSアプリとGo製BFFをゼロから構築した経験を紹介しています。テーマは「AI駆動開発」。AIを単なるコード生成ツールではなく、開発パートナーとして活用し、SwiftによるiOSアプリ開発、Goによるバックエンド構築、T…
本記事では、LLMアプリケーション開発におけるプロンプト管理のための構造化言語「POML」について調査しました。 POMLは、テンプレートエンジンによる柔軟な記述、画像入力対応、Tool呼び出しなど強力な機能を備えています。しかし、Structured Outputsのサ…
本記事では、AWS LambdaでLLMのバッチ処理を安定運用するためのリトライ戦略について解説しています。 まず、レート制限エラー(429)、Lambdaの実行時間制限、状態管理の複雑さ、コスト効率といった典型的な課題を整理し、その解決策として指数バックオフ+…
本記事では、OPTiM Collaboration Portalの開発チームが、従来Excelで管理していたテスト仕様書をYAML形式で管理する仕組みに移行した取り組みを紹介しています。OpenAPIの構造を参考に、機能ごとにYAMLファイルを分割し、$refでインクルードする設計を採用…
本記事では、15年の歴史を持つモノリシックな Ruby on Rails サービス「OPTiM Biz」における 10万超の単体テスト運用の工夫を紹介しています。 テスト総実行時間は約17時間に及び、全テストを毎回実行するのは非現実的。そのため、以下の取り組みを実施: 50…
本記事では、LiveKit DevDay 2025で発表された「Agent Builder」について紹介しています。Agent Builderは、ブラウザ上でコード不要で音声AIエージェントを構築できるツールで、システムプロンプトやモデル選択を行うだけで数分でエージェントを作成可能です…
本記事では、Go 1.25で実験的に追加され、1.26で正式導入が期待されるencoding/json/v2の変更点を解説しています。公式テストコードv2_diff_test.goを参考に、v1との違いを15項目にわたり紹介。主な変更点は以下の通りです: JSONタグの大文字小文字の扱い:…
本記事では、OPTiM BizのRailsバージョンアップ作業中に発覚した「英語環境でCSVインポートが失敗する」という不具合の原因究明から、OSSへのコントリビュートに至るまでの過程を紹介しています。調査の結果、問題はCSV gemではなく、i18n gemのスレッドロー…
本記事では、React + Vite構成のSPAで利用しているTanStack Routerを基盤とした新しいフルスタックフレームワーク TanStack Start を紹介しています。TanStack Startは型安全で開発者体験を重視し、クライアントサイドファーストの設計思想を持つ点が特徴で…
はじめに こんにちは。私は神戸大学2年の山田と申します。 本記事は、OPTiM TECH BLOG Advent Calendar 2025 Day 3 の記事です! 今回はKOBEインターンシップ・就業体験プログラム(ジョブ型就業体験)に参加し、インターン生として働いた様子を紹介します。 …
本記事では、OPTiM Contract、OPTiM 電子帳簿保存、OPTiM 文書管理の開発を担当する新卒エンジニアが、機能開発の全工程でAIをどのように活用したかを紹介します。要件定義・設計・実装の3つの事例を通じて、AIを「任せっきりにせず、自分の成長につながる使…
本記事では、フロントエンド開発でよくある「横スクロールができない」「コンテンツが親要素を突き抜ける」問題を、Flexbox特有の仕様(min-width: auto)を原因として解説します。 実際の事例として、MUIのStackコンポーネントを使ったFAQページ実装で発生…