SmartHR Tech Blog
https://tech.smarthr.jp/
SmartHR 開発者ブログ
フィード

React Hook Formとdnd kitを使った並び替え可能なフォームの開発
SmartHR Tech Blog
こんにちは、SmartHRのプロダクトエンジニアのmorisyです。現在開発中のプロダクトでReact Hook Formで作ったフォームの入力項目をドラッグ&ドロップで並び替えるというUIを実装しました。 並び替えの実装にはdnd kitというライブラリを使用しました。今回はReact Hook Formとdnd kitを組み合わせて、入力項目をドラッグ&ドロップできるフォームの実装について解説します。実装時にぶつかった課題とその解決方法についても紹介します。 利用するライブラリ 今回の実装では、React Hook Formとdnd kitという2つのライブラリを使用します。 React …
17時間前

プロダクトエンジニアと肩を並べて品質をデザインする。入社3ヶ月で実践した、開発プロセスから変えるQAの形
2
SmartHR Tech Blog
SmartHRにQAエンジニア(以降、QAEと表記)として入社して3ヶ月が経ちました。 振り返れば、『とにかく、小さくても何か貢献しなくては!』と必死になっている間に過ぎていった3ヶ月だったと感じます。 この記事では、「開発チームにおけるQAEが何をするべきなのか」と自分なりの役割を模索しながら取り組んできたことや、 その背景にあるSmartHRの文化・雰囲気についてご紹介できればと思います。 配属先はQAEが一人も居ない開発チーム 入社して早々に任されたのは、QAEが一人もいない開発チームでした。 そもそも設立半年の新しいチームで、QAEが居ないどころか、QAEが過去に在籍した実績もありませ…
5日前

複雑な要件を1クエリで完結させる、PostgreSQL活用術
180
SmartHR Tech Blog
こんにちは、SmartHR のプロダクトエンジニアの横山です! 今日は、とあるプロダクト開発で実装した巨大な SQL において、一般的な構文(UNIONやJOINなど)の影に隠れがちですが、とても助けになった PostgreSQL の機能を紹介します。 巨大な SQL と聞くと、複雑性や可読性の観点から敬遠されることも多いです。しかし、パフォーマンス要件的に必要に迫られたり、アプリケーション層の複雑さを解消するために、あえて DB 側でロジックを解決し、1 クエリで完結させる選択が必要な場面も、稀にですが確実に存在します。 本記事では、実際のプロダクトコードで活用したテクニックの中から、痒いと…
5日前

第14回SmartHR LT大会 兼 忘年会レポート —— 忘年! 忘年! 忘年!
SmartHR Tech Blog
こんにちは。ESP・情シス開発本部の@ydahです。 この記事では、2025 年 12 月 19 日に開催した第 14 回 SmartHR LT 大会の模様を、a-know さん、Tacto さんと共にお届けします。 今回は、年末の恒例行事である忘年会も兼ねての開催となりました。発表内容もさまざまで、笑いあり、学びありの楽しい LT 大会となりましたので、その様子をレポートします! LT大会開会の様子 SmartHR LT 大会とは SmartHR LT 大会は、有志のプロダクトエンジニアが DevRel とともに隔月で企画・運営している社内イベントです。プロダクトエンジニアの中から 11 名…
6日前

こんなフィーチャーフラグはイヤだ —— アンチパターンから考える消しやすいフィーチャーフラグの使い方
SmartHR Tech Blog
こんにちは!SmartHR で勤怠管理機能の開発をしている @yoiwamoto です。 フィーチャーフラグ、便利ですよね。一番好きなラグです。 フィーチャーフラグというのは、DevOps などの文脈で用いられるプラクティスの一つで、機能の有効・無効を制御する仕組みです。 一般的にはデプロイメントとリリースを切り離すことや、トランクベース開発を可能にすることに目的が置かれています。 勤怠管理機能の開発チームでは、フィーチャーフラグを利用した開発を行っており、一定規模以上の機能はフィーチャーフラグでユーザーが利用できないように制御しながら、機能内の個別の開発アイテムを main ブランチにこまめ…
7日前

Rubyリリース30周年パーティー参加レポート
SmartHR Tech Blog
こんにちは。プロダクト基盤開発本部の@ydahです。 2025年12月20日に、東京都港区のアンドパッドで開催された「Rubyリリース30周年パーティー」に参加しました。本記事では、イベントの様子についてレポートします。 Rubyリリース30周年パーティーとは Rubyリリース30周年パーティーは、Ruby 4.0のリリースを記念し、Ruby 0.95が1995年12月21日にリリースされてから30年を祝うイベントです。 Rubyの生みの親である、まつもとゆきひろさん(@matz)による基調講演をはじめ、歴代のRubyのリリースマネージャーによるパネルディスカッション、コミュニティメンバーによ…
7日前

Regional Scrum Gathering Tokyo 2026 レポート —— ブース出展、スポンサーセッション登壇
SmartHR Tech Blog
SmartHRは、2026年1月7日から9日に東京のベルサール羽田空港で開催された「Regional Scrum Gathering Tokyo 2026」(以下、RSGT2026)にシルバースポンサーとして協賛し、3名が参加し、うち1名がスポンサーセッションで登壇し、初めてブースも出展しました。 RSGT2026とは RSGT2026は、アジャイル・スクラムの実践者が集まる国内最大級のイベントです。 実践者が多いため、活気・熱気に溢れており、現地でしか味わえない体験がそこにはあります。 2026.scrumgatheringtokyo.org スポンサーセッションの登壇 スポンサーセッション…
8日前

北陸Ruby会議01レポート —— みんなとわたしたちのRubyの使い方
3
SmartHR Tech Blog
2025年12月6日(土)に石川県立図書館で開催された「北陸Ruby会議01」に、SmartHRから@ydahと@pndcatが登壇しました! この記事では、イベントの模様と登壇内容についてレポートします。 会場の石川県立図書館 北陸Ruby会議01とは 北陸Ruby会議01のテーマは、「みんなの Ruby の使い方」でした。 発表者・参加者のいろいろな Ruby の使い方の事例を紹介しあうことで、北陸における Ruby の活用の幅を広げ、Ruby を利活用する人口を増やしたいという思いで開催されました。 発表内容としては Ruby を使って作ったものや企業での Ruby の利用事例など、幅広…
8日前

権限基盤の活動を紹介します! —— これまでの振り返りとこれからの挑戦
SmartHR Tech Blog
こんにちは、プロダクト基盤の権限基盤ユニットでPdEをしているhotakaです。 本記事では、2024年から2025年にかけて権限基盤ユニットでは何をしてきたか、2026年からは何をしていくのか、をお話していきます。 2024年〜2025年の振り返り ここでは、自分が入社した2024年5月以降の権限基盤ユニットについて、かんたんに振り返っていきます。 年 月 トピック 2024年 6月 従業員項目の連携機能をリリース 11月 ロール機能をリリース 2025年 6月 ロールの役職制限機能をリリース 7月 ロールの閲覧できる従業員項目機能をリリース アーキテクチャチームの誕生 10月 アカウント権…
8日前

SmartHRのQAエンジニア歴4年で見えてきた「QAエンジニアの役割」
SmartHR Tech Blog
こんにちは、SmartHRのwattunです。 私は2022年1月にQAエンジニアとして入社し、2024年4月からはQAエンジニアとプロダクトオーナーを兼務してきました。そして2026年1月から、プロダクトマネジメント本部で新しいチャレンジをすることになりました。 入社時点では、「QAエンジニアの役割は品質を守ることだ」と考えていました。しかし、この4年間で、「QAエンジニアの責務」についての見え方は大きく変わりました。品質を守るという役割を超えて、「組織がどう判断し、どう進むか」を支える役割としてQAエンジニアを捉えるようになったのです。 この記事では、これまでの経験を通じてたどり着いた「Q…
12日前

【27卒】夏のインターンシップ(9月)を開催しました!
SmartHR Tech Blog
SmartHRでは、2027年入社者を対象に「新卒2期生」の採用を行っています。 2025年の夏も、SmartHRのプロダクト開発をリアルに体験し会社への理解を深めていただくため、プロダクトエンジニア職向けの4日間のサマーインターンシップを開催しました。 この記事では、2025年9月開催分のインターンシップの優勝チームとメンターの皆さまに後日オンラインでお集まりいただき、感想を伺いました!8月分のインタビューもございますので、ぜひ8月開催分のインタビューも併せてご覧ください。 テーマ スケジュール 1日目 2日目 3日目 4日目 優勝チームとメンター社員で後日座談会を開催!インターン、どうでし…
13日前

2段階DSPyで、オンライン指標から“オフラインの物差し”を育てる —— 問い合わせ対応AIの評価指標の作り方
SmartHR Tech Blog
こんにちは。2025年9月にSmartHRへ入社したプロダクトエンジニアのicchanです。 現在はAIインテグレーションユニットで、生成AIを活用した社内問い合わせ対応の効率化に取り組んでいます。 本記事では、社内問い合わせBotの改善プロセスで実践した「2段階DSPy」というアプローチについて解説します。 TL;DR 本記事の要点は次の通りです。 オンライン指標(Good/Bad/Copy)は「正解」に近いが、フィードバックが遅くノイズが多いため、開発のループを回しにくい そこで、オンライン指標を教師データにして、DSPyで「オフライン評価器(Judgeプロンプト)」を学習させ、"高速に実…
13日前

Railsにおける未ログインユーザーのセッション削減方法 —— セッションストアのストレージを抑制!
SmartHR Tech Blog
こんにちは、SmartHRのDPEユニットでエンジニアをしている@alpaca-tcです。 この記事では、Railsで頻発しているけれども見落とされがちな未ログインユーザーのセッションと、その削減方法について紹介します。 目次 目次 未ログインユーザーのセッションとは セッション削減の方法 なぜミドルウェアを使うのか 成果とまとめ 未ログインユーザーのセッションとは Railsではログイン情報等を管理するためにセッションを利用します。 通常はControllerで session にアクセスすることでセッション情報を取得・更新できます。 def create session[:user_id]…
14日前

スプレッド構文と残余引数の安全な使い方 —— ESLintによる品質管理
SmartHR Tech Blog
こんにちは。フロントエンドエンジニアのatsushim です。 過去に書いたブログ記事を読み直してみたら、大体ESLintの話をしていました。 「アクセシビリティを担保するためにESLintの独自ルールを作っている話」 「弊社のheading levelがめちゃくちゃだった件と 解決のためにしたことの話」 たまには違う話をしようかな、とも思いましたが今回も最終的にESLintの話です。 そもそもスプレッド構文と残余引数って何? スプレッド構文と残余引数の詳しい説明はMDNの スプレッド構文、残余引数 を参照していただくとして簡単に説明すると、 ...hoge のように記述することで複数の値・属…
14日前

新卒研修でのOODAふりかえり実践 —— 3ヶ月間で8種類のふりかえりを実施してみた
SmartHR Tech Blog
SmartHR Tech Blogをご覧のみなさんこんにちは。 2025年4月に新卒0期生としてSmartHRに入社しました、プロダクトエンジニア(以下、PdE)のrakkoと申します。 ふりかえり、レトロスペクティヴという取り組みが好きです。好きなテレビドラマは「振り返れば奴がいる」、好きな絵画は「見返り美人図」です。 今回の記事では、2025年4月~6月で実施された新卒PdEの研修において私が取り組んだ、「OODAふりかえり」という取り組みについて紹介します。 そもそもOODAふりかえりとは OODAふりかえりとは、株式会社カケハシの小田中育生さんが考案した、チームの状況の変化に合わせてふ…
14日前

入社1年目でチーフに。経験豊富なスペシャリスト集団をリードするための試行錯誤
SmartHR Tech Blog
こんにちは。SmartHRのESPプロダクト開発本部の栗崎です。2025年6月に入社し、10月よりチーフ1(プレイングマネージャー)を務めています。 本稿では、入社1年目の新米プレイングマネージャーが、経験豊富なスペシャリストがそろうチームで「チーフ」として試行錯誤したプロセスを共有します。私は「このメンバー2の中で、まだ未熟な自分がリーダーをやっていいのか」と不安を抱えながらも、チームと協力しながらチャレンジし、自己成長につなげてきました。その過程をありのままに書くことで、キャリアパスに悩むエンジニアの方や、リーダーの役割に不安がある方の参考になればうれしいです。 目次 目次 チームの状況 …
15日前

チームで良いコードの基準がバラバラ? 『オブジェクト指向設計実践ガイド』の読書会を通して共通認識を作りました
SmartHR Tech Blog
こんにちは、冬本番ですね。皆さんはいかがお過ごしでしょうか? 新規事業開発チームでプロダクトエンジニアをしているmuranoです。 昨年の9月から11月にかけて、チームで『オブジェクト指向設計実践ガイド~Rubyでわかる 進化しつづける柔軟なアプリケーションの育て方』の読書会を実施しました。今回は、その読書会で学んだことをご紹介したいと思います。 Railsで開発をしている中で、「チームで良いコードの基準が共有できていない」「オブジェクト指向なプログラミングがなかなかできない」「すぐにif文が増えてどんどん複雑になってしまう」といったお悩みをお持ちの方に、少しでも参考になれば嬉しいです。 この…
19日前

SmartHR CRE が目指すところは "RevOps" にあり? —— 『RevOpsの教科書』を読みました
SmartHR Tech Blog
こんにちは!SmartHR CREユニットチーフの a-know こと井上です。 タイトルにもある "RevOps" というキーワードを、みなさんは聞いたことはありますでしょうか?「レベニューオペレーション(Revenue Operation)」の略称なのですが、私は2025年のはじめくらいに初めてこのキーワードに出会いました。 その単語の意味するところから、なんとなく「CREユニットで働く自分たちにとっても大事そう!」と感じた私は、2026年1月現在でおそらく唯一となる、RevOps について日本語で書かれている書籍『RevOpsの教科書』を読みました。 www.shoeisha.co.jp…
19日前

権限基盤のアーキテクチャ戦略 —— 新しい権限基盤の設計
SmartHR Tech Blog
こんにちは。SmartHRでプロダクトエンジニアをしている@bmf_sanです。 SmartHRは、人事労務領域を中心に複数のプロダクトを展開するマルチプロダクト戦略を推進しています。各プロダクトは独自の価値を提供しながらも、統一的な権限管理でシームレスなユーザー体験を実現しています。これを支えるのが「権限基盤」です。 しかし、プロダクト数の増加とともに権限基盤が開発のボトルネックとなり、新機能のリリースが遅延していました。この課題を根本的に解決するため、私たちはアーキテクチャ戦略を策定し、IAM基盤とアクセス制御基盤の構築に着手しました。 本記事では、権限基盤が直面していた課題、それを解決す…
21日前

Technical Writing Meetup vol.47 登壇レポート
SmartHR Tech Blog
こんにちは。SmartHRでUXライターをしているhebikoです。 2025年12月11日に開催された「Technical Writing Meetup vol.47」に登壇しました。 Technical Writing Meetupはテクニカルライティングをテーマにした技術者向けのミートアップです。テクニカルライティングに関心のあるメンバーが集まって、もっと「分かりやすくつたえる」ための知見を共有しています。 本レポートでは、Technical Writing Meetup vol.47の様子と、登壇を通じて得た気付きをまとめています。 登壇の様子 私は「AIを使ってライティングを楽に!M…
22日前

Gemfileを掃除しよう —— 見知らぬGemが追加された背景を追ってみた
SmartHR Tech Blog
こんにちは。課金基盤チームのyurikoです。2026年もやってきました。新年を迎えて心機一転、身の回りを整理整頓・大掃除したくなりますよね? 今回はGemfileにいつの間にか追加されていたGemを「掃除」した話をしたいと思います。 それはDependabotの作ったPRからはじまった 私の所属している課金基盤チームでは、Ruby on Rails製の社内向けアプリケーションを開発しています。このアプリのリポジトリでは、Dependabotによって定期的にGemアップデートのためのPull Request(以下、PR)が作成されるようになっています。 いつものようにGemアップデートのPRを…
22日前

YAPC::Fukuoka 非公式リジェクトコン 2025 開催レポート
SmartHR Tech Blog
こんにちは!SmartHR基本機能の開発をしているeminem(@eminem2290)です。 12月9日(火)に面白法人カヤックさんと合同でYAPC::Fukuoka 非公式リジェクトコン 2025を開催しましたので、その様子をお届けします! 本イベントは、11月14日(金)〜11月15日(土)に開催されたYAPC::Fukuoka 2025で採択されなかったプロポーザルが日の目を見るための場として、SmartHR東京オフィスにあるイベントスペース「SmartHR Space」にて開催されました。 当日は、8名の方にトーク・LTを行っていただきました! 皆さん熱い思いのこもった発表をされてい…
22日前

SmartHR は Regional Scrum Gathering Tokyo 2026 にシルバースポンサーとして協賛します —— SmartHRの増えてくアクキーの新作をプレゼント!
SmartHR Tech Blog
SmartHRは、2026年1月7日(水)から9日(金)にベルサール羽田空港で開催される「Regional Scrum Gathering Tokyo 2026」(以下、RSGT2026)にシルバースポンサーとして協賛します! Regional Scrum Gathering Tokyo 2026 スポンサーセッション SmartHRからは、@wassanが「急成長プロダクトを支える「組織の検査と適応」—— SmartHR 労務ドメイン Scrum@Scale 導入半年間のリアルと展望」というテーマで登壇します。 2025年末にドメインのリーダーを中心に実施した、Scrum@Scale導入から…
23日前

SmartHRに開発組織のイネーブリングユニット「DevEnable」を新設しました
SmartHR Tech Blog
はじめまして、2025年9月にSmartHRへJoinしたhakoedaです。 この記事では、開発組織に9月に新設されたイネーブリングユニット「DevEnable」を紹介します。 目次 目次 DevEnableの役割 補足:ビジネスサイドのイネーブル組織とは独立した組織 DevEnableの具体ミッション 新卒育成体系を設計・実装し、組織横断で育成を支援する AI開発ツールを活用して組織の開発生産性を向上させる well-workingを開発組織内で実現する取り組みを推進する 既存のイネーブリング業務の補助や巻取りは急いで行わない We Are Hiring! DevEnableの役割 イネー…
2ヶ月前

【27卒】夏のインターンシップ(8月)を開催しました!
SmartHR Tech Blog
SmartHRでは、2027年入社者を対象に「新卒2期生」の採用を行っています。 この夏も、SmartHRのプロダクト開発をリアルに体験し会社への理解を深めていただくため、PdE職向けの4日間のサマーインターンシップを開催しました。 この記事では、インターンシップの概要と、参加者・メンターの声を紹介します。インターンシップの優勝チームに後日オンラインでお集まりいただき、感想を伺いました! テーマ スケジュール 1日目 2日目 3日目 4日目 優勝チームと社員で後日座談会を開催!インターン、どうでした? 「とにかく楽しかった」— チーム開発と心理的安全性 裁量とユーザー視点を学ぶ「キャリアマッチ…
2ヶ月前

MCP Serverで大量のヘルプページを爆速で作る
SmartHR Tech Blog
この記事はSmartHR Advent Calendar 2025の4日目の記事です。 こんにちは、UXライターのhebikoです。SmartHRのUXライターは、「UI文言やヘルプページを作成する」ほか、「開発チームがUI文言やヘルプページを作成するための支援をする」役割を持っています。 UXライター自身が書くだけでなく、「開発チームがUI文言やコンテンツを作成できるよう支援する」という役割に疑問を持つ方もいるかもしれません。これは、各チームの人数を必要以上に増やさず、コミュニケーションコストを抑えることで、デリバリー速度を維持することが狙いです。ユーザーに価値を早く届けるために、UXライタ…
2ヶ月前

歴史あるファイルアップロード機構との向き合い方 —— CarrierWaveの課題にどう対処するか
SmartHR Tech Blog
この記事は、SmartHR Advent Calendar 2025の3日目の記事です。 qiita.com はじめに SmartHRのプロダクトエンジニア @udzura です。労務基本機能のパフォーマンスやインフラの課題を日々解決する仕事をしています。また、福岡Rubyist会議05という地域Ruby会議の運営にも関わっています。来年2月の開催に向けて、福岡呑み屋マップとコーヒーマップを整備せねば……。 さて、皆さんは、CarrierWaveというgemについてご存知ですか? Ruby on Railsでファイルアップロード機能を実装する際、多くの開発者が選択するのがCarrierWave…
2ヶ月前

新規プロダクトの立ち上げ時にやるべきこと —— 意思決定の質とスピードを上げる3つの取り組み
SmartHR Tech Blog
こんにちは。SmartHRのタレントマネジメントプロダクト開発本部でプロダクトエンジニアをしているmasaruです。 最近私たちのチームでは新規プロダクトの立ち上げを経験する機会がありました。その時に行った3つの取り組みを本記事では紹介します。 はじめに 新規プロダクトの開発を始める際、技術選定からリリース計画まで、チームで決めるべきことは無数にあります。「技術選定では何を採用するべきか」「どの機能を優先して開発し、何をやらないのか?」「いつまでにリリースするのか」—こうした意思決定の一つひとつが、プロダクトの成否を左右します。 しかし、チーム内で共通認識が揃っていないと、意思決定のための議論…
2ヶ月前

アーキテクチャConference 2025 登壇・参加レポート
SmartHR Tech Blog
こんにちは。SmartHRでプロダクトエンジニアをしている@bmf_sanです。 2025年11月20日・21日の2日間、アーキテクチャConference 2025に登壇者として参加しました。本カンファレンスは「最適なアーキテクチャをどう描くか」をテーマに、アーキテクチャの構想・判断・構築に関する実践的な知見を共有し、多角的な視点から設計判断への理解を深めることを目的としています。参加申込者数は過去最大の3,500名を突破し、バックエンドエンジニア、SRE、システムアーキテクトなど、アーキテクチャに関わる多様なエンジニアが集まりました。 私は「完璧を求めない意思決定 - アクセス制御基盤にお…
2ヶ月前

QAエンジニアがSmartHRに転職して4ヶ月で感じたこと
SmartHR Tech Blog
はじめに こんにちは、SmartHRでQAエンジニアを務めている山下です。 2025年8月にSmartHRに入社しました。 この記事を書きながら、入社日の翌日にXにポストした内容が過去一番のいいね数と閲覧数で、入社早々にびっくりしたことを思い出しました。 私は品質保証本部の労務プロダクト品質保証部の労務ユニットAに配属されています。 この記事では、入社してから4ヶ月間でチームに参加して感じたこと、良かった点や改善の余地がある点について書きます。 品質保証本部の組織に関しては品質保証部から品質保証本部へ - 労務QA体制アップデートの背景とこれから をご参照ください。 良かった点 私がチームに参…
2ヶ月前