カミナシ エンジニアブログ

株式会社カミナシのエンジニアが色々書くブログです

【脱PAT】local環境でのプライベートGoモジュールの利用にGitHub Appのデバイスフローが使える

突然ですが、あなたの.netrcや環境変数に、ghp_...から始まる”あの文字列“、そっと忍ばせていませんか? そう、GitHubのPersonal Access Token (PAT) です。 「自分しか使わないから」「有効期限なしが一番ラクだから」しかしその”魔法の文字列”は、開発効率…

Notion MCPで「ヒアリング→チケット」自動化はじめました

TL;DR PMのチケット作成~整理業務をNotion MCP x Claudeで約30分→5分程度に短縮できた チケットが自動生成されることで、一次情報収集にリソースを再投下し意思決定の質が上がり、実装時のコミュニケーションコストも低くなる Notion MCPの仕様で、API call…

生成 UIでユーザーに最適化されたデザインを魅せる。そんな未来の先行体験会。

プロローグ 河野「このTODOアプリ便利やなぁ」 河野「でも、なんかシンプルすぎて退屈やねんなぁ。たまにTODO忘れるし...」 河野「もっとド派手なハリウッド映画みたいなデザインで緊迫感だしてくれや!」 アプリ「わかりました。もっと激しくてインパクトの…

Next.jsのコンパイラから知るServer Actionsの完全解析 ~セキュリティ上の注意点も含めて~

はじめに StatHackカンパニーの渡邉です。 私の普段の取り組みをこちらで紹介しているのでこちらもどうぞ。 note.kaminashi.jp 私たちKaminashiでは、さまざまなプロダクトにNext.jsを採用し始めています。 今回のブログではNext.jsの最も特徴的な機能の一つ…

AIは励まされると頑張れるらしいので、いろんな方法で奨励してみた。

プロローグ 2025/05/22 Claude 4 リリース後、多くの人間が一段階未来へきたと感じていることだろう。 今まで超えられないと感じていた壁を超えたような感覚がある。 dd 更に Claude 4 を、LLMを使いこなしたい。そう思い Claude 4 プロンプトエンジニアリン…

【AWS Jam 1位!】今年も AWS Summit Japan に参加してきました

2025/6/25(水)、6/26(木)の2日間、幕張メッセで AWS Summit Japan が開催され、弊社から今回は CTO の[原トリ](https://x.com/toricls)を含む計7名のメンバーが参加してきました! 様々な学びや発見があるイベントでしたので、ぜひ当日の雰囲気をお伝え出来…

JavaScript で Wasm 使ってるなら要注意! そのメモリ、本当に解放されてますか?

数ヶ月前、画像処理ライブラリ OpenCV.js を使って Web カメラの映像をリアルタイム処理するプロトタイプを作っていたときのことです。 OpenCV.js は C++ で書かれたコードを WebAssembly(Wasm) にコンパイルして作られており、Wasm ならではのブラウザ上…

ブラウザで“サクサク”AI推論!!― Wasm × C++ による画像処理

こんにちは、Kaminashi StatHackカンパニーの渡邉健です。 初めてエンジニアブログを書いてみます。 以下のリンクに普段の取り組みを書いているので興味があれば見てみてください。 AI というテクノロジーを現場 SaaS でどう実現するか 〜AI チームのアプリ…

Prometheusのメトリックタイプを徹底解説!使い分けでオブザーバビリティを高めよう

カミナシの認証認可ユニットでソフトウェアエンジニアをしているトモ=ロウです。 早速ですが皆さんPrometheusはご存知ですか? Prometheusは、システムメトリクスの監視に特化したオープンソースのモニタリングシステムです。時系列データを収集・保存し、強…

頑張りすぎず、PlaywrightのCI実行時間を短縮した話

カミナシのソフトウェアエンジニアisanaです。 カミナシレポートの開発に携わっています。 私たちのチームでは、Webアプリケーションの品質担保のため、Playwrightを用いたブラウザテストを実装し、GitHub Actionsで実行しています。しかし、このCIプロセス…

TypeScriptの"いま”を追う、TSKaigi 2025参加記

まえがき はじめまして!カミナシでソフトウェアエンジニアをしている shimmy(@naoya7076) です。 カミナシは 2025年5月23・24日に開催された「TSKaigi 2025」にゴールドスポンサーとして協賛し、私は現地で参加しました。 各登壇の内容やトーク内容の詳細は…

Branded Typeから小さく始める型安全なエラーハンドリング

はじめに TypeScriptで開発していると、エラーハンドリングの難しさに直面することがあります。 定番のResult型やEither型などの素晴らしいアプローチもありますが、これらは導入コストが高く、チーム全体に浸透させるのが難しいこともあるでしょう。 本記事…

Immer はどのように実装されているか

はじめに こんにちは。カミナシでソフトウェアエンジニアをしている tokuse(@stomy_13) です。 私が所属するチームが開発している現場帳票システム『カミナシ レポート』では、一部のアプリケーションで状態管理ライブラリの Zustand を使用しています。併せ…

Figma Dev Mode MCP Server 調査

こんにちは!カミナシ プロダクトデザイナーの高橋です。なぜかエンジニアブログに書いてみます。 Figma が公式に MCP Server を提供しましたね!あくまでベータ提供ですが、使ってみて、できることや特性などを調べてみた簡単なまとめを書いてみました。 he…

怪奇?スケールアウトするとパフォーマンスが落ちるデータベース

こんにちは。ソフトウェアエンジニアの古屋です。データベースのメトリクス、見てますか?私のチームが開発運用を担当する『カミナシ レポート』では Amazon Aurora MySQL をメインのRDBMSとして利用しています。この Aurora MySQL について少し課題がありま…

属人化とリスクからの脱却! ドメイン & DNS レコード管理をゼロから再設計した話

これまで属人化や手作業に頼った運用が続いていたことで、セキュリティリスクやメンテナンスの難しさが表面化していました。今回、専用の AWS アカウントを設けてすべてのドメインを集約し、Terraform によるコード管理を導入することで、安全性と運用の透明…

マルチプロダクトのセキュリティを担保する Production Readiness Check のススメ

どうもセキュリティエンジニアリングの西川です。禁酒しています。誘惑多い GW を超えたので勝ったも同然です。とはいえ、お酒は飲まずとも酒の場は好きなのでお気軽に誘っていただけると嬉しいです。 さて、今日はカミナシで去年より実施している Productio…

フロントエンド API コール時のエラーハンドリングを軽く整理(Fetch API・typescript-fetch・TanStack Query)

カミナシのソフトウェアエンジニア佐藤です。カミナシレポートの開発に携わっています。 フロントエンドのエラーは「画面リロードやブラウザ再起動で復旧できる(かもしれない)」「クラッシュしてもユーザーの端末に閉じる」などの理由から、バックエンドよ…

開発チームの中でセキュリティを育てる - セキュリティエンジニア派遣の試み

どうもセキュリティエンジニアリングの西川です。JAWS DAYS 2025 の帰路でこのブログを書いています。私は空港でブログを書く確率が非常に高いです。なぜか捗るんですよね。 さて、カミナシでは昨年からセキュリティエンジニアを二人追加で採用することがで…

助けて! CloudWatch Logs のコストが急上昇!! ログ管理の最適化でコストを 1/3 にした話

AWS

カミナシ ソフトウェアエンジニアの mina(@yoiyoicho)です。このブログでは、私が所属する「カミナシ ID」開発チームにおいて実施した、インフラコストの最適化施策について紹介します! 「カミナシ レポート」の認証機能移行によりインフラコストが増加 …

良いReactを書くことは凡事徹底だと考えている話

カミナシで、Webフロントエンドエンジニアをしている osuzu です。 これまでフロントエンド専門外のエンジニアからReactを学ぶ良い方法やお勧めドキュメントを聞かれる度に、 公式ドキュメント のリンクを貼る日々を過ごしてきましたが、何かすごい上達方法…

AWSにおける送信者制約付きトークン実現の一検討

この記事ではmTLS通信を行うことのできるリソースに制約のあるAWSにおいて、OAuthの送信者制約付きトークンをどのように実現するか検討しました。

なぜ、安易に「スクラムで開発します」と言わなかったのか? - 結果整合的アジャイルを目指す開発

プレイングマネージャー型のEMをしています、鈴木(@szk3)です。 今回は、私たちのサービスチームが新規プロダクト開発を始めるにあたって「スクラムを導入しなかった」経験について共有します。 このタイトルだけを見ると、スクラムに対して否定的な印象を…

「チーム全体で品質を考える」文化づくりの第一歩

1. はじめに こんにちは。QAエンジニアとして働いている市川です。 今回は、私が所属しているカミナシ設備保全サービスチーム(以下サービスチーム)で「チーム全体で品質を考える文化づくり」を進めるために行った取り組みについて紹介します。 チーム構成…

【AWS re:Invent 2024】Amazon Q のワークショップを受けたので Bedrock との違いを調べてみた

はじめに カミナシでソフトウェアエンジニアとしてサービスの開発をしている Taku (X アカウント) です。 帰国後の体調不良等あり公開が遅くなってしまったのですが、先日ラスベガスで開催された AWS re:Invent に2年振り2回目の参加をしてきた際のレポです…

Go の ORM はどのようにして AUTO INCREMENT で採番された値を取得しているのか? - MySQL 編

こんにちは。カミナシで「カミナシレポート」の開発を担当しているソフトウェアエンジニアの佐藤です。 カミナシレポートのバックエンドは Go で開発しており、データベースには Amazon Aurora MySQL を使用しています。また、データベースアクセスには ORM …

「しかたないスクラム」じゃないアジャイル開発を求めて

「しかたないスクラム」じゃないアジャイル開発を求めて はじめまして。1月からカミナシでエンジニアリングマネージャ(EM)を担当している @daipresents と申します。 カミナシでは新規事業開発のEMとして、絶賛全力で開発を支援しています。カミナシはとて…

AWS Security Hub の通知を Amazon Bedrock を使ってアクショナブルにしてみた

どうもセキュリティエンジニアの西川です。これがきっと私にとっての今年最後のブログです。今年の AWS re:Invent は自身の登壇があったのでほとんど楽しめませんでした。悔しいのでこうしてブログを帰ってきてからいくつか書いています。カミナシのメンバー…

Amazon CloudFront VPC オリジンの魅力と WAF バイパスからの脱却

どうもセキュリティエンジニアリングの西川です。風邪を引いたせいでしばらくお酒が飲めていません。クラフトビールが冷蔵庫に所狭しと配置されていて、一向に減らないため妻から以下略 Amazon CloudFront VPC オリジンが2024/11/20に発表されましたがもうみ…

Service Worker がページをコントロールし始めるタイミングを skipWaiting と clients.claim から理解する

こんにちは。カミナシでソフトウェアエンジニアをしております佐藤です。 先日、『カミナシ レポート 記録アプリ(Web)』の提供を開始いたしました。 現場帳票システム『カミナシ レポート』、マルチデバイスで記録ができるWeb版をリリース PWA として利用…