サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
ブラックフライデー
kaminashi-developer.hatenablog.jp
こんにちは。カミナシで「カミナシ 従業員」の開発を行っている nilpoona です。 業務アプリケーションを作っていると、避けて通れないのが CSV インポート機能 です。 最初は「encoding/csv で読んでループ回せば実装できる」と考えて作り始めるのですが、仕様が複雑になるにつれて、以下のような課題に直面することがあります。 バリデーションとパース処理が混在し、エラーの発生箇所が追いづらい。 「文字コードが Shift_JIS だった」など多様なエンコーディングへの対応で、ビジネスロジックが複雑になる。 パースやバリデーションエラーを即座にリターンしてしまうと、ユーザーは一つのエラーを直してもまた次のエラーが出る「モグラ叩き」のような修正サイクルを繰り返すことになる。 データが正しい状態か保証されないまま、後続の処理(DB 保存など)に渡されてしまう。 今回は、こういった CS
カミナシでソフトウェアエンジニアをしているいちび(@itiB_S144)です。 12月1日から12月5日にかけて開催されていたAWS re:invent に参加してきました!日本に帰ってきて時差ボケもだいぶ治ってきました。 最終日に参加した以下のセッションについてレポートします。 NET301 Hands-on AWS WAF: Troubleshooting attack scenarios セッション詳細として記載されていた内容は以下です。 Suspicious of an activity spike? Seeing odd traffic patterns? Introduced a new AWS WAF rule and want to make sure it is operating as it should? Join this session for a walkthr
こんにちは。カミナシで「カミナシ 設備保全」サービスの開発を行っている澤木です。 今回はReact Router v7でReadableStreamを利用したデータの逐次表示を実装する方法について紹介します。 現在私たちのチームではLLMを使った機能開発を行っているのですが、LLMは生成処理に時間がかかるため全てのデータ生成を待ってから表示するとユーザー体験が悪化してしまいます。 そのためストリーミングで逐次データを受け取り、生成された部分から少しずつ表示していくという実装が一般的かと思います。 React Router v7にもストリーミング機能は提供されているのですが、これはあくまで遅延読み込みを実現するためのものでありデータの一部分を読み取りながら表示していくユースケースには対応していません。 そこで今回はReact Router v7のストリーミング機能は使わず、ReadableS
はじめに カミナシの認証認可チームのmanaty(@manaty226)です。今年もラスベガスにて12月1日から12月5日まで開催されているre:Inventに参加しています。この記事では、最終日に参加した以下のワークショップセッションについて記載します。 Modern batch analytics: Building advanced transactional datalakes with S3 Tables メダリオンアーキテクチャにもとづくS3 Tablesデータ基盤 本セッションでは、S3 Tablesを使ってメダリオンアーキテクチャと呼ばれる、データを3層のストレージで管理するデータ基盤を作成するワークショップです。メダリオンアーキテクチャでは、未加工のデータを保存するブロンズ層、データのクレンジングや複数の未加工情報の結合などを行ったきれいなデータを扱うシルバー層、報告用ダ
こんにちはセキュリティエンジニアリングの西川(@nishikawaakira)です。今回は ThreatForest を使用した脅威モデリングについてセッションに参加してきたので概要編と実践編に分けて紹介したいと思います。 脅威モデリングの4つの質問のフレームワーク ThreatForest の話に入る前にまずは脅威モデリングのお話から。脅威モデリングには4つの質問のフレームワークがあるらしいです。私はそんな基礎的なことすら知らなかったのですが、このフレームワークは古くから脅威モデリングのプロセスを進める際のメンタルモデルとして使われてきたそうです。 要点は下記の 4 つの質問です。 何を作っているのか?(What are we working on?) スコープの分解(scope decomposition) より小さく管理しやすい単位にまとめる データフローダイアグラムを描く 何がうま
おはようございます。カミナシでシニアマネージャーを担当している daipresents です。 ついにクロール25mで娘に負けそうになってきました。子どもの成長はやすぎですね。 自分の部署にはもうひとりエンジニアマネージャ(EM)がいるのですが、おたがいに1on1やファシリテーションでチームにかかわることが多いため、「お互いにスキルアップを目指そう!」と話しています。 年末なので「特訓は来年がんばろう」と意見が一致しているのですが、年内はAIを使って自分たちのファシリテーションスキルを高める方法を試しています。 自分のファシリテーションをAIに評価してもらおう 1on1の場合、自分のスキルを手っ取り早くたかめるいい方法は、「1on1後に、相手と振り返りを行う」だと思っています。これによって、相手から直接フィードバックが得られ、改善を次にすぐ活かせるからです。このサイクルをがんがんまわせば、
はじめに カミナシの認証認可チームのmanaty(@manaty226)です。今年もラスベガスにて12月1日から12月5日まで開催されているre:Inventに参加しています。この記事では、最終日に参加した以下のワークショップセッションについて記載します。 Active defense strategies using AWS Al/ML services [REPEAT] (SEC401-R1) AIを使った能動的防御 サイバーセキュリティにおける能動的防御とは、攻撃を受ける前にその予兆を把握して対処することです。特に、本ワークショップではサイバーセキュリティ欺瞞(Cyber Security Deception)と呼ばれる、偽の脆弱なコンテンツを使った攻撃手法の能動的な収集について取り扱っています。 link.springer.com 私は専門でないためハニーポットと欺瞞(decept
どうも Security Engineering の西川(@nishikawaakira)です。今回は AWS の脅威インテリジェンスについてセッションでお伺いしてきたのでシェアしたいと思います。 どういうセッションだったか まず AWS 社がどういった脅威インテリジェンスの取り組みを行っているかという話があり、それらの知見をサービスに落とし込んでくれていて、我々ユーザーがどのようにそのナレッジを検知や防御に活かせば良いかという内容でした。こんなに簡単にまとめていますが、とても長い記事なので覚悟してください。 AWS の観測範囲 IPv4 アドレスは約43億あるわけですが、AWS が毎日何らかの形でやり取りしている IP アドレスはなんと 26億にも及ぶそうです。つまりインターネットの約60%とやり取りがあるということです。 で、これらの数値というのは下記から観測しています。 ネットワーク
はじめに カミナシの認証認可チームのmanaty(@manaty226)です。今年もラスベガスにて12月1日から12月5日まで開催されているre:Inventに参加しています。この記事では、3日目に参加した以下のワークショップセッションについて記載します。 [NEW LAUNCH] Authenticate securely beyond AWS identity with JSON Web Tokens [REPEAT] (SEC352-R1) AWSにおける長寿命クレデンシャルのこれまで セッションの冒頭では、AWSにおける長寿命なクレデンシャル(アクセスキーなど)を、これまでにどのように改善してきたか話されました。2006年当初はルートユーザーしか存在せず、ルートユーザーのアクセスキーはアカウントの全権限を持つ長寿命なクレデンシャルでした。今考えると恐ろしい状態ですね。2011年にI
こんにちは、「カミナシ レポート」の開発に携わっている furuya です。 現在ラスベガスで開催されているre:Invent2025に参加しています。初の現地参加、ということで色々戸惑いつつも事前に見聞きした情報や、他にも参加しているカミナシメンバーがいてくれることもあり問題なく過ごせています(感謝)。ということで、現地レポートとセッションレポートをしていきます。 現地レポート:事前の噂検証 めちゃくちゃ歩く 事前の情報で毎日1万5千歩は歩くよ、と聞いていました。ホテルが広いし、会場間もめちゃくちゃ広い(大阪の感覚でいうと梅田から心斎橋・なんばくらいまで)らしいので、それはそうだろうなぁ、と思っていたのですが、実際やっぱりそうでした。1日2万歩くらい歩いてました。 月曜日の記録。日曜日も1万9千歩くらいでした。 日本の建物で例えるとまずホテル(カジノ)を中心にイオンモールが3つくらいくっ
どうも Security Engineering の西川(@nishikawaakira)です。今年も AWS re:Invent に参加しており、個人としては3回目の参加です。本日は re:Invent 期間中に Public Preview になったサービス AWS Security Agent についてワークショップに参加してきたので AWS Security Agent の紹介や感想などをシェアしたいと思います。 AWS Security Agent とは ものすごく簡単にいうと、ソフトウェアデベロップメントサイクル(SDLC)におけるアプリケーションのセキュリティレビューをしてくれるというものです。今までもコードをみてくれるサービスがあったり、設計書(Design Doc)をみてくれるサービスがあったりしたと思いますが、AWS Security Agent はそれら全てを包括して
はじめに カミナシの認証認可チームのmanaty(@manaty226)です。今年もラスベガスにて12月1日から12月5日まで開催されているre:Inventに参加しています。この記事では、2日目に参加した以下のセッションについて記載します。私が初めて参加するLv. 500のセッションです。 Known Unknowns: Bayesian Multi-Path Framework for Uncertainty in LLMs (INV506) LLMにおける未知の未知 普段からコーディングエージェントやサービスへの組み込みで利用されている方はよく知っているとおり、LLMの出力は確率的な振る舞いをして不確実性が伴います。中でも、誤った答えを自信満々に回答してしまったり、ハルシネーションを起こすのは本番アプリケーションにおける運用の難しさにつながります。発表者らは、LLMの回答を以下のよう
カミナシにてソフトウェアエンジニアをしているいちび(@itiB_S144)です。現在ラスベガスにて12月1日から12月5日まで開催されているre:Inventに参加しています。 re:Invent に参加するのはこれで通算3回目で今回も非常にたくさんの学びを得られていて楽しいです🙌 参加した以下のセッションについてレポートします Building serverless vector applications with Amazon S3 Vectors (STG321) セッション詳細として記載されていた内容は以下です。 Vector embeddings are transforming how organizations build and scale AI, powering everything from semantic search to generative applica
AIはE2Eテスト撲滅の夢を見るか? おはようございます。カミナシでシニアマネージャーを担当している daipresents です。息子がけん玉にハマり、定期的にボールをぶつけられて痛い思いをしております。 僕は普段、「カミナシ 教育」のエンジニアリングマネージャも担当しているのですが、プロダクト開発の中で、プロダクトマネージャと一緒に、開発された機能の受け入れテストも手伝っています。 また、新しい変化を受け入れるとともに、プロダクト全般の挙動も確認する必要があるので、少し前にE2Eを整備しはじめました。 E2Eテストの整備は、仕事柄いろいろやってきたのですが、AIの活用が劇的に広がっているので、今回は、自分はコードを書かず、E2EテストのすべてをAIに作ってもらいました。 AIを使ったE2Eテスト作成 今回作成したのは、Webアプリ向けのE2Eテストです。技術的にはSeleniumからP
はじめに カミナシの認証認可チームのmanaty(@manaty0226)です。今年もラスベガスにて12月1日から12月5日まで開催されているre:Inventに参加しています。この記事では、初日に参加したAIエージェントに関する以下の2つのセッションについて記載します。 Building Scalable, Self-Orchestrating AI Workflows with A2A and MCP (DEV415) Hands-on multi-tenant agents: Inside tenant-aware agentic systems (SAS403-R) AIエージェントのコレオグラフィとA2Aプロトコル 1つめのセッション(Building Scalable, Self-Orchestrating AI Workflows with A2A and MCP)では、タス
カミナシの認証認可ユニットでソフトウェアエンジニアをやっているトモ=ロウです。 先日、過去に弊社で行った共通ID基盤構築プロジェクトに関するブログ記事を公開したのですが、お読みいただけたでしょうか?まだ読んでいない方は是非ご一読ください! スタートアップがゼロから作る共通ID基盤:立ち上げ〜ID統合まで道のり(前編) - カミナシ エンジニアブログ スタートアップがゼロから作る共通ID基盤:ID統合のその先へ(後編) - カミナシ エンジニアブログ さて、今回は前半に「認証認可完全初心者だった自分が如何にしてID基盤構築プロジェクト完遂に貢献するに至ったか」という視点で僕がどのように認証認可の学習をしてきたかについてお話しします。そして後半は「今から学習し直すならどうするか」というテーマで現時点で僕の考える最速の「知の高速道路」を紹介してみようと思います。 前回の記事が少し硬めの感じになっ
カミナシの「カミナシ 設備保全」チームでプレイングマネージャー型のエンジニアリングマネージャーをしてます、すずけん(@szk3)です。 先日、社内プロダクトの連携機能を実装するにあたり、カミナシの別サービスから自チームが管理するサービスのプライベートなAPIを呼び出す必要があり、サービス間API呼び出し経路について、CloudFrontの機能のひとつであるVPCオリジンを使って実装しました。 本エントリでは、VPCオリジンを導入する過程で得たVPCオリジンについての知見や、その判断に至るまでの背景をシェアします。 プライベートサブネットのAPIを呼び出したいニーズ増えてない? 昨今のAI/LLMアプリ開発の隆盛もあり、mcpサーバーからプロダクトのAPIを呼び出したり、自社・他社問わずサービス間連携したいというようなカジュアルなニーズも増えたように感じます。 一方で、実装する側の視点で言う
こんにちは、先日開催された社内イベント「ごーとんカップ 2025」にてセキュリティチャンピオンになりました、ソフトウェアエンジニアの渡邉(匠)です。「カミナシ 設備保全」の開発に携わっています。 最近、AIエージェントの技術トレンドに乗り遅れないよう、Amazon Bedrock を使ったプロトタイピングに取り組んでいます。その中で、Amazon Bedrock Agents で提供されている「Return of Control」という機能をStrands AgentsとAmazon Bedrock AgentCoreを使って作ってみたので、その実装方法と学びを共有します。 Return of Control とは Return of Control は、Amazon Bedrock Agentsの機能の一つです。 この機能を簡単にまとめると以下のような特徴があります: エージェントが実行
どうもセキュリティエンジニアの西川です。私は最近ポケモンカードの奥深さと難しさを痛感する日々を過ごしていますが、みなさんいかがお過ごしでしょうか。 カミナシでは社内セキュリティ競技会を実施しました。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 ヘ
次のページ
このページを最初にブックマークしてみませんか?
『カミナシ エンジニアブログ』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く