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

https://kaminashi-developer.hatenablog.jp/

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

フィード

記事のアイキャッチ画像
TypeScriptの"いま”を追う、TSKaigi 2025参加記
はてなブックマークアイコン 30
カミナシ エンジニアブログ
まえがき はじめまして!カミナシでソフトウェアエンジニアをしている shimmy(@naoya7076) です。 カミナシは 2025年5月23・24日に開催された「TSKaigi 2025」にゴールドスポンサーとして協賛し、私は現地で参加しました。 各登壇の内容やトーク内容の詳細は、きっと誰かがまとめてくれていると思いますので、この記事では以下の点に絞って書いていこうと思います。 やること 自分の中でテーマごとに整理した内容と、それぞれの感想 TS Kaigiで自分が聞いたセッション全体を通じて感じたこと やらないこと 登壇の内容を網羅的に伝えること 全ての登壇について詳細に書くこと 静的解…
11日前
記事のアイキャッチ画像
Branded Typeから小さく始める型安全なエラーハンドリング
はてなブックマークアイコン 35
カミナシ エンジニアブログ
はじめに TypeScriptで開発していると、エラーハンドリングの難しさに直面することがあります。 定番のResult型やEither型などの素晴らしいアプローチもありますが、これらは導入コストが高く、チーム全体に浸透させるのが難しいこともあるでしょう。 本記事では、小さく始められてチームに浸透させやすい、Branded Typeを使って型安全なエラーハンドリングを実現する方法を紹介します。 自己紹介 カミナシ StatHackカンパニーの かわりくです! 普段は食品表示ラベルをAIで検査するプロダクトを開発しています! kaminashi.jp note.kaminashi.jp Type…
12日前
記事のアイキャッチ画像
Immer はどのように実装されているか
カミナシ エンジニアブログ
はじめに こんにちは。カミナシでソフトウェアエンジニアをしている tokuse(@stomy_13) です。 私が所属するチームが開発している現場帳票システム『カミナシ レポート』では、一部のアプリケーションで状態管理ライブラリの Zustand を使用しています。併せて Zustand の Immer middleware も使用しています。開発を進める中で Immer の内部実装を調査する機会がありました。 Immer は React の状態管理や Redux などと組み合わされて使われることが多く、多くの開発者に愛用されています。しかし、その便利さの裏にある仕組みについて詳しく知っている…
15日前
記事のアイキャッチ画像
Figma Dev Mode MCP Server 調査
カミナシ エンジニアブログ
こんにちは!カミナシ プロダクトデザイナーの高橋です。なぜかエンジニアブログに書いてみます。 Figma が公式に MCP Server を提供しましたね!あくまでベータ提供ですが、使ってみて、できることや特性などを調べてみた簡単なまとめを書いてみました。 help.figma.com Figma Dev Mode MCP Server とは? VS Code、Cursor、Windsurf、Claude Code から自分の Figma にアクセスできるようになるもので、AI に「ワイが作ったデザインを使って作って〜」が簡単にできるようになるとされるものです。 The Dev Mode MC…
18日前
記事のアイキャッチ画像
怪奇?スケールアウトするとパフォーマンスが落ちるデータベース
カミナシ エンジニアブログ
こんにちは。ソフトウェアエンジニアの古屋です。データベースのメトリクス、見てますか?私のチームが開発運用を担当する『カミナシ レポート』では Amazon Aurora MySQL をメインのRDBMSとして利用しています。この Aurora MySQL について少し課題がありました。 課題1. 増え続けるコスト 昨年の12月以降くらいでコスト、とくに Aurora:StorageIOUsage が右肩上がりで増えています(図の青色)。 課題2. 悪化するパフォーマンス (実際に運用されているのを初めて見たのですが)『カミナシ レポート』で利用している Aurora クラスターはCPU利用率(…
21日前
記事のアイキャッチ画像
属人化とリスクからの脱却! ドメイン & DNS レコード管理をゼロから再設計した話
カミナシ エンジニアブログ
これまで属人化や手作業に頼った運用が続いていたことで、セキュリティリスクやメンテナンスの難しさが表面化していました。今回、専用の AWS アカウントを設けてすべてのドメインを集約し、Terraform によるコード管理を導入することで、安全性と運用の透明性を大きく改善することができました。
1ヶ月前
記事のアイキャッチ画像
マルチプロダクトのセキュリティを担保する Production Readiness Check のススメ
カミナシ エンジニアブログ
どうもセキュリティエンジニアリングの西川です。禁酒しています。誘惑多い GW を超えたので勝ったも同然です。とはいえ、お酒は飲まずとも酒の場は好きなのでお気軽に誘っていただけると嬉しいです。 さて、今日はカミナシで去年より実施している Production Readiness Check についてお伝えできればと思っています。 Production Readiness Check とは何か プロダクションレディマイクロサービスという書籍が出ています。書籍の紹介に下記のようにあります。 UberのSRE(サイト信頼性エンジニア、サイトリライアビリティエンジニア)として、マイクロサービスの本番対応…
1ヶ月前
記事のアイキャッチ画像
フロントエンド API コール時のエラーハンドリングを軽く整理(Fetch API・typescript-fetch・TanStack Query)
カミナシ エンジニアブログ
カミナシのソフトウェアエンジニア佐藤です。カミナシレポートの開発に携わっています。 フロントエンドのエラーは「画面リロードやブラウザ再起動で復旧できる(かもしれない)」「クラッシュしてもユーザーの端末に閉じる」などの理由から、バックエンドよりは精緻に扱われない傾向があると個人的には感じています。 その一方、カミナシレポートは、ノンデスクワーカー向けの不安定なネットワーク環境で利用されることも多々あるアプリです。そのため、デジタルツールに不慣れな方のために精緻なフィードバックが必要とされる、リロードに頼ることが難しいケースがある、などの理由でエラーの扱いにも慎重になる必要があります。 本記事では…
2ヶ月前
記事のアイキャッチ画像
開発チームの中でセキュリティを育てる - セキュリティエンジニア派遣の試み
カミナシ エンジニアブログ
どうもセキュリティエンジニアリングの西川です。JAWS DAYS 2025 の帰路でこのブログを書いています。私は空港でブログを書く確率が非常に高いです。なぜか捗るんですよね。 さて、カミナシでは昨年からセキュリティエンジニアを二人追加で採用することができ、業務委託含め5人体制になりました。それを機にセキュリティエンジニアを開発チームに派遣する仕組みを導入したのでそれについて話をしていきたいと思います。 セキュリティエンジニアを開発チームに派遣するとは 派遣するセキュリティエンジニアの目指すところを一言で表すならば「特定のサービス・プロダクト・チームを深く理解したセキュリティエンジニア」です。…
3ヶ月前
記事のアイキャッチ画像
助けて! CloudWatch Logs のコストが急上昇!! ログ管理の最適化でコストを 1/3 にした話
カミナシ エンジニアブログ
カミナシ ソフトウェアエンジニアの mina(@yoiyoicho)です。このブログでは、私が所属する「カミナシ ID」開発チームにおいて実施した、インフラコストの最適化施策について紹介します! 「カミナシ レポート」の認証機能移行によりインフラコストが増加 「カミナシ ID」は OIDC / OAuth 2.0 などの標準仕様に準拠した、カミナシの ID 管理・認証基盤プロダクトです。インフラは AWS の各種サービスを活用して構築されています。 「カミナシ ID」は認証基盤という性質上、高いセキュリティや監査能力が求められます。そのため、API サーバーのアプリケーションログに加えて、デー…
3ヶ月前
記事のアイキャッチ画像
良いReactを書くことは凡事徹底だと考えている話
カミナシ エンジニアブログ
カミナシで、Webフロントエンドエンジニアをしている osuzu です。 これまでフロントエンド専門外のエンジニアからReactを学ぶ良い方法やお勧めドキュメントを聞かれる度に、 公式ドキュメント のリンクを貼る日々を過ごしてきましたが、何かすごい上達方法がないものかと普段意識していることをこの記事で書き起こしてみました。 文字にした結果、中身になにか特別なことや魔法のテクニックは一つもなく、むしろプログラミング一般に通ずる話ばかりになりましたが、(自戒も込めて)凡事徹底することの難しさもあると感じておりその一助になれば幸いです。 ※ 凡事徹底:平凡なことを非凡なほどに実行すること。一つ一つの…
3ヶ月前
記事のアイキャッチ画像
AWSにおける送信者制約付きトークン実現の一検討
カミナシ エンジニアブログ
この記事ではmTLS通信を行うことのできるリソースに制約のあるAWSにおいて、OAuthの送信者制約付きトークンをどのように実現するか検討しました。
4ヶ月前
記事のアイキャッチ画像
なぜ、安易に「スクラムで開発します」と言わなかったのか? - 結果整合的アジャイルを目指す開発
カミナシ エンジニアブログ
プレイングマネージャー型のEMをしています、鈴木(@szk3)です。 今回は、私たちのサービスチームが新規プロダクト開発を始めるにあたって「スクラムを導入しなかった」経験について共有します。 このタイトルだけを見ると、スクラムに対して否定的な印象を持たれるかもしれません。しかし、これはスクラムへのアンチテーゼではありません。むしろ、スクラムの価値をリスペクトし、その実践に真摯に向き合いたいからこそ行った慎重な決断でした。実際、新規プロダクト開発の開始とほぼ同時期に認定スクラムマスター資格も取得し、スクラムについての理解を深めていく中で、この決断の意義をより一層実感しています。 新規プロダクトの…
4ヶ月前
記事のアイキャッチ画像
「チーム全体で品質を考える」文化づくりの第一歩
カミナシ エンジニアブログ
1. はじめに こんにちは。QAエンジニアとして働いている市川です。 今回は、私が所属しているカミナシ設備保全サービスチーム(以下サービスチーム)で「チーム全体で品質を考える文化づくり」を進めるために行った取り組みについて紹介します。 チーム構成は、エンジニア2名、デザイナー1名、PdM1名の体制で、私は昨年末からチームにスポットで参画して取り組みを進めてきました。 私が取り組んだことは大きく分けて以下の3つです。 QAやテストの考え方を伝える座学セッション 品質を考えるワークショップ 設計ワークへの参加によるコラボレーションの強化 これらの活動の背景には、「プロダクトの品質はQAだけで担保で…
5ヶ月前
記事のアイキャッチ画像
【AWS re:Invent 2024】Amazon Q のワークショップを受けたので Bedrock との違いを調べてみた
カミナシ エンジニアブログ
はじめに カミナシでソフトウェアエンジニアとしてサービスの開発をしている Taku (X アカウント) です。 帰国後の体調不良等あり公開が遅くなってしまったのですが、先日ラスベガスで開催された AWS re:Invent に2年振り2回目の参加をしてきた際のレポです。 今回の re:Invent で私は 生成 AI 系のワークショップを中心に受けており、前回の Amazon Bedrock のワークショップに続き Amazon Q Business のワークショップも受けましたので両方受けて思ったことを書かせていただきたいと思います。 筆者は生成 AI にそこまで精通しているわけでありません…
5ヶ月前
記事のアイキャッチ画像
Go の ORM はどのようにして AUTO INCREMENT で採番された値を取得しているのか? - MySQL 編
カミナシ エンジニアブログ
こんにちは。カミナシで「カミナシレポート」の開発を担当しているソフトウェアエンジニアの佐藤です。 カミナシレポートのバックエンドは Go で開発しており、データベースには Amazon Aurora MySQL を使用しています。また、データベースアクセスには ORM ライブラリの GORM を採用しています。 ほとんどのテーブルでは、プライマリキー(ID列)に AUTO INCREMENT を利用しています。これらのテーブルに GORM の Create メソッドなどを使って新しいレコードを挿入すると、AUTO INCREMENT で採番された値が自動的に対応する Struct のフィールド…
5ヶ月前
記事のアイキャッチ画像
「しかたないスクラム」じゃないアジャイル開発を求めて
カミナシ エンジニアブログ
「しかたないスクラム」じゃないアジャイル開発を求めて はじめまして。1月からカミナシでエンジニアリングマネージャ(EM)を担当している @daipresents と申します。 カミナシでは新規事業開発のEMとして、絶賛全力で開発を支援しています。カミナシはとても現場に近い開発環境なので、ご興味のある方はぜひカジュアル面談 をお願いします! この記事では、僕が関わる「新規事業開発」で実際に行われている「開発プロセス」と、そこに行き着いた経緯や意図をまとめたいと思います。タイトルにあるように、チームは「スクラムじゃないアジャイル開発を求めて」きたように感じています。 チームの立ち上げ期 僕は10ヶ…
5ヶ月前
記事のアイキャッチ画像
AWS Security Hub の通知を Amazon Bedrock を使ってアクショナブルにしてみた
カミナシ エンジニアブログ
どうもセキュリティエンジニアの西川です。これがきっと私にとっての今年最後のブログです。今年の AWS re:Invent は自身の登壇があったのでほとんど楽しめませんでした。悔しいのでこうしてブログを帰ってきてからいくつか書いています。カミナシのメンバーの中で私と CTO だけは自腹で AWS re:Invent へ参加していますが、来年の飛行機もすでにとっていたりします。来年ラスベガスでお会いしましょう。 AWS re:Invent の中でもたくさんの Generative AI のセッションがありました。私自身はほとんど参加していなかったのですが、Generative AI の GameD…
6ヶ月前
記事のアイキャッチ画像
Amazon CloudFront VPC オリジンの魅力と WAF バイパスからの脱却
カミナシ エンジニアブログ
どうもセキュリティエンジニアリングの西川です。風邪を引いたせいでしばらくお酒が飲めていません。クラフトビールが冷蔵庫に所狭しと配置されていて、一向に減らないため妻から以下略 Amazon CloudFront VPC オリジンが2024/11/20に発表されましたがもうみなさん触られましたか?今日はセキュリティ観点でこの機能がどうして嬉しいのかやこれがない場合の落とし穴について話をしていこうと思います 何が嬉しいの? ALB や EC2 インスタンスへ直アクセスができなくなるということが嬉しいです。これらのリソースはプライベートサブネットに配置され、外部から直接そういったリソースへアクセスがで…
6ヶ月前
記事のアイキャッチ画像
Service Worker がページをコントロールし始めるタイミングを skipWaiting と clients.claim から理解する
カミナシ エンジニアブログ
こんにちは。カミナシでソフトウェアエンジニアをしております佐藤です。 先日、『カミナシ レポート 記録アプリ(Web)』の提供を開始いたしました。 現場帳票システム『カミナシ レポート』、マルチデバイスで記録ができるWeb版をリリース PWA として利用が可能であり、また、ネットワークが不安定な現場での使用も想定したオフライン機能も備えています。これらを実現する上では、Service Worker が重要な役割を果たしています。 『カミナシ レポート 記録アプリ(Web)』の実装には、VitePWA を利用しています。VitePWA では Service Worker の制御に Workbox…
6ヶ月前
記事のアイキャッチ画像
AWS 環境における Generative AI とセキュリティのジレンマ
カミナシ エンジニアブログ
どうもセキュリティエンジニアリングの西川です。 寒いのは好きではないのですが、寒くなってくると猫が布団に入ってくるので最高です。 ラスベガスで開催された AWS re:Invent 2024 に参加していました。 その中でも Generative AI を利用したセキュリティ対策やその他もろもろ便利機能が共有されていました。 これは当然と言えば当然で、セキュリティエンジニアは市場に少ないですし、セキュリティエンジニアの中でもスキルが十分に足りていないといったことも考えられ、それを補うためにGenerative AI を使いましょうという流れは自然だと思います。 セキュリティへの Generat…
6ヶ月前
記事のアイキャッチ画像
【AWS re:Invent 2024】セッション以外ってどんな感じ? (*遊んでません)
カミナシ エンジニアブログ
こんにちは、「カミナシ 従業員」開発チームの a2 (@Atsuhiro_tim) です。 re:Invent については、弊社含め多くの企業のセッションレポートを目にしていることと思います。 re:Invent は新サービス発表のある基調講演や、実際に手を動かしてサービスを触れるセッションへの参加などがメインコンテンツですが、ラスベガスに一週間滞在する間、それらが全てではありません。異国に行くこと自体や、セッション以外にも面白いアクティビティなどがあります。 今回は、そういったセッション以外の側面にスポットを当ててみたいと思います。ゆるい記事なので、すきま時間に読んでいただければと思います。…
6ヶ月前
記事のアイキャッチ画像
【AWS re:Invent 2024】RAG 関連の5個のセッションの学びを濃縮してお届けします
カミナシ エンジニアブログ
こんにちは、AWS re:Invent から帰国した a2 (@Atsuhiro_tim) です。すき家がサラダをつけても $5 で、その美味しさと安さに涙を流しています。 さて、AWS re:Invent 2024 のセッションカタログを見ると、今年も GenAI が猛威を振るっていたことがわかります。 昨年は Gen AI x 〇〇 が多かったのですが、今年は一歩進んで、 RAG x 〇〇 や Agent x 〇〇 が出てきました。RAG については機能リリースのニュースは認識していたものの、実際に触ることがなかったので、今回の re:Invent で Gen AI や RAG 関連のセッ…
6ヶ月前
記事のアイキャッチ画像
【AWS re:Invent 2024】Amazon S3 Metadata と Amazon S3 Table Bucket は名前だけ見ると誤解しそうなので整理しました
カミナシ エンジニアブログ
はじめに こんにちは、「カミナシ 従業員」開発チームの a2 (@Atsuhiro_tim) です。5日間の AWS re:Invent を終え、帰国しました。 今年の re:Invent は Amazon S3 Table Bucket, Amazon S3 Metadata という新機能が発表されましたね。 Amazon S3 Table Bucket というサービス名を聞いた時、「Relational Database インターフェースのプロビジョニング不要の DB(主に OLTP 用)で、個人開発サービスに使える?」や、「S3 の csv ファイルに対して Athena を経由せずに …
6ヶ月前
記事のアイキャッチ画像
【AWS re:Invent 2024】Generative AIによる未来のUXの広がりを感じた
カミナシ エンジニアブログ
manatyです。AWS re:Inventの生成AIによる検索機能の拡張ワークショップを通じて、ID管理の未来を想像してみました。
6ヶ月前
記事のアイキャッチ画像
【AWS re:Invent 2024】Claude 3.5 の工夫
カミナシ エンジニアブログ
はじめに こんにちは、「カミナシ 従業員」サービスチームの a2 (@A2hiro_tim) です。ラスベガスで開催されているAWS re:Invent 2024 に昨年に引き続き参加しています。今回は ChalkTalk として開催された「Deep dive into Claude 3.5: Unlocking AI potential on AWS」の参加レポートをお届けします。 ChalkTalk は speaker によって形式に差がありますが、今回のセッションは Claude 3.5 の仕組みをスピーカーがひたすら話す形式で、最後に Amazon Bedrock を利用したデモがある…
7ヶ月前
記事のアイキャッチ画像
【AWS re:Invent 2024】Generative AIを利用したこれからのセキュリティ対策に足を踏み入れてみた
カミナシ エンジニアブログ
AWS re:Inventのセッションレポートです。生成AIを使ってセキュリティ業務の生産性を向上させるアイデアを紹介するセッションを聞いて、やってみたことを書きました。
7ヶ月前
記事のアイキャッチ画像
【AWS re:Invent 2024】人の労力を減らす、Amazon Bedrock Agents によるイベントドリブンエージェント作成を体験してきた
カミナシ エンジニアブログ
はじめに カミナシでソフトウェアエンジニアとしてサービスの開発をしている Taku (X アカウント) です。 ラスベガスで開催されている AWS re:Invent に2年振り2回目の参加をしています。 その中で役立ちそうなワークショップに参加することが出来たので、今回はそのご紹介をさせていただきたいと思います。 公開されているワークショップのリンクも載せているため、最後までご覧いただけると幸いです。 参加したワークショップ 今回参加したのは「Automating technical support and workflows with Amazon Bedrock Agents」というワー…
7ヶ月前
記事のアイキャッチ画像
【AWS re:Invent 2024】Amazon Verified Permissionsを本番適用した人のリアルな声を聞いた
カミナシ エンジニアブログ
はじめに カミナシでID管理・認証基盤を開発しているmanaty(@manaty0226)です。ラスベガスで開催されているAWS re:Invent 2024に初めて参加しています。今回はブレイクアウトセッションで開催された「Securing 50 million requests per month with AWS-based authorization」を聴講したレポートをお届けします。 Amazon Verified Permissions(AVP)とは Amazon Verified Permissions(AVP)はアプリケーションのアクセス制御を行うためのAWSサービスであり、O…
7ヶ月前
記事のアイキャッチ画像
【AWS re:Invent 2024】テナント分離の考え方を整理したらRFC 8693に辿り着いた
カミナシ エンジニアブログ
re:Inventに参加中のmanatyです。今回はテナント分離に関するセッションを聞いてアーキテクチャを整理した内容を書いています。
7ヶ月前