サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
ChatGPT
kaminashi-developer.hatenablog.jp
どうもセキュリティエンジニアの西川です。私は最近ポケモンカードの奥深さと難しさを痛感する日々を過ごしていますが、みなさんいかがお過ごしでしょうか。 カミナシでは社内セキュリティ競技会を実施しました。1年に1度開催しておりまして、気付けば今年で3回目です。初回は私一人で運営していましたが、2回目は二人、3回目は三人と徐々にセキュリティエンジニアリングに人が増え、問題の幅が増えたように感じています。 「こいつ競技会やる度にブログ書いてるな」と思われるかもしれないのですが、新しい発見というか自分なりに改めて社内セキュリティ競技会を実施する目的などを言語化したので、それについても共有できればと思っています。 社内セキュリティ競技会ってどんなもの? これは CTF(Capture The Flag) のようなものですが、社内で実施する良い点は下記のようなものがあります。 自分たちのサービスや環境のコ
こんにちは、「カミナシ レポート」の開発に携わっている furuya です。先日は Observability Conference Tokyo 2025 が開催され、盛況だったようですね。カミナシメンバーも登壇・参加しました!発表資料はこちらです。 speakerdeck.com この記事では、先日登壇したID管理・認証認可チームとは別で、「カミナシ レポート」の開発チームにおいてもここ数ヶ月間オブザーバビリティと向き合っていた、というお話ができればと思います。 課題 オブザーバビリティとはなんぞや?というところをそろそろちゃんと理解したいなと思い、書籍「オブザーバビリティ・エンジニアリング」を手に取りました。そこで理解したのは、高度に複雑で分散された現代のシステムにはモニタリングだけでは太刀打ちできず、その解決策としてオブザーバビリティを獲得する必要がある、ということです。 「ハンマー
「よし、これで完璧!」と思って実装したファイルアップロード機能。テストで同じファイルを2回選んだら...あれ?2回目は何も起きない。 // さっきまで動いてたはずなのに... <input type="file" onChange={(e) => { console.log('ファイル選択した!', e.target.files[0]); uploadFile(e.target.files[0]); }} /> 「え、なんでonChange動かんの...?」 Chromeのコンソールとにらめっこすること数分。これ、実は私の実装ミスじゃなくて、ブラウザの仕様に起因する面白い問題だったんです。今日は、この挙動を掘り下げて、Web標準とブラウザによる挙動の違いについて話してみたいと思います。 そもそもchangeイベントってさぁ 教科書的な説明を確認してみる MDNのchangeイベントのドキュ
はじめに カミナシでID管理・認証認可基盤を開発しているmanaty(@manaty0226)です。 先日行われたObservability Conference Tokyo 2025に出席し登壇しました。カンファレンス運営の方々本当にありがとうございました。当日までのサポートはもちろんのこと、登壇前の準備も丁寧に説明いただき、リラックスできるようお気遣いいただいたので楽しく登壇することができました。また、当日聴講していただいた方々、ask the speakerに来ていただいた方々や懇親会でお話させていただいた方々もありがとうございました。 本記事では登壇で話したことや、他のセッションを聴講した学びなどを残したいと思います。 登壇で話したこと 私のセッションでは、「オブザーバビリティと共に育てたID管理・認証認可基盤の歩み」というタイトルで、カミナシのID管理・認証認可基盤の立ち上げから
皆さん、こんにちは。カミナシの認証認可ユニットでソフトウェアエンジニアをやっているトモ=ロウです。 この記事は、共通ID基盤の構築について解説した連載記事の後編です。まだ前編を読んでいない方は、ぜひそちらからご覧いただくことをお勧めします。 前編はこちら: スタートアップがゼロから作る共通ID基盤:立ち上げ〜ID統合まで道のり(前編) 後編では、真の共通ID基盤を完成させるための最後の関門である、「ログインフローの統一」と「ユーザー管理機能の統一」への道のりをご紹介します。 「ID統合」というワードについて 「ID統合」という言葉は厳密な定義がなく、一般的には 複数存在する「認証処理」や「ユーザー管理機能」を一つの基盤に統合すること 同一ユーザーが持つ複数のユーザーアカウントを一つのユーザーアカウントに統合すること のどちらか、あるいはその両方を行うことを指すようです。本記事では前者の『複
アイキャッチ画像 「日本語で記述できるプログラミング言語「お抹茶」を作りながら学ぶインタプリタの仕組み」 はじめに プログラミング言語って自分で作れるの?と思っていた僕ですが、実はインタプリタ型の簡単な言語なら意外と作れることがわかりました。 今回は「お抹茶」という日本語で書けるプログラミング言語を作ってみたので、その実装方法を紹介します。 インタプリタ言語を作るのに必要な3つの要素 プログラミング言語を作るというと難しそうですが、実は基本的な仕組みは意外とシンプルです。インタプリタ型言語を作るには、以下の3つの要素が必要になります。 1. トークナイザー(字句解析器) ソースコードを「トークン」と呼ばれる最小単位に分解する部分です。例えば 定義 x = 10 というコードを ["定義", "x", "=", "10"] のような配列に変換します。人間が読む文章を単語単位に区切るようなイメ
こんにちは、エンジニアの倉澤です。普段は「カミナシ 教育」の開発に携わっています。 kaminashi.jp 今回は、10月に熱海で開催された開発合宿で Claude Codeの「サブエージェント」を教えてもらったので、それについて記事を書いてみました。 AIエージェントを使いこなすためのヒントになれば幸いです。 ちなみにこのブログは開発合宿の最後の仕事として合宿中に執筆しています。 合宿についてはきっと誰かが詳細なブログを書いてくれると思うのでそちらをお待ちください。 去年の合宿の様子はこちら👉 エンジニア開発合宿2024を開催しました! - カミナシ エンジニアブログ 1. 開発合宿のテーマとお題 今回の開発合宿は、「AIを上手に使いこなせるようになろう」的な目標が設定されていました。 お題としては、「AIエージェントのみを使って要件を満たすシステムを開発すること。人間は一切コードを
カミナシでエンジニアをしている osuzu です。 この半年、Claude Codeを利用しながらプロダクトディスカバリに参加する業務を中心に行ってきました。 カミナシは現場ドリブンというValue(行動指針)を大切にしていますが、私もエンジニアながら今月(2025年10月)だけで月6件の現場訪問に参加予定です! AIの進化が激しい現代に、エンジニアとしてがっつりプロダクトディスカバリに参加する経験を得られたため、そこから得られた学びについて共有させてください。 プロダクトディスカバリってそもそも何? 書籍『INSPIRED』の中では、プロダクトディスカバリの目的を「良いアイデアと悪いアイデアをすばやく切り離すこと」であり、「その成果は、検証されたプロダクトバックログである」と定義しています。 著者のCaganさんは、成功する製品ディスカバリーのために、製品チームが以下の4つの重要な問いに
「カミナシ 教育」と「カミナシ 従業員」チームの組織文化を作っていく こんにちは。「カミナシ 教育」と「カミナシ 従業員」という2つのプロダクトのマネージャを担当しております daipresents です。最近は息子が少年野球チームに入った影響で、土日が野球でつぶれたかわりに、炎天下でもグラウンドで6時間すごせるようになりました。ありがとう野球。 採用活動をしていると、「組織」や「文化」の質問をされます。やっぱり、自分が働くかもしれない環境について、誰もが気になるもの。 今回のブログでは、マネージャとしてがっつり入りこんでいる「カミナシ 教育」と、リリースに立ち会った「カミナシ 従業員」のサービスチーム(スクラムチームのようなもの)の範囲で、僕自身が考えている「組織」や「文化」のことを、自分の頭の整理しながらまとめてみようと思います。 現場に行く 調べてみると、カミナシの社員は年に3,60
カミナシのエンジニアリングチーム紹介 AIラベル検査 Lobster編 挨拶 カミナシのAIラベル検査を開発している、Lobsterチーム所属のかわりくです! 今回はカミナシのコードネーム文化と、AIラベル検査のプロダクト紹介、その技術スタックをカジュアルに紹介します。 カミナシのエンジニアリング組織の雰囲気を少しでも感じてもらえると幸いです! カミナシのサービスチーム 現在カミナシは複数サービスを提供しています。 カミナシの製品ラインナップ一覧、カミナシレポート, カミナシ教育,カミナシ従業員,カミナシ設備保全,カミナシID管理(社内向け)が展開されている エンジニアやデザイナーなどサービスチームに所属するメンバーは基本的に1つのサービスユニットに所属します。 サービスを横断する一時的なチームが組成される時もあります。 ID統合プロジェクトでは、IDニンジャーズ 🥷というチームが組成さ
されます。 おわりに カミナシでID管理・認証基盤を開発しているmanaty(@manaty0226)です。 CloudFrontのオリジンリクエストポリシーによって転送されるヘッダーの情報は初見では混乱することが多いです。特に、User-Agentの動作については以下のような記載があります。 CloudFront が User-Agent ヘッダーの値に基づいてオブジェクトをキャッシュするように設定しない場合、CloudFront は以下の値を指定した User-Agent ヘッダーを追加して、リクエストをオリジンに転送します。 User-Agent = Amazon CloudFront CloudFront は、ビューワーからのリクエストに User-Agent ヘッダーが含まれているかどうかに関係なく、このヘッダーを追加します。ビューワーからのリクエストに User-Agent ヘ
こんにちは、「カミナシ レポート」の開発に携わっている furuya です。 今回はみんなだいすき AWS Security Hub CSPM に対する、カミナシのサービスチームの向き合い方についてご紹介します。 AWS Security Hub CSPM とその通知用社内システムについて AWS Security Hub CSPM とは 今年(2025/6)の AWS re:Inforce にて、AWS Security Hub サービスの再構成がアナウンスされました。今までおなじみだった AWS Security Hub 相当のものは AWS Security Hub CSPM という名前に変わっています。CSPM とは Cloud Security Posture Management の略で、AWS リソースのセキュリティ設定がベストプラクティスから逸脱していないかを管理するサービ
はじめに こんにちは。カミナシでソフトウェアエンジニアをしているShimmy(@naoya7076) です。 皆さんは、仕様検討の段階で「本当に想定通り実装できるだろうか?」と不安になったことはありませんか? 実際に実装してみたら想定外の技術的制約にぶつかり、手戻りが発生した経験はないでしょうか? 本記事では、AIに仮実装をさせることで実装の難所を事前に発見し、より良い仕様へ素早く変更した実例をお話します。 背景 承認一覧画面のパフォーマンス問題 「カミナシ レポート」は現場で使う帳票をペーパーレス化し、従業員と管理者の生産性を高めるクラウドサービスです。従業員が記録した内容を、管理者が承認するための「承認一覧画面」というページがあります。 カミナシレポートの承認一覧画面 承認一覧画面では、歴史的経緯により初期表示時に「全件」取得していました。データ量の増加に伴い、初期表示に数分かかるケー
こんにちは。株式会社カミナシの認証認可ユニットで『カミナシ ID管理』の開発に携わっているトモ=ロウです。 「マルチプロダクトにおける共通ID基盤」というテーマは、これまで多くのSaaS事業者が向き合ってきた、あるいはこれから向き合っていくべき課題であることは間違いないでしょう。しかし、実際の移行プロジェクトを経験した開発者の視点からの記録は、まだまだ少ないと個人的に感じています。 本記事では、カミナシが単一プロダクトから複数プロダクトへと事業を拡大する過程で、いかにして共通ID基盤を構築し、既存システムを統合していったのか、その道のりとそこで得た知見を、ありのままにお伝えしようと思います。本記事が少しでも同じような課題に直面している、あるいはこれから向き合うであろう皆さんの参考になれば幸いです。 前編後編に分かれており、本記事は前編です。 はじめに なぜ、共通ID基盤が必要だったのか カ
どうもセキュリティエンジニアの西川です。このブログは Black Hat USA の帰りの道中で書きました。私は Hayabusa や Suzaku というファストフォレンジックツールを大和セキュリティというコミュニティで開発しており、その発表に行ってきました。 毎年 AWS re:Invent でラスベガスには行っています夏のラスベガスはとても暑かったです。 それはさておき、私は7月からセキュリティエンジニアリングのマネージャーをしています。 だからというわけではないのですが、私が普段意識していることを最近メンバーに共有することが多くなってきました。 それは言うなればセキュリティはビジネスと密接に関わっているということであり、それを踏まえるためには現状だけを見ていてはいけないということです。 セキュリティエンジニアの仕事は、単にサービスをセキュアにすることだけではありません。ビジネスを成
こんにちは。カミナシのソフトウェアエンジニアisanaです。 「カミナシ レポート」の開発に携わっています。 筆者は昨年の11月にカミナシにjoinしました。これまでプロダクトの開発に関わるなかで「これめっちゃイイ!」と全世界に向けて推したい仕組みにいくつか出会いました。 本稿では筆者が推したい仕組みについて、カミナシのエンジニア組織全体に関係するものと「カミナシ レポート」の開発チームに関連するもの、合わせて5つをご紹介します。 紹介した仕組みはそれぞれについて詳しく解説している記事のリンクも記載しておりますので、紹介した各仕組みについては、詳しく解説している記事のリンクも記載していますので、本稿を読んで「うちでも取り入れたい!」と思われた方は是非参考にしてみてください。 GitHub と AWS の権限管理 どんな仕組みか カミナシのエンジニア組織ではGitHub および AWSのアカ
カミナシでプロダクト開発をしているふじはら(@daipresents)です。今日はおかんと西武ライオンズで活躍した清原和博選手の誕生日です。 カミナシはサービスチームという単位で開発を行っています。これはスクラムでいうスクラムチームに近く、可能な限りチームで自律して判断できるような形を組織的に目指しています。 最近では、「カミナシ 教育」のサービスチームで期待値の交換会をする機会がありました。 メンバーからも好評で、他社のアジャイルコーチ支援をするときにもよくやるプラクティスのひとつなので、今日はその内容をまとめたいとおもいます。 期待値とは? ここでいう期待値とは、チームメンバーそれぞれに期待されることを指しています。期待値は役職、役割、個人によって異なるケースもあります。 インセプションデッキ 俺たちのAチームスライド アジャイル開発では、インセプションデッキなどで期待値のコントロール
はじめまして、こんにちは。6月にカミナシに入社したソフトウェアエンジニアの渡邉(匠)です。「カミナシ 設備保全」の開発に携わっています。 みなさんはシステムのメンテナンスが必要になったときどう対応をしていますか?「カミナシ 設備保全」でもメンテナンスが必要になり、メンテナンス中はユーザーがサービスにアクセスできないようにメンテナンスページの作成が必要となりました。 ※ 本記事で紹介する構成は、ユーザーがオリジン(S3バケットやALBなど)に直接アクセスできず、必ずCloudFrontを経由してアクセスする構成になっていることを前提としています。 開発方針 今回、メンテナンスページを実装する上で以下の要件を満たすことを条件としました。 メンテナンス中はユーザーにメンテナンスページが表示される メンテナンス外ではユーザーがメンテナンスページへのアクセスができない メンテナンス中に社内メンバーが
こんにちは。「カミナシ 教育」というプロダクトを作っているふじはら(@daipresents) です。毎日アイスを3本以上食べてます。 僕は「カミナシ 教育」のサービスチーム(スクラムチームみたいなチーム)でマネジメントを担当していますが、それ以外ではダブルワークでアジャイルコーチとしていろんな企業の開発支援も行っています。 カミナシでは各チームが自律して動くことを求められ、それぞれが試行錯誤しながらがんばっています。なので、カミナシではあんまりアジャイルコーチの仕事はしていないのですが、自分のチームを俯瞰して見ていると、自然とアジャイルな見積もりと計画づくりをしていないことに気がつきました。 『アジャイルな見積もりと計画づくり』は名著です。だから、僕はチームでの開発にかかわる方に、この本をいつもおすすめします。なのになぜ、このチームはやらないのか? 具体的には スプリント計画 ストーリー
突然ですが、あなたの.netrcや環境変数に、ghp_...から始まる”あの文字列“、そっと忍ばせていませんか? そう、GitHubのPersonal Access Token (PAT) です。 「自分しか使わないから」「有効期限なしが一番ラクだから」しかしその”魔法の文字列”は、開発効率を上げる便利な鍵であると同時に、ひとたび漏洩すれば全てを危険に晒す諸刃の剣。 果たして、この便利で危険な”魔法”を、私たちは本当に封印できるのでしょうか……? local環境でセキュアにプライベートGoモジュールをダウンロードしたい こんにちは。カミナシ認証認可ユニットで共通ID基盤を開発しているminaです。 私たちのチームでも、”便利で危険な魔法”PATに頼らない方法はないか、頭を悩ませた経験がありました。 というのも、私たちは共通ID基盤へのAPIリクエストとサービスのセッション管理を行うことがで
TL;DR PMのチケット作成~整理業務をNotion MCP x Claudeで約30分→5分程度に短縮できた チケットが自動生成されることで、一次情報収集にリソースを再投下し意思決定の質が上がり、実装時のコミュニケーションコストも低くなる Notion MCPの仕様で、API callが長大になるためチケットを作るまでの時間が1~2分かかり、rate limitにも達しやすいなど一部欠点もある アウトカムを出すために重要なのは、「何を作るか」ではなく「何を作らないか」を見極めることなので、人間はそこに注力すべき 自己紹介 カミナシ StatHack カンパニーCEOの松葉です。 6月にカミナシからリリースした「AIラベル検査」のプロダクトマネジメントを担当しています。 kaminashi.jp プロダクト開発、情報整理よりも一次情報収集にリソース割きたい カミナシでは「現場ドリブン」の
プロローグ 河野「このTODOアプリ便利やなぁ」 河野「でも、なんかシンプルすぎて退屈やねんなぁ。たまにTODO忘れるし...」 河野「もっとド派手なハリウッド映画みたいなデザインで緊迫感だしてくれや!」 アプリ「わかりました。もっと激しくてインパクトのあるデザインで訴求します。」 アプリ「ウィーン。ガシャコン。キュイーン⤴︎(デザインが変わる音)」 アプリ「はい。河野さん好みのデザインにしておきました。(ハリウッドの爆弾バーン!!)」 河野「そうそう。素直でええねん。これでわかりやすくなった!」 河野「あ〜あ!。あらゆるアプリがユーザーごとにカスタマイズされたデザインになる世界に生まれて良かった!!!」 おや...間違って少し未来の話を見せてしまいました。 これでは未来が変わってしまうかもしれない...まずい...タイムパラドックスだ! もう知られてしまったからには仕方がありません。 こ
はじめに StatHackカンパニーの渡邉です。 私の普段の取り組みをこちらで紹介しているのでこちらもどうぞ。 note.kaminashi.jp 私たちKaminashiでは、さまざまなプロダクトにNext.jsを採用し始めています。 今回のブログではNext.jsの最も特徴的な機能の一つであるServer Actionsに関してフォーカスし、それがどういう仕組みで動いているのかコンパイラのソースコードを確認しながら解説し、 最後に実装上の注意点について述べます。 特にServer Actionsの具体的な中身の解説に関してはヘビーなので、実装上の注意点だけ見てもらうだけでも良いかもしれないです。 それではやっていきましょう。 Server Actionsとは? Server ActionsとはNext.js v14から正式にリリースされた機能で、従来フロントエンドのために記述していたR
プロローグ 2025/05/22 Claude 4 リリース後、多くの人間が一段階未来へきたと感じていることだろう。 今まで超えられないと感じていた壁を超えたような感覚がある。 dd 更に Claude 4 を、LLMを使いこなしたい。そう思い Claude 4 プロンプトエンジニアリングのベストプラクティスに目を通した。 私の脳に強烈なインパクトを残したのが以下のセクションだった... 面白すぎる...! 本題 どうやら奨励するとAIは頑張れるらしい。 ビジュアル表現が豊かになるらしい。 英語原文だと以下のような内容だ。 For frontend code generation, you can steer Claude 4 models to create complex, detailed, and interactive designs by providing explicit
はじめに カミナシにてソフトウェアエンジニアをしている Taku (@arakawa_gios)です。 2025/6/25(水)、6/26(木)の2日間、幕張メッセで AWS Summit Japan が開催され、弊社から今回は CTO の原トリを含む計7名のメンバーが参加してきました! https://aws.amazon.com/jp/summits/japan/ AWS Summit は、共に未来を描くビルダーが一堂に会して、アマゾン ウェブ サービス (AWS) に関して学習し、ベストプラクティスの共有や情報交換ができる、クラウドでイノベーションを起こすことに興味がある全ての皆様のためのイベントです。 様々な学びや発見があるイベントでしたので、ぜひ当日の雰囲気をお伝え出来ればと思います。 注) 本記事ではセッションの内容など、技術的な内容は含みません 会場の様子 AWS Summi
数ヶ月前、画像処理ライブラリ OpenCV.js を使って Web カメラの映像をリアルタイム処理するプロトタイプを作っていたときのことです。 OpenCV.js は C++ で書かれたコードを WebAssembly(Wasm) にコンパイルして作られており、Wasm ならではのブラウザ上での高速な処理が可能なライブラリです。 実際、画像のフィルタ処理や特徴点検出など、ユニットテストの段階では高速に実行でき、開発は一見順調に進んでいるかのように見えました。 ところが、いざアプリケーションに画像処理モジュールを組み込んでみると、起動したカメラが数秒経つとなぜか止まってしまいました。 コンソールにもエラーは出ず、Chrome を再起動すればまた数秒だけ動く……そんな不可解な状態に悩まされました。 原因は、Wasm のメモリリーク。 そう、恐ろしいことに C++ 製 Wasm で作られたライブ
こんにちは、Kaminashi StatHackカンパニーの渡邉健です。 初めてエンジニアブログを書いてみます。 以下のリンクに普段の取り組みを書いているので興味があれば見てみてください。 AI というテクノロジーを現場 SaaS でどう実現するか 〜AI チームのアプリケーションエンジニアに話を聞いてみた〜|カミナシnote編集部 1. StatHackのこれまでの画像処理の取り組み StatHack カンパニーでは、現場作業を楽にする AI 画像処理 をいくつか開発してきました。 たとえばスマホで鉄筋束を撮影し、クラウド側で本数を自動カウントする Web アプリなどです。 JFE条鋼がAI個数検査システム『カミナシ CountAI』を導入し、鋼材の員数確認作業時間を約1/10に効率化 従来アーキテクチャ 私たちの今まで利用していたアプリは以下の手順で動いていました。 端末で写真を撮影
カミナシの認証認可ユニットでソフトウェアエンジニアをしているトモ=ロウです。 早速ですが皆さんPrometheusはご存知ですか? Prometheusは、システムメトリクスの監視に特化したオープンソースのモニタリングシステムです。時系列データを収集・保存し、強力なクエリ言語PromQLを使って分析することで、システムの健全性を詳細に可視化できます。プル型(Prometheusサーバが監視対象のシステムからメトリックをポーリングする形式)を採用している点が特徴的です。 私のチームではPrometheusを使ってメトリクスの収集・分析を行なっています。Prometheusの利用を検討する際に多くの方が最初に感じるのは「メトリックタイプがよく分からん…」ではないでしょうか?少なくとも私はそうでした。公式ドキュメントを読んでも、一部の概念が難解に感じられたり、具体的なユースケースがイメージしづら
カミナシのソフトウェアエンジニアisanaです。 カミナシレポートの開発に携わっています。 私たちのチームでは、Webアプリケーションの品質担保のため、Playwrightを用いたブラウザテストを実装し、GitHub Actionsで実行しています。しかし、このCIプロセスにおいていくつかの課題がありました。 他方、ソフトウェア開発においては日々寄せられるVoCに対応したり、新機能の開発を行うなかで、負債や課題を上手くハンドリングしていく必要があります。 本稿では、CIプロセスにおける課題をコスパよく解決するための改善策と、その過程で遭遇した「ハマったポイント」について、具体的な設定例を交えながらご紹介します。 PlaywrightやGitHub Actionsを利用している開発者の方々にとって、少しでも参考になれば幸いです。 前提となる環境 本稿で紹介する事例は、以下の環境を前提としてい
次のページ
このページを最初にブックマークしてみませんか?
『カミナシ エンジニアブログ』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く