並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 198件

新着順 人気順

カミナシの検索結果1 - 40 件 / 198件

  • AIは励まされると頑張れるらしいので、いろんな方法で奨励してみた。 - カミナシ エンジニアブログ

    プロローグ 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

      AIは励まされると頑張れるらしいので、いろんな方法で奨励してみた。 - カミナシ エンジニアブログ
    • 実は意外と大したことない。スタートアップの現実と数字(カミナシの場合)|諸岡 裕人(カミナシCEO | SaaS)

      最初の売上はMRR10万円。それを獲得するまでに1年1ヶ月かかった。MRR100万円を超えるのに2年。問い合わせは毎月5件くらい。投資家とのMTGは辛く、友人の「売上いくら?いつ上場するの?w」には苦笑いで返してた。3年やってMRR280万円までしか伸ばせずにピボット。スタートアップなんてこんなもん! — 諸岡 裕人|カミナシ CEO (@morooka_hiroto) February 9, 2022 そこで2つのことを感じました。 「サクセスストーリーではなく、苦労話や失敗談を聞くことで活力になったりする場面もある」ということ。過去の自分など特にそうですが、上手く行ってない時ほど誰かの苦労した話を聞くと、「自分もがんばろう!」と思えました。なので、このnoteは順調な方よりも、昔の自分のように苦しい状況にいる方に向けたものになっています。 2つ目は、「みんなリアルな数字を知りたがってい

        実は意外と大したことない。スタートアップの現実と数字(カミナシの場合)|諸岡 裕人(カミナシCEO | SaaS)
      • 良いReactを書くことは凡事徹底だと考えている話 - カミナシ エンジニアブログ

        カミナシで、Webフロントエンドエンジニアをしている osuzu です。 これまでフロントエンド専門外のエンジニアからReactを学ぶ良い方法やお勧めドキュメントを聞かれる度に、 公式ドキュメント のリンクを貼る日々を過ごしてきましたが、何かすごい上達方法がないものかと普段意識していることをこの記事で書き起こしてみました。 文字にした結果、中身になにか特別なことや魔法のテクニックは一つもなく、むしろプログラミング一般に通ずる話ばかりになりましたが、(自戒も込めて)凡事徹底することの難しさもあると感じておりその一助になれば幸いです。 ※ 凡事徹底:平凡なことを非凡なほどに実行すること。一つ一つの理解や実行は平易でも、それを実践し続けるのは難しい。 React Server Component(以下RSC)を採用するかで変わる部分もありますが、記事の例はClient Componentの話が中

          良いReactを書くことは凡事徹底だと考えている話 - カミナシ エンジニアブログ
        • オンライン DDL を期待して ALTER 文を実行したら障害になりかけた話 - カミナシ エンジニアブログ

          こんにちは。ソフトウェアエンジニアの坂井 (@manabusakai) です。 カミナシではマルチプロダクト化に向けて、認証・認可の切り出しを進めています。その対応を進める中で、既存テーブルへのカラム追加が必要になりました。 先日、そのリリースのために本番データベースにマイグレーションの ALTER 文を実行したところ、クエリが詰まって危うく障害になるところでした(幸いすぐにキャンセルして事なきを得ました)。 原因を調べたところ、オンライン DDL は複数の条件が関係することがわかりました。オンライン DDL に対する知識不足と事前検証の甘さゆえのミスでしたが、結果的には良い学びが得られました。 カミナシのバリューのひとつである「全開オープン」の気持ちで、事の顛末やそこから得た学びを公開します。 なお、今回の話は MySQL 5.7 互換の Amazon Aurora MySQL 2 で確

            オンライン DDL を期待して ALTER 文を実行したら障害になりかけた話 - カミナシ エンジニアブログ
          • カミナシでの技術的負債返済プロジェクトとその決断 / Beyond tech debts at Kaminashi

            Talked at 「スタートアップと技術的負債」 #SELECKLIVE https://yumemi.connpass.com/event/255925/

              カミナシでの技術的負債返済プロジェクトとその決断 / Beyond tech debts at Kaminashi
            • 【Go言語】自作コンテナ沼。スクラッチでミニDockerを作ろう - カミナシ エンジニアブログ

              初めまして。株式会社カミナシPMの@gtongy1です。 Dockerというツール。SRE, Backend, Frontendどの領域のエンジニアも馴染みのあるツールではないでしょうか。 コンテナを利用することにより、インフラの環境を一つの空間に梱包し、その内部で柔軟に様々な環境を作ることが出来ます。 コンテナの実体とはなんなのでしょう? 叡智が詰め込まれたそんな一つの宝箱のように見えます。 「 コンテナ作ってみたくなりませんか? 」 僕と同じように知的好奇心をくすぐられたそこのあなた!コンテナ沼の一歩目を一緒に踏み出してみましょう! 検証環境 Ubuntu 18.04 golang 1.15 Dockerの機能おさらい docs.docker.com まず、ドキュメント内を読み進めてDockerに対する知識を整理します。 DockerはDocker daemonを基幹とし、その呼び出し

                【Go言語】自作コンテナ沼。スクラッチでミニDockerを作ろう - カミナシ エンジニアブログ
              • 技術的負債になりかけていた機能をリアーキテクティングしたら、めちゃくちゃ改善した話 - カミナシ エンジニアブログ

                ソフトウェアエンジニアの 鈴木 (@szk3) です。 先日、カミナシにおいて古くから存在する1つの機能をリアーキテクティングしました。 その結果、処理時間は4分の1以下、コストは90%程度削減 と大きな成果を出すことができました👏 本記事では、その機能が抱えていた課題に対しどのような改善のアプローチをして上記の結果に結びついたのか?について共有します。 Excel変換とは 今回、リアーキテクティングの対象となった機能は、カミナシに帳票として記録されたデータをExcel形式に変換して出力する機能です。 これを、”Excel変換” と呼んでいます。 Excel変換は、カミナシのサービスの中でも比較的古くから存在する機能です。 ここ数年での利用ユーザーの増加と共に、設計当初のシステムアーキテクチャが技術的な負債となっている状態でした。 Excel変換の課題 まず最初に、設計当初のアーキテクチ

                  技術的負債になりかけていた機能をリアーキテクティングしたら、めちゃくちゃ改善した話 - カミナシ エンジニアブログ
                • Amazon S3 へのファイルアップロードで POST Policy を使うと、かゆいところに手が届くかもしれない - カミナシ エンジニアブログ

                  はじめに こんにちは。カミナシでソフトウェアエンジニアをしている佐藤です。 みなさんは、アプリケーションのフロントエンドから、Amazon S3 にファイルをアップロードするときに、どのような方法を用いているでしょうか? 「バックエンドのサーバーにファイルを送信し、バックエンドのサーバー経由で S3 にアップロードしている」「Presigned URL を払い出して、フロントエンドから直接 PUT している」など、いくつかの方法があると思います。 弊社で提供しているサービス「カミナシレポート」でも、用途に応じて上記の方法を使い分けて S3 へのファイルのアップロードを行っています。 特に、Presigned URL は、手軽に利用できる上に、バックエンドのサーバーの負荷やレイテンシーの削減といったメリットも大きく、重宝しています。 一方で、その手軽さの反面、アップロードに際して様々な制約を

                    Amazon S3 へのファイルアップロードで POST Policy を使うと、かゆいところに手が届くかもしれない - カミナシ エンジニアブログ
                  • 助けて! CloudWatch Logs のコストが急上昇!! ログ管理の最適化でコストを 1/3 にした話 - カミナシ エンジニアブログ

                    カミナシ ソフトウェアエンジニアの mina(@yoiyoicho)です。このブログでは、私が所属する「カミナシ ID」開発チームにおいて実施した、インフラコストの最適化施策について紹介します! 「カミナシ レポート」の認証機能移行によりインフラコストが増加 「カミナシ ID」は OIDC / OAuth 2.0 などの標準仕様に準拠した、カミナシの ID 管理・認証基盤プロダクトです。インフラは AWS の各種サービスを活用して構築されています。 「カミナシ ID」は認証基盤という性質上、高いセキュリティや監査能力が求められます。そのため、API サーバーのアプリケーションログに加えて、データベースに対する操作やアクセス履歴をすべて記録した監査ログなど、各種ログを詳細に出力しています。これらのログは一度 CloudWatch Logs に集約され、Kinesis Data Firehos

                      助けて! CloudWatch Logs のコストが急上昇!! ログ管理の最適化でコストを 1/3 にした話 - カミナシ エンジニアブログ
                    • 「『50%の時間を技術的負債返済に』はぜんぜん駄目だった」 カミナシ社・原トリ氏が語る、試行錯誤の過程 | ログミーBusiness

                      「負債にも50パーセントの時間を使ってください」は機能しなかった西村賢氏(以下、西村):最初にやったことに価値がありました。そして、次は第2段。 原トリ氏(以下、原):この説明会やった時に、6月は一回止めますと(話しました)。完全に機能開発を止めて、サポートから流れてくるチケットに関してはオンコール体制を組んできちんと対応するけれど、機能開発はしないというのを戦略として……。 西村:これ、カミナシの歴史で初めてですね。 原:たぶん、初めてだと思います。 西村:そこは「大丈夫なのかな?」とかなかったんですか? 原:「この1年大きい機能、出てないよね?」みたいな共通認識は、全社にあったから経営の中で意思決定が早かったんです。 西村:なるほど。なにか技術的にうまくいっていないというのがあった。 原:そうです。プロダクトがうまくいっていないという認識がまず全社にあって、かつ、これがカミナシの底力と

                        「『50%の時間を技術的負債返済に』はぜんぜん駄目だった」 カミナシ社・原トリ氏が語る、試行錯誤の過程 | ログミーBusiness
                      • 監視ツールを迷ったら CloudWatch から始めてみるのもありなのでは - カミナシ エンジニアブログ

                        こんにちは、新規プロダクトの開発をしています、a2 (@A2hiro_tim )です。 昨日、開発してきたプロダクトについて、正式リリースを発表させていただきました 🎉 prtimes.jp employee.kaminashi.jp さて、新規プロダクトの立ち上げは、技術選定や運用ツールの自由度が高く、どの監視ツールを使うか、選択に迷うこともあると思います。 我々のチームでは複数ツールの使用経験はあるものの、特定のツールの導入経験や深い知見があるメンバーはいなかったので、フラットに比較検討し、 Amazon CloudWatch の利用から始めてみよう、と意思決定しました。 主な選定理由は、 AWS エコシステムの中で完結できるため、Terraform Cloud などの既存の設定を流用できて新しく覚えることが少ない、AWS 上でコストを一元管理できる、等のメリットがある。 サービス開

                          監視ツールを迷ったら CloudWatch から始めてみるのもありなのでは - カミナシ エンジニアブログ
                        • Terraform で実現する効率的な GitHub 権限管理 - カミナシ エンジニアブログ

                          こんにちは。ソフトウェアエンジニアの坂井 (@manabusakai) です。 今月でカミナシに入社してちょうど 1 年が経ちました。前職では 6 年間 SRE チームにいたのでプロダクト開発はブランクがありましたが、さまざまな挑戦をさせてもらっていたらあっという間に 1 年が経っていました。 カミナシのエンジニアリング組織もこの 1 年で急拡大しており、入社当初から比べると正社員のエンジニアも倍以上に増えました。 GitHub の権限管理、どうしていますか? ところで、みなさんが所属されている組織ではどのように GitHub の権限管理を行なっていますか? カミナシではつい先日まで、ほとんどのエンジニアが Organization の Owner 権限を持っていました。理由は、メンターになったエンジニアがニューカマーのユーザーを招待していたからです。 しかし、統制が取れていないことでいく

                            Terraform で実現する効率的な GitHub 権限管理 - カミナシ エンジニアブログ
                          • 理想のフロントエンドテストをたずねて三千里 - カミナシ エンジニアブログ

                            こんにちは。カミナシにて業務委託としてフロントエンドを担当している田村(@junkboy0315)です。皆さんはフロントエンドのテスト、どのように取り組んでいますか?フロントのテストはなかなか難しいですよね。 バックエンドのテストには、「入力、出力、永続化されたデータ」の3つを検証するという基本セオリーがあります。しかし、フロントエンドのテストは、その粒度や手法が多様で、とっつきにくいと感じる方も多いのではないでしょうか。 カミナシでもフロントエンドのテストは以前は十分とは言えない状態でしたが、これまで継続的に改善を重ねてきました。今回は、その変遷についてお話ししようと思います。 夜明け前 カミナシのコードベースでは、元々ユニットテストがある程度整備されていました。これらは主に複雑な計算処理を行い結果を返す関数などに対して実施されていました。 しかし、画面全体の機能を網羅する包括的なテスト

                              理想のフロントエンドテストをたずねて三千里 - カミナシ エンジニアブログ
                            • 円安を乗り越えるための Arm アーキテクチャへの移行が完了! そのプロセスを公開します - カミナシ エンジニアブログ

                              こんにちは。ソフトウェアエンジニアの坂井 (@manabusakai) です。 カミナシでは、クラウドインフラストラクチャに AWS を採用していますが、昨今の円安を受けて円換算での請求額は右肩上がりで増え続けています。サービスの規模や特性に関わらず、パブリッククラウドを利用する多くの日本企業で頭痛の種になっているのではないでしょうか。 円安になる前から継続的にコスト最適化には取り組んできましたが、クイックウィンで実施できるものはやり尽くしており手詰まり感がありました。しかし、我々スタートアップにおいて適正なコストに抑えることはランウェイ(キャッシュ不足に陥るまでの残存期間)を伸ばす意味でも重要なため、現状に甘んじることなく次の最適化ポイントを探していました。 Arm アーキテクチャ移行によるコスト最適化への期待値 AWS は Arm ベースの Graviton プロセッサを開発しており、

                                円安を乗り越えるための Arm アーキテクチャへの移行が完了! そのプロセスを公開します - カミナシ エンジニアブログ
                              • 頑張りすぎず、PlaywrightのCI実行時間を短縮した話 - カミナシ エンジニアブログ

                                カミナシのソフトウェアエンジニアisanaです。 カミナシレポートの開発に携わっています。 私たちのチームでは、Webアプリケーションの品質担保のため、Playwrightを用いたブラウザテストを実装し、GitHub Actionsで実行しています。しかし、このCIプロセスにおいていくつかの課題がありました。 他方、ソフトウェア開発においては日々寄せられるVoCに対応したり、新機能の開発を行うなかで、負債や課題を上手くハンドリングしていく必要があります。 本稿では、CIプロセスにおける課題をコスパよく解決するための改善策と、その過程で遭遇した「ハマったポイント」について、具体的な設定例を交えながらご紹介します。 PlaywrightやGitHub Actionsを利用している開発者の方々にとって、少しでも参考になれば幸いです。 前提となる環境 本稿で紹介する事例は、以下の環境を前提としてい

                                  頑張りすぎず、PlaywrightのCI実行時間を短縮した話 - カミナシ エンジニアブログ
                                • RDS Blue/Green Deployments を使ってシュッと utf8mb4 にマイグレーションした話 - カミナシ エンジニアブログ

                                  こんにちは。ソフトウェアエンジニアの坂井 (@manabusakai) です。 カミナシでは RDB に Amazon Aurora MySQL 2(MySQL 5.7 互換)を使っています(以下 Aurora MySQL と略します)。 ある日、社内の Slack で「𠮷」などの文字列が登録できないのではないかという話が出ました。これを聞いて「あー」と思った方も多いでしょう。 MySQL で有名な UTF-8 の 4 バイト文字問題で、歴史的な理由から MySQL 5.7 以前では utf8 の文字セットは utf8mb4 ではなく utf8mb3 を指しています。 dev.mysql.com カミナシのアプリケーションは 4 バイトの文字列が入力された場合はシステムエラーを返す実装になっていますが、エラーの内容をユーザーにわかりやすく伝えることは難しいためユーザー体験としても良くない

                                    RDS Blue/Green Deployments を使ってシュッと utf8mb4 にマイグレーションした話 - カミナシ エンジニアブログ
                                  • フロントエンド API コール時のエラーハンドリングを軽く整理(Fetch API・typescript-fetch・TanStack Query) - カミナシ エンジニアブログ

                                    カミナシのソフトウェアエンジニア佐藤です。カミナシレポートの開発に携わっています。 フロントエンドのエラーは「画面リロードやブラウザ再起動で復旧できる(かもしれない)」「クラッシュしてもユーザーの端末に閉じる」などの理由から、バックエンドよりは精緻に扱われない傾向があると個人的には感じています。 その一方、カミナシレポートは、ノンデスクワーカー向けの不安定なネットワーク環境で利用されることも多々あるアプリです。そのため、デジタルツールに不慣れな方のために精緻なフィードバックが必要とされる、リロードに頼ることが難しいケースがある、などの理由でエラーの扱いにも慎重になる必要があります。 本記事では、カミナシレポートのフロントエンド開発をする中で、 バックエンドの API コール時にエラーが発生する条件とその内容(型・クラス) これらエラーをハンドリングする箇所 について、把握しておきたいと感じ

                                      フロントエンド API コール時のエラーハンドリングを軽く整理(Fetch API・typescript-fetch・TanStack Query) - カミナシ エンジニアブログ
                                    • 属人化とリスクからの脱却! ドメイン & DNS レコード管理をゼロから再設計した話 - カミナシ エンジニアブログ

                                      こんにちは。ソフトウェアエンジニアの坂井 (@manabusakai) です。インターネットの根幹を支えるドメインと DNS の仕組みが好きです。 ところで、みなさんの会社ではドメインや DNS レコード(リソースレコード)をどのように管理されていますか? カミナシでは以下のような課題を抱えていました。 運用・管理面 複数のレジストラでドメインが取得されていたため、異なる管理画面の操作方法や請求書の連携で手間がかかっていた DNS レコードのほとんどが手作業で追加され、それらのレコードが登録された経緯や目的の記録が残されていないものが多数あった。加えて、棚卸しの実施が不十分で、必要性が不明確なレコードが多数存在していた セキュリティ面 一部のレジストラにおいては、きめ細やかな権限管理機能が提供されておらず、ID とパスワードを共有せざるを得ない状況であった。結果として、CTO がこれらに関

                                        属人化とリスクからの脱却! ドメイン & DNS レコード管理をゼロから再設計した話 - カミナシ エンジニアブログ
                                      • AWS WAF を COUNT モードで動かしたはいいが、その後どうすればいいんだっけ? - カミナシ エンジニアブログ

                                        どうも Security Engineering の西川です。好きなポケモンはクワッスです。カミナシ社内に遂にポケモンカード部ができまして、部員同士切磋琢磨し始めています。いつか企業対抗ポケモンカード大会をするのが夢です。 さてさて、皆さんは AWS WAF(Web Application Firewall、以下 WAF)を使っていますか?サービスに WAF を導入する際は一定期間 COUNT モードで運用することがセオリーとされています。では、COUNT モードから BLOCK モードに切り替える時に何をもって BLOCK モードへの切り替えを判断していますか? 本記事はつい先日リリースされたカミナシ従業員というサービスを開発しているメンバーから「WAF(Web Application Firewall) を COUNT モードで動かして一定期間経ったのだけど、どのルールを BLOCK

                                          AWS WAF を COUNT モードで動かしたはいいが、その後どうすればいいんだっけ? - カミナシ エンジニアブログ
                                        • アジャイルな見積もりと計画づくりをしないチームのはなし - カミナシ エンジニアブログ

                                          こんにちは。「カミナシ 教育」というプロダクトを作っているふじはら(@daipresents) です。毎日アイスを3本以上食べてます。 僕は「カミナシ 教育」のサービスチーム(スクラムチームみたいなチーム)でマネジメントを担当していますが、それ以外ではダブルワークでアジャイルコーチとしていろんな企業の開発支援も行っています。 カミナシでは各チームが自律して動くことを求められ、それぞれが試行錯誤しながらがんばっています。なので、カミナシではあんまりアジャイルコーチの仕事はしていないのですが、自分のチームを俯瞰して見ていると、自然とアジャイルな見積もりと計画づくりをしていないことに気がつきました。 『アジャイルな見積もりと計画づくり』は名著です。だから、僕はチームでの開発にかかわる方に、この本をいつもおすすめします。なのになぜ、このチームはやらないのか? 具体的には スプリント計画 ストーリー

                                            アジャイルな見積もりと計画づくりをしないチームのはなし - カミナシ エンジニアブログ
                                          • ヌルヌル動くReactコンポーネントの作り方【入門】 - カミナシ エンジニアブログ

                                            こんにちは、カミナシの浦岡です。 最近、弊社のメンバーとしてUIデザイナーが新たに加わり、プロダクトのUI改善を進めています。 以前は、AntDesignなどUIライブラリーのコンポーネントをそのままプロダクトで使用する機会が多かったのですが、UI改善を行う上で、UIライブラリーそのままでは要件を満たすことが困難なケースも出てきました。 その結果、独自のReactコンポーネントを実装する機会が増えているのですが、 この記事では、その独自コンポーネントを「ヌルヌル動く」仕上がりにするために気をつけている点を架空の題材を使って書きます。 題材 今回、「空を舞うカレンダー」(ペルソナ5風!?)のUIがデザイナーから提示されたと仮定して進めます。 極端な題材ですが、UIライブラリのカレンダーをベースには実現できそうにないので、独自コンポーネントとして作りましょう! 先に、ヌルヌル動かす上で気をつけ

                                              ヌルヌル動くReactコンポーネントの作り方【入門】 - カミナシ エンジニアブログ
                                            • フロントエンドの Monorepo をやめてリポジトリ分割したワケ - カミナシ エンジニアブログ

                                              こんにちは。ソフトウェアエンジニアの坂井 (@manabusakai) です。 カミナシのプロダクトは、管理者の方が使う Web アプリに React、現場の方が使う iPad / iPhone アプリに React Native を採用しています。 どちらもフロントエンドの技術スタックを採用していることもあり、先日までは Monorepo と Yarn Workspaces の構成で運用されていました。 最近では Monorepo 化を進めている事例もよく見かけるようになってきました。 engineering.mercari.com devblog.thebase.in ですが、カミナシでは Monorepo をやめてリポジトリ分割をする意思決定を行いました。 具体的には、harami_client という Monorepo を harami_web と harami_mobile とい

                                                フロントエンドの Monorepo をやめてリポジトリ分割したワケ - カミナシ エンジニアブログ
                                              • Web Application のテストを runn で書いて、開発と価値提供を加速する - カミナシ エンジニアブログ

                                                こんにちは、「カミナシ 従業員」サービスチームのソフトウェアエンジニアの a2 (A2hiro_tim) です。 早速ですが、ウェブアプリケーション開発、特に Go 言語を使っている方は、テストをどのように書いていますでしょうか。 我々のチームはバックエンドに Go を採用しており、 Table Driven Test (以下 TDT )を使っていました。Go を採用した開発では TDT が広く採用されており、我々も慣習に則るのが最善だと判断したからです。 しかし実際に開発を進めると、ことウェブアプリケーション開発における TDT にはいくつか課題を感じるようになりました。そこで我々のチームでは runn というツールをテストに活用する方針に切り替え、その結果、開発を加速し、価値提供も早くすることができました。 本記事では、TDT の課題、runn の採用経緯、その後について我々のチームの

                                                  Web Application のテストを runn で書いて、開発と価値提供を加速する - カミナシ エンジニアブログ
                                                • JavaScript で Wasm 使ってるなら要注意! そのメモリ、本当に解放されてますか? - カミナシ エンジニアブログ

                                                  数ヶ月前、画像処理ライブラリ OpenCV.js を使って Web カメラの映像をリアルタイム処理するプロトタイプを作っていたときのことです。 OpenCV.js は C++ で書かれたコードを WebAssembly(Wasm) にコンパイルして作られており、Wasm ならではのブラウザ上での高速な処理が可能なライブラリです。 実際、画像のフィルタ処理や特徴点検出など、ユニットテストの段階では高速に実行でき、開発は一見順調に進んでいるかのように見えました。 ところが、いざアプリケーションに画像処理モジュールを組み込んでみると、起動したカメラが数秒経つとなぜか止まってしまいました。 コンソールにもエラーは出ず、Chrome を再起動すればまた数秒だけ動く……そんな不可解な状態に悩まされました。 原因は、Wasm のメモリリーク。 そう、恐ろしいことに C++ 製 Wasm で作られたライブ

                                                    JavaScript で Wasm 使ってるなら要注意! そのメモリ、本当に解放されてますか? - カミナシ エンジニアブログ
                                                  • インフラ未経験エンジニアが構築したGCPがたった数ヶ月でAWSに移行された話 - カミナシ エンジニアブログ

                                                    こんにちは、株式会社カミナシのエンジニア @imu です。 はじめに 2021年11月に以下の開発者ブログを公開しました。 kaminashi-developer.hatenablog.jp α版として構築したインフラですが、2022年1月にインフラ移行の話が突如検討されました。 なぜ最終的にAWSへ移行になったのかと私が何を感じたのかをお話します! 補足 完全移行したのはAPIサーバーです。クライアントアプリはCloudBuild + Firebase Hostingの環境が残った状態です。 移行後のAWS構成図はここでは共有していません。また別の機会に。 GCPを否定する記事ではありません。 本記事で様々なコメントを頂いておりますが、追加で補足をさせてください。 記事内の「私がGCPを選択した理由」で、私個人が勝手な意思決定をしてGCPを選択したように受け止められてしまう書き方でした。

                                                      インフラ未経験エンジニアが構築したGCPがたった数ヶ月でAWSに移行された話 - カミナシ エンジニアブログ
                                                    • なぜ、安易に「スクラムで開発します」と言わなかったのか? - 結果整合的アジャイルを目指す開発 - カミナシ エンジニアブログ

                                                      プレイングマネージャー型のEMをしています、鈴木(@szk3)です。 今回は、私たちのサービスチームが新規プロダクト開発を始めるにあたって「スクラムを導入しなかった」経験について共有します。 このタイトルだけを見ると、スクラムに対して否定的な印象を持たれるかもしれません。しかし、これはスクラムへのアンチテーゼではありません。むしろ、スクラムの価値をリスペクトし、その実践に真摯に向き合いたいからこそ行った慎重な決断でした。実際、新規プロダクト開発の開始とほぼ同時期に認定スクラムマスター資格も取得し、スクラムについての理解を深めていく中で、この決断の意義をより一層実感しています。 新規プロダクトの開発において、アジャイル開発を取り入れることは当然の選択肢として考えられます。むしろ、アジャイル開発の実践にスクラムのフレームワークを使うことは、実質上のスタンダードとなっていると感じます。しかし、「

                                                        なぜ、安易に「スクラムで開発します」と言わなかったのか? - 結果整合的アジャイルを目指す開発 - カミナシ エンジニアブログ
                                                      • AWS アクセス管理を一歩先へ!カミナシのセキュアな AWS アクセス管理を実現するシステムの紹介 - カミナシ エンジニアブログ

                                                        カミナシのエンジニアリング組織では、チームメンバーの AWS アカウント環境への定常的なアクセス権限として「センシティブな情報を除いた全リソースへの ReadOnly Access」を付与しており、一方で書き込み権限については必要に応じてメンバーが一時的に権限を獲得できる仕組みとシステムを開発し、運用を行っています。 本記事では、そういった仕組みを開発するに至った経緯や仕様、そしてこれを数ヶ月ほど運用した結果と今後の展望について紹介します。 このシステムは『ハマヤン』という名前で呼ばれていますが、あまねくユーザーに愛される素敵な名称であり、Sec Eng チーム内でも大人気です。開発者が濱野さんだからハマヤンにしたのでは?と社内で言われることがありますが、真相は不明です。 ハマヤンを開発した理由 ハマヤン開発前の2022年頃、カミナシではソフトウェアエンジニア全員が Administrat

                                                          AWS アクセス管理を一歩先へ!カミナシのセキュアな AWS アクセス管理を実現するシステムの紹介 - カミナシ エンジニアブログ
                                                        • Go の ORM はどのようにして AUTO INCREMENT で採番された値を取得しているのか? - MySQL 編 - カミナシ エンジニアブログ

                                                          こんにちは。カミナシで「カミナシレポート」の開発を担当しているソフトウェアエンジニアの佐藤です。 カミナシレポートのバックエンドは Go で開発しており、データベースには Amazon Aurora MySQL を使用しています。また、データベースアクセスには ORM ライブラリの GORM を採用しています。 ほとんどのテーブルでは、プライマリキー(ID列)に AUTO INCREMENT を利用しています。これらのテーブルに GORM の Create メソッドなどを使って新しいレコードを挿入すると、AUTO INCREMENT で採番された値が自動的に対応する Struct のフィールドに反映されます。 AUTO INCREMENT による値の採番は MySQL 側で実行されているため、Go 側の Struct のフィールドに反映させるためには、Go アプリケーション側が何らかの方法

                                                            Go の ORM はどのようにして AUTO INCREMENT で採番された値を取得しているのか? - MySQL 編 - カミナシ エンジニアブログ
                                                          • AWS WAFがあれば安心!? 甘い! 甘すぎる!!「第2回ごーとんカップ」開催 - 次のカミナシセキュリティチャンピオンは誰だ!? - カミナシ エンジニアブログ

                                                            初めまして!10 月にカミナシへ入社した いちび(@itiB_S144) です。セキュリティエンジニアリングユニットに所属しつつ、8 月にリリースしたばかりの カミナシ従業員 の開発に携わっています。 先日社内エンジニア向けのセキュリティ競技会「第 2 回ごーとんカップ」を開催しました。ごーとんカップとは、社内のエンジニアが集まって CTF(Capture The Flag) 形式でセキュリティに関する問題、カミナシの開発に関わる問題を一人ひとりが解いて得点を競う大会です。CTFとは、セキュリティなどに関する問題を解いて隠されたキーワード(フラグ)を取得する競技です。 今回は、その運営を担当したので、その様子を紹介します。 ごーとんカップの目的と概要 ごーとんカップはカミナシのエンジニアリング組織におけるセキュリティ文化の醸成を目的としています。カミナシのエンジニア全員参加で、まとまった時

                                                              AWS WAFがあれば安心!? 甘い! 甘すぎる!!「第2回ごーとんカップ」開催 - 次のカミナシセキュリティチャンピオンは誰だ!? - カミナシ エンジニアブログ
                                                            • 開発チームの中でセキュリティを育てる - セキュリティエンジニア派遣の試み - カミナシ エンジニアブログ

                                                              どうもセキュリティエンジニアリングの西川です。JAWS DAYS 2025 の帰路でこのブログを書いています。私は空港でブログを書く確率が非常に高いです。なぜか捗るんですよね。 さて、カミナシでは昨年からセキュリティエンジニアを二人追加で採用することができ、業務委託含め5人体制になりました。それを機にセキュリティエンジニアを開発チームに派遣する仕組みを導入したのでそれについて話をしていきたいと思います。 セキュリティエンジニアを開発チームに派遣するとは 派遣するセキュリティエンジニアの目指すところを一言で表すならば「特定のサービス・プロダクト・チームを深く理解したセキュリティエンジニア」です。 派遣されるセキュリティエンジニアは基本的には最初の半年から1年程度は開発チームの1メンバーとして、ともに開発や運用を行います。ですので、障害対応やインシデント対応、お客様からの通常のお問い合わせなど

                                                                開発チームの中でセキュリティを育てる - セキュリティエンジニア派遣の試み - カミナシ エンジニアブログ
                                                              • UIが嘘をつく? UXデザインにおける「楽観的な更新」とSPAでの作り方 - カミナシ エンジニアブログ

                                                                こんにちは、デザインエンジニアのショウです。 突然ですが、UI/UX デザインにおいて、「楽観的な更新」という言葉を聞いたことがありますか?あまり聞いたことがなくても、実は日常にたくさん存在しています。 例えば、 twitter や facebook のいいねボタン。いいねをタップした直後に色がつくのですが、実はサーバーへのリクエスト送信と UI 上のいいねの色付きが同時に発生しています。つまりサーバーからの通信結果待たずに UI を更新しています。 他に、trello でタスクカードを隣の列に移動したり、iMessage や Facebook メッセンジャーでのメッセージの送信、Kindle アプリで途中までしかダウンロード出来てない本が読めることなども楽観的な更新です。 図:楽観的な更新を採用しない時と採用した時のメッセージ送信のUI (引用元) 楽観的な更新の意義 早くも 1968

                                                                  UIが嘘をつく? UXデザインにおける「楽観的な更新」とSPAでの作り方 - カミナシ エンジニアブログ
                                                                • RDBMSの先を行く?NewSQLを支えるアルゴリズムRaftをGoで紐解く - カミナシ エンジニアブログ

                                                                  初めまして。株式会社カミナシPMの@gtongy1です。 みなさんはNewSQLをご存知ですか? 強い整合性を持つ分散型のSQLデータベースサービスのことをNewSQLと呼びます。 RDBMSではなし得なかった分散アーキテクチャを、またNoSQLではなし得なかった強い整合性をいいとこ取りした新しいSQLデータベースサービスです。 なんかとても理想的な仕組みに見えますね。この裏にはどのような知識が詰め込まれているのでしょうか。 今回はそんなNewSQLを支える仕組みを一緒に紐解いていきましょう! NewSQLが乗り越えた壁 どんな仕組みが動いているのか、の前にNewSQLはこのSQLデータベース界へ何を投げ込んだのでしょうか。 NewSQLには以下のような特徴があります。 SQL-Likeなクエリ言語のサポート 強い整合性 ACIDサポートのトランザクション NewSQLの有名所であるCoc

                                                                    RDBMSの先を行く?NewSQLを支えるアルゴリズムRaftをGoで紐解く - カミナシ エンジニアブログ
                                                                  • OAuth mTLSを実現するためにAWSでできること、できないこと - カミナシ エンジニアブログ

                                                                    はじめに カミナシでID管理・認証基盤を開発しているmanaty(@manaty0226)です。 カミナシではAmazon Web Services(AWS)上で認証基盤を構築して動かしています。特にOpenID Providerのコア機能含めて内製しており、さまざまなOAuth拡張仕様を駆使してお客様の要求やプロダクト機能の実現に寄与しています。今回は、相互TLS(mTLS: mutual Transport Layer Security)と呼ばれる、クライアントとサーバーがともに証明書を提示して安全に接続する技術に立脚したRFC 8705 OAuth 2.0 Mutual-TLS Client Authentication and Certificate-Bound Access Tokens(以下、OAuth mTLSと呼びます)を実現するために検討した内容を書きます。 仕様自体の話

                                                                      OAuth mTLSを実現するためにAWSでできること、できないこと - カミナシ エンジニアブログ
                                                                    • カミナシ社の執行役員 CTO に就任しました|Tori Hara

                                                                      トリ(@toricls)です。 カミナシに入社してから早いもので3ヶ月 + α が経ちましたが、さすがのアーリーステージなスタートアップという感じです。前職では想像もしなかったようなスピード感で激☆動イベントがポコポコ発生し、つい先日書いた入社エントリがすでに遠い過去のことのように感じます。 というわけで、本日(2022年7月1日)付けでカミナシの執行役員 CTO に就任しました。 本記事では、あらためてカミナシという会社やサービス、それらを支えるエンジニアリング組織の話とともに、就任にあたっての今後への思いをしたためようと思います。 CTO 就任の経緯これまで公にはしてなかったのですが、実はもともとカミナシからの入社オファーは『CTO 候補』というタイトルでもらっていました。僕はこれまで CTO という役割を経験したことがないため、まずは入社して一緒に働いてみて、僕も会社もお互いに期待に

                                                                        カミナシ社の執行役員 CTO に就任しました|Tori Hara
                                                                      • インフラ未経験エンジニアがGCPで爆速構築する奮闘記 - カミナシ エンジニアブログ

                                                                        こんにちは、株式会社カミナシのエンジニア @imu です。 はじめに 私はインフラに対して苦手意識(詳しく知らない)があり、issueに対して率先して改善しようとしませんでした。このまま深く触ることはないかなと思っていた矢先、新規プロダクトのインフラ構築をお願いされました。 めちゃくちゃ不安しかなかったのですが、最初から構築する機会なんて滅多にないのでチャレンジすることに! (内心はやりたくないなと思ったけど…) 私自身は知らない領域にチャレンジすることは好きなので、楽しんでやろうと思いました。 苦手意識がある私がどのように、リリースできる環境を構築したか共有できればと思います! 注意)本内容はα版という位置づけで構築しており、正式リリース時には都度変更をしていきます。 Day 1(技術選定) 弊社はカミナシレポートというサービスを提供しています。このプロダクトはAWSを利用しており、その

                                                                          インフラ未経験エンジニアがGCPで爆速構築する奮闘記 - カミナシ エンジニアブログ
                                                                        • スクラムを立て直すために取り組んだ 5 つのこと - カミナシ エンジニアブログ

                                                                          こんにちは。ソフトウェアエンジニアの坂井 (@manabusakai) です。 10 月の終わりに、ひとつだったエンジニアリングチームを分割する形で 2 チームが生まれました。社内では骨 🦴 と稲 🌾 という愛称で呼ばれています。 ちなみに、骨 🦴 の由来はこちらです。 今週から新しいチームが始動するのですが、チーム名は「骨」になりました🦴 英語の "hone" は「磨きをかける」という意味があるので、骨太でしっかりしたシステムを作り磨きをかけるという願を懸けました✨ pic.twitter.com/Gvf2VBYk7d— Manabu Sakai (@manabusakai) 2022年10月25日 前職でチームの立ち上げやスクラムを経験していたこともあり、CTO から骨 🦴 チームのスクラムマスターを任されました(専任ではなくエンジニアと兼任です)。 チームの立ち上げから 1

                                                                            スクラムを立て直すために取り組んだ 5 つのこと - カミナシ エンジニアブログ
                                                                          • Goでダブルポインタを知った話 - カミナシ エンジニアブログ

                                                                            こんにちは。カミナシ ソフトウェアエンジニアのAomanです。 最近ちょこちょこアルゴリズムやデータ構造、Goのキャッチアップしています。 そんな中、go.devのブログ Go blog のとある記事でダブルポインタを使用するコードに出会いました。筆者は今まで、RubyやJavaScript/TypeScriptなどの言語を多く触っていたためか、お恥ずかしながらダブルポインタを使うコードを初めて見たので「なんなのだこれは…」と戸惑いました。本記事ではそんなダブルポインタが使われていたコードについて、簡単にご紹介したいと思います。 そもそもダブルポインタとは? その名の通りポインタのポインタのことなのですが、わからない方は下記の記事がわかりやすくまとまっており参考になると思います。 daeudaeu.com ダブルポインタと聞いて、まずはじめに思った感想は「そんなもの必要?」です。今まで使っ

                                                                              Goでダブルポインタを知った話 - カミナシ エンジニアブログ
                                                                            • 専任チームが存在しないカミナシでどうやってインフラの改善を進めているのか? - カミナシ エンジニアブログ

                                                                              こんにちは。ソフトウェアエンジニアの坂井 (@manabusakai) です。 カミナシでは職能別のチーム分けをしておらず、エンジニアのロールは基本的に全員ソフトウェアエンジニアです。フロントエンドやバックエンドにとどまらずインフラやセキュリティも含めて、サービス開発チームがすべてを担っています。 CTO の言葉を借りるなら「システムのライフサイクル全体を見る」のがカミナシにおけるソフトウェアエンジニアであり、単一のチームで顧客への価値提供ができる体制を目指しています。 type.jp しかし、個々人のスキルマップを見るとインフラ領域を得意とするメンバーが少なく、インフラの改善は後回しになっていました。 私は前職で 6 年ほど SRE として働いていたので、入社時点からインフラの改善にも着手しなければと感じていました。しかし、専任チームが存在しないカミナシでの取り組みは、まさに試行錯誤の連

                                                                                専任チームが存在しないカミナシでどうやってインフラの改善を進めているのか? - カミナシ エンジニアブログ
                                                                              • Feature Flags の仕組みを整備して、デプロイとロールアウトの分離を加速させた - カミナシ エンジニアブログ

                                                                                こんにちは、カミナシでソフトウェアエンジニアをしている 佐藤 と申します。 弊社で開発・提供しているノンデスクワーカー向けプラットフォーム「カミナシ」(以降「カミナシレポート」や「弊社アプリケーション」と呼びます)において、Feature Flags の仕組みを整備し、デプロイとロールアウトの分離を加速させたことについてご紹介したいと思います。 登場する技術 Amazon Elastic Container Service (ECS) AWS AppConfig AWS AppConfig agent 前提知識 後半の「技術的な話」以降の部分は、以下の技術についても触れています。 Feature Flags、Feature Toggles AWS AppConfig Amazon Elastic Container Service (ECS) Terraform 「背景」や「解決策」といっ

                                                                                  Feature Flags の仕組みを整備して、デプロイとロールアウトの分離を加速させた - カミナシ エンジニアブログ
                                                                                • 【AWS re:Invent 2024】テナント分離の考え方を整理したらRFC 8693に辿り着いた - カミナシ エンジニアブログ

                                                                                  はじめに カミナシでID管理・認証基盤を開発しているmanaty(@manaty0226)です。ラスベガスで開催されているAWS re:Invent 2024に初めて参加しています。今回はチョークトークセッションで開催された「Next-generation SaaS tenant isolation strategies」に参加したレポートをお届けします。 チョークトークセッションでは登壇者と聴講者が互いにディスカッションしながら進めていきます。登壇者の話している内容について疑問に思えば手を挙げて質問できますし、そこで面白い論点が出てきたら登壇者は深掘りしてくれるので、あらかじめ準備された話を聞くよりも学びの深い時間を過ごすことができます。 テナント分離とはなにか セッションはまずテナント分離とはなにか、なぜテナント分離する必要があるのかを問いかけて始まります。テナント分離とは単にテナント

                                                                                    【AWS re:Invent 2024】テナント分離の考え方を整理したらRFC 8693に辿り着いた - カミナシ エンジニアブログ