ENECHANGE Developer Blog

ENECHANGE開発者ブログ

2025-01-01から1年間の記事一覧

Goの暗黙的なインターフェース原則はクリーンアーキテクチャと矛盾するのか?

はじめに こんにちは、ENECHANGEエンジニアの木原です。 今回はGoによるクリーンアーキテクチャの実装を見ていて、疑問に感じたこと、そこから得た気づきを共有したいと思います。 Goの実装は以下のリポジトリを参考にしました。 github.com 結論 クリーンア…

クライアント案件単位で開発を管理する「プロジェクト駆動開発」ワークフロー

はじめに 弊社では複数のクライアントが利用するAPIを開発・運用しているのですが、たまにこんな課題に直面することがあります。 「この機能、どのクライアントの要望で追加したんだっけ?」 「なぜこの設計判断をしたのか、当時のSlackを探しても見つからな…

AWS Glue + Iceberg で分析基盤を構築し、電力データを取り込んでみる

はじめに データレイクのテーブルフォーマット Apache Iceberg というものがあると知りました。 Icebergは、大規模な分析テーブル向けの高性能フォーマットです。IcebergはSQLテーブルの信頼性と簡便性をビッグデータにもたらすと同時に、Spark、Trino、Flin…

CloudFront Functionsの新機能 rawQueryString() がマネコンだと空になる件(仕様でした)

「AWS Community Builders Advent Calendar 2025」17日目の記事です。 VPoTの岩本 (iwamot) です。 2025年11月、CloudFront Functionsで rawQueryString() というヘルパーメソッドが使えるようになりました。 aws.amazon.com 名前のとおり、リクエストURLの…

Devin に Buildkite MCP を設定して自律的に CI 失敗の修正をしてもらう

Devin を使った開発において、CI の結果確認は重要なフィードバックループの一つです。 しかし、通常 Devin は CI の失敗の検知まではしてくれますが直接 Buildkite の情報にアクセスして CI の失敗原因を確認するところまではやってくれません。 CI の情報…

2025年版 Git最新情報まとめ ― last-modifiedからRust導入まで

はじめに ENECHANGEでバックエンドエンジニアをしている白坂です。 日頃Gitを使っていると、「とりあえず動くからOK」で済ませてしまい、 新機能やアップデートを追わなくなりがちですよね。 今回、2025年のリリースノートを確認してGitの更新内容をキャッチ…

NestJS入門

こんにちは、エンジニアの清水です。 普段はフロントエンドを中心に開発していますが、最近はNestJSを使ったバックエンド開発にも携わるようになりました。 少し触ったことはあったものの、業務で本格的に使うのは初めてだったため、学んだことを整理してみ…

AIエージェント運用費がほぼ半減した、マルチエージェントへの移行事例

「AIエージェント構築&運用 Advent Calendar 2025」1日目の記事です。 こんにちは、ENECHANGE VPoTの岩本 (iwamot) です。 AIエージェントの運用費、なるべく抑えたいですよね。 もし複数ステップを処理させているシングルエージェントがあれば、マルチエー…

SLA要件を満たすディザスタリカバリ構成 —— 東京-大阪リージョン間の切り替え設計

ENECHANGE SREチームの杉田 青哉です。 今回は、SLA要件を満たすために実施したマルチリージョンでのディザスタリカバリ対応について紹介します。 東京リージョンで運用しているシステムを、障害時に大阪リージョンへ切り替える構成を構築しました。 戦略の…

Claude Codeの会話を体系的に管理する仕組みを作ってみた

初めまして。10月より ENECHANGE にジョインした藤巻です! Claude Codeには標準でセッション管理機能が搭載されており、過去の会話を再開できます。しかし、日常的に使う中で「わかりやすい名前でトピックを管理したい」「Markdownで読みやすく整理したい」…

octocovでコードカバレッジ計測を始めよう ー 複数リポジトリでも簡単管理!

ENECHANGEのSRE Infraチームの id:tockeysan です。 先日のAIリレーブログではClaude Codeを利用してOSSを読み、弊社に合ったoctocovの使い方を模索した話をしました。 CluadeCodeでOSSを読み解く - 導入時のエラーに立ち向かう - ENECHANGE Developer Blog …

Claude Code on the webを使ってみました

おはようございます。こんにちは。こんばんは。 システム開発部 エンジニアの川野邉です。 私たちのチームでは、AIエージェントとして「Devin」を利用しています。 そのため今回、同じくAIがコードを生成・修正まで支援してくれる Claude Code on the web が…

既存のRailsプロジェクトにSorbetのRBSインラインコメントによる静的型付けを導入するまでにしたこと

こんにちは、エンジニアの細木です。 最近は寒くなってきたので煮込み料理をたくさん作っています。 以前のAIブログリレーでAIエージェント活用のためにやってみたいことの一つに型の導入を挙げました。 今回、既存のRuby on RailsプロジェクトにSorbetによ…

ECSマネージドインスタンスにおけるイメージPullメカニズムの設定分析

ENECHANGE所属のエンジニア id:tetsushi_fukabori こと深堀です。 急速に寒くなってきた2025年10月13日の週にこの記事を執筆しています。皆さんはお健やかにお過ごしでしょうか。 私はというとつい最近勤続5年の休暇を頂いて、家族の犬と二人でキャンプ&登…

「JAWS FESTA 2025 in 金沢」登壇レポート —— 当日のQ&Aも採録

こんにちは、VPoTの岩本 (iwamot) です。 10月11日に「JAWS FESTA 2025 in 金沢」が開催されました。AWSのユーザーグループ・JAWS-UGによる、全国規模の交流イベントです。 ぼくは公募セッションに応募し、「これがLambdaレス時代のChatOpsだ!実例で学ぶAma…

Step FunctionsとAWS Batchによるバッチワークフロー構築の課題と対処例

ENECHANGE所属のエンジニア id:tetsushi_fukabori こと深堀です。 弊社テックブログではAIリレーブログが大盛況のうちに終わりました。 その直後の記事が私の人手による温かみに溢れた記事で良いのか不安ではありますが、書いていこうと思います。 今回は202…

AIエージェント時代の組織変革 - 60日間リレーブログ総集編

こんにちは、プロダクト開発統括部長の柏木です。 2025年7月1日から本日9月29日まで、約60日間にわたって実施された「AIエージェント活用リレーブログ」がついに完走しました。この間、様々な職種のメンバーがAIエージェントの利用体験を赤裸々に語ってくれ…

社内AIチャットボットがMCPで大幅進化 ―― OAuth対応でNotionやGitHubも利用可能に

こんにちは、VPoTの岩本 (iwamot) です。 AIエージェント活用リレーブログ、前回は水本さんの「問いがズレれば、AIは爆速で迷子になる」でした。ソフトウェア開発の場合、昨今話題の「仕様駆動開発」を取り入れてAIを迷わせないのがよさそうですね。 さて今…

問いがズレれば、AIは爆速で迷子になる

こんにちは、ENECHANGEで新規事業推進室の室長をしている水本です。 前回の草間さんの記事(「エクスペリエンス部長の挑戦!Cursorで実現した業務アプリPoC開発」)を読んで、AIエージェントの活用がより具体的で実践的な段階に入っていることを実感しました…

エクスペリエンス部長の挑戦!Cursorで実現した業務アプリPoC開発

ENECHANGE エクスペリエンス部長の草間です。 今回は、エンジニアの関与無しでCursorで業務アプリのPoC開発を行い、そのまま本格開発につなげた体験談を紹介します。 業務アプリを作らなきゃいけなくなった! ENECHANGE内では、次々に新規ビジネスが立ち上げ…

Claude Code GitHub Actionsを用いてエラーの初期分析効率化を目指す

こんにちは!ENECHANGE EV Devチームの片田です。 今回は、開発フローの効率化という観点から、Claude Code GitHub Actionsを活用したアラート分析の自動化について、実際に取り組んだ内容をご紹介します。 GitHubActionsのyamlファイルのサンプルや出力結果…

Devinをさらに活用するために今後試したいこと

こんにちは、Energy Marketing Devチームの細木です。 前回の記事では、Devinの導入から実践的なタスク実行までお話ししました。Devin's Machineの設定、クラスの細分化、Cursorとの使い分けなど、実際に取り組んだ改善策により、開発効率が向上したことをお…

テストコード作成の悩みをAIが解決!Cursorで半減した試行錯誤の時間

こんにちは、ENECHANGE QAマネージャーの黒澤です。 AIエージェント活用リレーブログ、前回の三輪さんの記事では「AIに任せきりにするのではなく、SOW(作業明細書)でAIを使いこなすことが重要」と話しがありました。この視点はとても大事で、AIの提案を疑う…

QAエンジニアがAIでテストケース作成を自動化するにはSOWを書かせてディレクションした話

こんにちは!2025年8月にPMからQAエンジニアへ職種チェンジし、日々奮闘中の三輪です。 前回の岩本さんの「ブログ記事51件の感想をAIエージェントに書かせる —— Strands Agentsでサクッと実現」という記事を拝読しました。 AIエージェントが書き手のこだわり…

ブログ記事51件の感想をAIエージェントに書かせる —— Strands Agentsでサクッと実現

こんにちは、ENECHANGE VPoTの岩本 (iwamot) です。 AIエージェント活用リレーブログ、前回は『AI時代だからこそ「正しい」判断を重ねよう』でした。ぼくが書いたものなので感想は控えますが、どなたかの参考になっていれば幸いです。 今回は、これまでのリ…

AI時代だからこそ「正しい」判断を重ねよう

こんにちは、ENECHANGE VPoTの岩本 (iwamot) です。 AIエージェント活用リレーブログ、前回は西岡さんの「AIエージェントでデータベースクエリ最適化を実現した体験談」でした。「AIツールの提案をそのまま使うのではなく、自分たちの状況に合わせて調整する…

AIエージェントでデータベースクエリ最適化を実現した体験談

Webアプリケーションの開発において、データベースのパフォーマンス問題は避けて通れない課題です。サービスが成長し、ユーザー数やデータ量が増加するにつれて、SQLクエリの最適化はますます重要になります。 現在私は、Claude Codeなどの生成AIツールを用…

Devinが最低限ワークするようになるまでにやったこと

こんにちは、Energy Marketing Devチームの細木です。 前回の福田さんの記事では、SlackからGoogleサイト公開までをAIエージェントで自動化するワークフロー構築プロジェクトについて読ませていただきました。Notion AI → Cursor → Googleサイトの連携により…

SlackからGoogleサイト公開まで!AIエージェントで実現する自動化ワークフロー構築プロジェクト

こんにちは!ENECHANGE エクスペリエンス部の福田です。 まず簡単に、私たちエクスペリエンス部についてご紹介します。 エクスペリエンス部は、ただ美しいものを作ったり、データを管理するのではなく、常に「問い」を持ち、仮説をつくり、手を動かして試し…

Kiroの思想をチャットだけでシンプルに実践してみた

はじめに こんにちは、ENECHANGEエンジニアの木原です。 最近、KiroやTsumikiといったAI支援型テスト駆動開発フレームワークが話題になっています。 これらのフレームワークは充実したスラッシュコマンドを提供していますが、小規模な実装においては機能過多…