hacomono TECH BLOG
https://techblog.hacomono.jp/
フィットネスクラブやスクールなどの顧客管理・予約・決済を行う、業界特化型SaaS「hacomono」を提供する会社のテックブログです!
フィード

画面のテストコードを無理しない書き方で書く
1

hacomono TECH BLOG
こんにちは。UX部のがーみーです。最近は植物が好きになり、花やら観葉植物を置くようになりました。みているだけで気持ちが落ち着きます。 この記事ではフロントエンドのテストコードについて、書かれるようになってきて出てきた問題を整理し、無理をしない書き方を探ります。 フロントエンドテストが書かれるようになった 私が入社した2023年はフロントエンドのテストコードがあまり書かれていませんでしたが、さまざまな取り組みによって、フロントエンドにも普通にテストコードが書かれるようになりました。いまでは Testing Library を利用して、ページやUIコンポーネントなど、画面に対するテストが書けるよう…
4日前

「この機能、本当に必要?」から脱却するために取り組んだこと
hacomono TECH BLOG
はじめに こんにちは、hacomono でプロダクトエンジニアとして日々開発に励んでいる renren です。 「プロダクトエンジニアとは?」と思われた方は、こちらのスライドや過去の記事にまとまっていますので、ぜひご覧ください。 "ウルトラジャンプ" な成長を支えるプロダクトエンジニアというキャリア - Speaker Deck 「プロダクトエンジニア」という役割を定義しましたというお話 - hacomono TECH BLOG プロダクトエンジニアとしての観点を詰め込んだ開発設計書のテンプレートを公開します - hacomono TECH BLOG 本記事で紹介する取り組みは、「"ウルトラジ…
10日前

IoTベンチャー出身のPdMが株式会社hacomonoに惹かれた理由
hacomono TECH BLOG
1. はじめに・自己紹介 こんにちは!hacomono IoT部でPdMを担当しているクレさんです。 2024年10月にhacomonoに入社してまだ1年弱の在籍期間ですが、過去のIoT業界での7年間の経験を活かしてhacomonoで新しい挑戦をしています。 私のキャリアは少し変わっていて、メンズシルバーアクセサリー販売の店長からスタートし、その後IT業界に転身。スマホゲーム業界で約10年、そして最後の7年間はスマートホームIoTベンチャーの取締役として開発・生産管理を担当していました。 前職のIoTベンチャーでは、スマート家電リモコンやスマートロックなど、ハードウェアとソフトウェアの両方を扱…
18日前

QAエンジニアによるAI活用事例:Claude Codeで実現するE2Eテスト開発の効率化
hacomono TECH BLOG
こんにちは、hacomonoQA部のたっきー(滝田)です。 hacomonoのQA部では自動テストの手段の1つにPlaywrightを利用しています。 今回は、Claude Codeを用いたEnd-to-End(E2E)テストの実装について紹介します。 はじめに 本記事の執筆サポートとしてClaude Codeを利用しております。 E2Eテストの実装、テックブログに向けて実装内容の整理、記事の下書きにもClaude Codeを用いております。 プロジェクト概要 対象システムは、会員管理、予約システム、決済処理、外部デバイス連携など、多岐にわたる機能を提供するWebアプリケーション「hacomo…
25日前

Site Reliability Engineeringをポジティブに捉える
hacomono TECH BLOG
はじめに こんにちは。SRE部のiwachan( @Diwamoto )です。 最近人生で初めて登壇をしました(資料)。hacomonoは私のSRE人生2社目ですが、ようやくエンジニアとしてやりたかった外部登壇や社外への貢献ができるようになり、とてもありがたく思っています。 💡 記事中のSREはSite Reliability Engineeringを指します。 職業としてのSREは記事中ではSREエンジニアとしています。 TL;DR 万事ポジティブに捉えた方が幸せになれる SREは「やらされるもの」ではなく「便利なツール」 その為に、SREエンジニアはやれることは何でもやるべき 想定読者 社…
1ヶ月前

【mysql】取得するデータ量が少ないときの方が実行時間が長くなることがあった
hacomono TECH BLOG
「3月以前の集計はすぐに終わるのに、4月の集計がいつまで経っても終わらない。」 feature部会計決済グループのこじこじです。 あれは今年の4月上旬の出来事でした。 hacomonoのとある月次集計機能を担当している私のもとに上記の問い合わせが飛び込んで来ました。 結論、mysqlのクエリオプティマイザの誤判断で、使われるべきindexが使われず、意図せずテーブルのフルスキャンが発生していたという事象でした。 最終的にはUSE INDEXを指定するようにクエリを修正し、意図したインデックスが強制的に使われるように修正をリリースしました。 発生した現象 この問い合わせが来たのは4月の上旬なので…
1ヶ月前

Go言語で運用品質を向上させるエラーハンドリングライブラリを作った
hacomono TECH BLOG
こんにちは、リアーキテクチャ&イネーブルメント部のjunです。 普段はフレームワーク寄りの機能やライブラリの開発、パフォーマンスチューニング、リファクタリングなどなどプロダクトの土台を支える役割を担当しています。 今回は、運用品質向上のために開発した、Go言語のエラーハンドリングライブラリ「go-errorsx」の設計思想と活用方法をご紹介します。 ※ go-errorsxはまだ発展段階のライブラリです。APIの変更や機能追加が行われる可能性があります。また、ValidationErrorは開発中の機能で、将来的にcontribとして別パッケージに分離する可能性があります。 なぜ新しいライブラ…
1ヶ月前

モジュラーモノリス導入がもたらした功罪
hacomono TECH BLOG
こんにちは、プラットフォームチーム所属のmaco+(まこたす)です。 ちょうど2年前に「モノリスなRailsにモジュラーモノリスを導入した話」というタイトルで執筆させていただきましたが、その後の取り組み・経過について中間レポートをお伝えできたらと思います。 導入の背景 本題に入る前に導入の背景やポイントについて簡単におさらいしたいと思います。 導入検討当時、今後人数の増加が考えられる開発組織においてhacomonoプロダクトの開発生産性を下げないようにしたいという課題がありました。人数が増えると複数のチームから触れるようなコードに対しては認知負荷があがり責任の所在が曖昧になるものです。当時これ…
2ヶ月前

Claude Code が current branch の修正内容を正常に把握できない!そんなときは
hacomono TECH BLOG
どうも、みゅーとんです. 小ネタとして, Claude Code の応答に問題が起きたので調べてみた備忘録をまとめておきます. 何が起きたか? 朝出勤して、続きの開発をやるかー!という意気込みで Claude Code を起動し, “今いるブランチの修正内容を一旦把握してください” と指示すると・・ なんか突然 2023年にあったっぽいブランチと HEAD を比較し始めました!どうしたんだ・・ この挙動は同じ指示をすると毎回発生しました. 再現性があるなら原因があるはずなので, 軽く調べてみました. 原因 3 行でまとめます. 当時は default branch の名前を定期的に変更しており…
2ヶ月前

AIにコードを調査させてみた
hacomono TECH BLOG
こんにちは。運用保守部のnacchiです。 今回は運用保守部の主な業務の一つである問い合わせ対応について、どうにかAIを活用して効率化を図れないかを検証してみた結果を書かせていただきます。 運用保守部では幅広い業務を行なっており、顧客からの問い合わせ対応や運用業務の仕組み化、システム改善・改修などを行なっています。 中でも顧客からの問い合わせ対応はウェイトが大きく、また時間的負担も大きい業務になっています。 問い合わせ件数はhacomono利用店舗の拡大に伴い増えており、運用保守部に来る問い合わせ件数は直近2ヶ月は毎月200件近くの問い合わせが来ています。 限られた人数・限られた業務時間でこの…
2ヶ月前

hacomonoのUXエンジニアとは?技術とデザインの架け橋として、ユーザー体験を追求するエンジニアの役割
hacomono TECH BLOG
こんにちは。hacomono UX部エンジニアの yasu です。 hacomonoでは、フィットネスクラブ・インドアゴルフ・24hジム・スイミングスクールなどのウェルネス領域の店舗運営を支える会員管理・予約・決済システムを提供しています。 この記事では、hacomonoでUXエンジニアという職種を定義するに至った背景から、その役割や求めるスキルなどをご紹介します。 なぜUXエンジニアという職種定義が必要になったのか? hacomonoのプロダクト開発本部では、「プロダクトエンジニア」の定義は存在していましたが、UX部が求めるエンジニアの定義については明文化されていませんでした。 そこで今回、…
2ヶ月前

hacomonoプロダクトチームの社内イベント「6月だョ!全員集合 2025」を開催しました
hacomono TECH BLOG
はじめに こんにちは、Engineering Officeのぬんです。 東京でも毎日30度を超える真夏日が続いた6月下旬、hacomonoでは暑さに負けず全国からプロダクトチームのメンバーが集まる『6月だョ!全員集合 2025』が開催されました。 フルリモートで北海道から沖縄まで全国に社員が散らばるhacomonoでは、皆が顔や人となりを直に感じてもらえるよう、定期的にオフラインイベントを開催しています。 社内の半数を占めるプロダクトチーム全員が集まるこのイベントは全社員が集まる「hacofes」に次ぐ大イベント! 当日会場には110名以上が集まり、一丸となってイベントを盛り上げてくれました。…
3ヶ月前

SORACOM VPGへの全面移行体験記 - 99%以上の移行を完了した実録
hacomono TECH BLOG
はじめに こんにちは!hacomonoのIoT部でバックエンドエンジニアをしているベーです。 hacomonoのIoT製品では数千台のデバイスがSORACOMのサービスを利用しており、今回はSORACOM VPG(Virtual Private Gateway)への移行プロジェクトについて、実際の移行体験と学んだことを共有したいと思います。 結論から言うと、現在99.5%のデバイスの移行を完了し、「もっと早くやっておけばよかった」というのが正直な感想です。この記事では、移行の背景から実際のトラブル、そして得られた知見まで包み隠さずお話しします。 SORACOM VPGとは? SORACOM V…
3ヶ月前

開発経験0のQAエンジニアが、playwrightでE2Eテストを実装するまでの記録
hacomono TECH BLOG
こんにちは。 最近家でパンを焼きまくっているhacomono QAのpiroこと廣田です。 この記事を開いてくれたQAエンジニアのあなた、 もしかすると、なんとなくコードに対しての苦手意識を持っていたりしませんか? まさに私がそうでした。 開発経験もなく、ホワイトボックステストの経験も少なく、 コード=よく分からないもの と思ってしまっていて、正直苦手だなと感じていました。 そんな状況から抜け出そうと覚悟を決めて半年間、コードベースの自動テスト実装と向き合った記録をここに残しておこうと思います。題して、 開発経験0のQAエンジニアである私が、コードベースのテスト自動化ツール”Playwrigh…
3ヶ月前

Burp AI : セキュリティ診断にAIの力を借りる
hacomono TECH BLOG
こんにちは、プロダクトセキュリティグループの徐承賢(sunchan)です。まだ入社して間もないですが、hacomonoのセキュリティ強化に向けて日々奮闘しています。 最近、hacomonoではAI活用の動きが本格化しており、私自身もセキュリティエンジニアとしてこの流れに乗ってみようと思いました。そんな中、Webアプリケーションの脆弱性診断ツールとして広く知られている「Burp Suite」に、今年2月からAIを活用した新機能「Burp AI」が追加されたという情報を、チームメンバーから教えていただきさっそく試してみることにしました。 Burp AIとは? Burp AIは、PortSwigge…
3ヶ月前

祝!AIカメラリリース、その舞台裏(QAエンジニア編)
hacomono TECH BLOG
こんにちは!hacomono QAのモーリーこと森島です。 先日満を持してAIカメラソリューションをリリースしました。 hacomono、AIカメラソリューションの提供を開始。ジム運営が“データドリブン”に進化 リリース内容はコア機能の第一歩ですが、今後の革新的なソリューションになることを確信しているので、みなさまにお届けできる形となり感無量です。 しかし、その道のりは紆余曲折、プロジェクトメンバーの努力やさまざまな苦労がありました。 今回はAIカメラの主機能をご紹介しながら、どんな工夫を行なってきたのか舞台裏を担当したQAエンジニアの目線でお送りしようと思います。 AIカメラ概要 プレスリリ…
3ヶ月前

ローカル開発環境用に独自のドメインを用意するなら .local を末尾にしちゃだめ
hacomono TECH BLOG
みゅーとんです. どうも 原因がわからず長期間ハマっていたミスの原因がわかったので, 備忘録として残しておきます。 事象 私のローカル環境では, フロントエンドの Nuxt サーバは port 8001, API は 3000 で立ち上がっています. ただ, ホスト名に依存した処理が一部存在しているため, reserve-hacomono.local という独自のホストを /etc/hosts に設定し, nginx を使ってNuxt, API それぞれにリクエストを振り分けるような設定をしていました. これが, どうにもレスポンスが遅すぎて, ストレスになっていました. 原因は初歩的なミス …
4ヶ月前

RedisをナイーブにQueueにするとデータロストする/可視性タイムアウトの役割
hacomono TECH BLOG
はじめに 基盤本部で今後のhacomonoのアーキテクチャ設計をしている @bootjp と申します。 最近はマイクロサービス化に向けての社内共通のイベントバスの設計や基盤周りの設計/実装を行っています。 以前にはこのような記事を書き、分散システムや分散データベース、分散ストレージなどが大好きです。 「Goで作って理解するRaftベースRedis互換KVS」という同人誌も書いています。 もし興味のある方はお手にとってみてください。 さて、今回は分散システムやマイクロサービスで頻繁に用いられるQueueについて焦点を当てた記事を書きます。 とくにマネージドサービスを用いない環境では、Redisで…
4ヶ月前

オセロ型キャリアで挑む運用保守部の日々
hacomono TECH BLOG
こんにちは、運用保守部のsu-sanです。hacomonoに入社して2年が経ちました。 最近は生成AIサービス「suno」を使って作曲を楽しんでいます。音楽制作の専門知識がなくても自分好みの曲を作ることができ、とても面白いです。 今回hacomonoで初めてブログを執筆します。hacomonoとの出会いや運用保守部での働き方、自分なりの視点から、これまで働いてきた企業との違いについて書いてみたいと思います。 はじめに 本記事は、運用保守に興味がある方に向けたメッセージです。 「運用保守」という言葉をご存知でしょうか?hacomonoの運用保守部は、世間一般で言われている「運用保守」とは少し違う…
4ヶ月前

放置されがちな UI 改善、委員会制で解決してみた
hacomono TECH BLOG
こんにちは! 最近コナンのアニメを1話から見始めた UX 部エンジニアのすちのです。 優先度が低いタスクはついつい後回しにしがちになってしまいます。 特に UI/UX 改善は機能的な問題がないため放置されやすい課題の1つです。 今回は hacomono がこの課題についてどう取り組んでいるのか、UI 改善委員会の活動についてご紹介します。 UI 改善委員会とは? hacomono プロダクトの UI/UX 改善を積み上げ、既存ユーザーの体験を高めることを目的とした委員会となります。 簡単に言うと、「いつかやりたいけど優先度が上がらずにずっと残ってしまう」タスクに手を出していく組織です。 以前の…
4ヶ月前

入社から見えた新たな可能性とチームの紹介 〜フィジカルとデジタルの融合を目指して〜
hacomono TECH BLOG
はじめに こんにちは!hacomono IoT部FieldOpsグループの千賀龍一、通称「せんちゃん」です。2023年7月にhacomonoへ入社し、約1年9ヶ月が経ちました。FieldOpsグループでは、hacomono IoT製品の設置に関するサポートや問い合わせ・不具合対応などを行っています。 この記事では、入社当時の印象や生活面での変化についてご紹介します。 自己紹介 せんちゃん(32歳)、愛知県出身で現在は千葉県在住です。大学時代は昆虫学研究室に所属し、「天敵と害虫の垂直分布について」などの研究に取り組んでいました。卒業後は、施工管理やビル管理など、現場を中心とした実務経験を積んでき…
5ヶ月前

JaSST’25 TOKYO 参加レポート
hacomono TECH BLOG
こんにちは。hacomono QA部です。 今年も JaSST’25 TOKYO に参加しました。 JaSST(ジャスト)は、NPO法人ASTER (ソフトウェアテスト技術振興協会)が運営する ソフトウェア業界全体のテスト技術力の向上と普及を目指すソフトウェアテストシンポジウムです。※JaSST:Japan Symposium on Software Testing 開催は2日間にわたり、現地とオンラインのハイブリッド形式で実施されました。現地会場ではワークショップが開催されました。専用のDiscordサーバーも用意され、参加者同士がセッションの理解に役立つURLの共有や意見交換を活発に行って…
5ヶ月前

継続的な脆弱性管理と改善への取り組みのはなし
hacomono TECH BLOG
はじめまして、SRE 部に所属しているもりと申します。「弊社が運営する、ウェルネス産業に特化した会員管理・予約・決済システムを提供するバーティカルSaaSであるhacomono」のサービス運用や信頼性向上のためのセキュリティ施策の実施をしたりしております。 本記事では SRE 部の活動の中からプロダクトの脆弱性管理によるセキュリティ強化の取り組みについてご紹介します。 課題のはなし hacomonoでは Web アプリケーションの実行基盤に AWS の EC2 や ECS、またそれらをプロビジョニングするためのコードなど様々なソフトウェアで構成されています。各レイヤでセキュリティを担保する定期…
6ヶ月前

プロダクトエンジニア 360° フィードバックを実施しました
hacomono TECH BLOG
こんにちは、hacomono開発本部フィーチャー部フィーチャーグループのすがじゅんです。 近々のトピックは好きなアニメが最終回を迎えてしまって、何を楽しみに週末を待てば良いのかわからなくなってきたのが悩みです。 最近hacomonoでプロダクトエンジニア360°フィードバックを初めて行ったので、その仕組みや感じたことなどを改めて書いていこうと思います。 (Product Engineer Nightイベントで発表した内容は以下の通りです) hacomonoでのプロダクトエンジニアの定義 前提としてhacomonoでのプロダクトエンジニアとは 「プロダクトの成長を軸にオーナーシップを持って追求・…
6ヶ月前

同一名・異なるバージョンの node package を複数インストールして活用する方法
hacomono TECH BLOG
どうも, みゅーとんです. テックブログの執筆が軌道に乗ってて, 私は逆にサボるようになってしまいました. 良くないですね. 久しぶりに書きます. メインプロダクトの Nuxt3 マイグレーション作業で, 一部影響範囲を外に切り出して private package 化をしたことがあるのですが, その際に Vue2 / Vue3 の双方のライブラリに依存する構成にせざるを得ず, その時の知見をまとめてみました. はじめに 対象読者 利用するライブラリのマイグレーション作業が膨大で困ってる 依存ライブラリが複数バージョンをサポートするライブラリを作ろうとしている 前提事項 ライブラリ公開や, そ…
6ヶ月前

Terramateで始めるIaCオーケストレーション
hacomono TECH BLOG
はじめに こんにちは、株式会社hacomono プラットフォーム部のおりちゃんこと居石(@hetre70914)です。 2/1からhacomonoにジョインしたばかりで、日々新しい環境で刺激を受けながらプラットフォームとして求められることはなんだろう?を突き詰めています。 プライベートでは冬季は白馬に籠り、エンジニアリングも趣味のスキーも全力で楽しんでいます。 Terraformの課題 hacomonoの既存インフラはTerraformで管理しています。 プラットフォーム基盤としての将来を考えると、Terraformのみでは以下のような課題が起きると考えています。 terraform appl…
6ヶ月前

健康大国に向かって
hacomono TECH BLOG
はじめまして。hacomono 運用保守部のきむ兄です。 入社して2年7ヶ月が経って、初めてお客様の店舗に機器の交換に伺う機会をいただき、訪問をした時の話をさせてください。 私が訪れたスポーツジムでの光景は、まさに日本の健康革命の始まりを象徴しているといっていい出来事でした。 フィットネス業界は今、大きな変革期を迎えています。 コロナ禍で相当落ち込んで、回復しつつあるものの、まだ9割程度とも(2023年の情報)。 その中で、特に地方では高齢者の方々の健康意識が高まり、フィットネスクラブへの期待が日増しに大きくなっています。現在利用している人の割合をみると、60代女性:21%、20代男性:19%…
7ヶ月前

buttonタグ、なぜデフォルトがsubmitなのか
hacomono TECH BLOG
どうも hacomono UX 部のもんちゃん(門田)です。もんたではなくかどたです。 モンハンワイルズをやりたいが果たしてやる時間が取れるのか?が2025年3月時点の悩み。 Web 開発をしていると大なり小なり「ん?なんか動きがおかしくないか?」と日々誰しもがぶつかったことがあると思います。そんなところに着目し、まず今回は <button> タグの type 属性についてちょっと改めて振り返ってみようと思います。 そもそも、なぜ type のデフォルトが button じゃなくて submit なんだというところに注目していきます。 type 指定をしない = submit すごいシンプルな…
7ヶ月前

CSS だけでゲームを作ってみた
hacomono TECH BLOG
はじめに 皆さま、こんにちは! hacomono でエンジニアをやっております「とんと」と申します。 普段の業務ではフロントエンドからバックエンドまで幅広く実装を担当していますが、当の本人はフロントエンドが好きです。 特に CSS が大好きで、街中の看板やロゴを見ると頭の中で CSS を組んだりします。 そんな CSS 大好きな私がお送りする今回のテックブログでは、「 CSS だけでゲームを作ってみた」というタイトルでやっていこうと思います。 割とネタ要素に寄っているので、気軽にみていただければと思います! 作ったもの 今回は「風船割りゲーム」というものを作ってみました。 以下の Codepe…
7ヶ月前

もう怖くないPSE!電気用品安全法の基礎知識と対策をまとめてみた
hacomono TECH BLOG
はじめまして、hacomonoのIoT部に所属するTaroです。 hacomonoはSaaSの提供を生業とする企業ですが、SaaS業界では珍しくIoT機器の製品開発から製造まで行っております。IoT機器を含む電気製品は品質や性能にフォーカスが当たりがちですが、国ごとに制定された法律も切り離すことができません。 私は電気製品に対する認証業務に従事した経験から各国の法規制には詳しく、hacomonoでも電気用品安全法に言及する案件があったため本投稿のきっかけとなりました。 本投稿では、日本における電気製品に対する法律「電気用品安全法」に着目し、これから電気製品を輸入・販売していきたい人向けに何をす…
7ヶ月前