SmartHR Tech Blog

SmartHR 開発者ブログ

PdE

多言語化対応における TypeScript の型定義を通して開発のしやすさについて考えた

PdE

新しいホーム画面の多言語化対応をする中で、型定義を通して安全性を担保しつつ開発者体験をよくするための工夫を行いました。

Cloud RunとCloud NATを組み合わせた時の「インスタンスあたりの最小ポート数」の適正値について調べた

PdE

私が所属しているチームではインフラにGoogle Cloudを採用しており、ウェブ アプリケーションをCloud Run 上に構築して外部へのアクセスはCloud NATを経由して行っています。 この記事ではCloud RunとCloud NATを組み合わせた時の「インスタンスあたりの最小…

プロダクトエンジニアにとって、SmartHRはリモートワークしやすい環境なのか?

私が入社した頃は、フルリモートワークは許可されておらず、東京オフィスに通勤できる場所に住んでいる必要がありました。 2021年の7月にフルリモートワークが解禁され、日本国内ならどこに住んでいても働けるようになりました。 フルリモートワークになって…

モブプログラミングでの成長と学び

こんにちは。SmartHRで基本機能を開発しているプロダクトエンジニアの前川です! 基本機能ではLeSS(Large-Scale Scrum)を用いた複数チームでのスクラム開発をしています。私の所属するチームでは最近、モブプログラミングを導入しました。そこで、実際に経験…

アクセシビリティ試験で見つかった人事評価機能の伸びしろ

こんにちは、SmartHR の人事評価機能を開発しているエンジニアの takata と nakano です。 SmartHR の人事評価機能は、評価テンプレートと評価プロジェクトを用いて、柔軟な人事評価が可能なウェブアプリケーションです。人事評価の担当者は、評価テンプレー…

スキル管理チームの「入社半年〜ズ」が感じる、仕事と成長をドライブするSmartHRの文化

2023年8月22日にリリースしたSmartHRの最新プロダクト「スキル管理」。 実は、リリース時チームメンバーの3分の1、数にて4名がSmartHR入社半年以内のメンバーであり、しかもそのうち3名は配属時期が6〜7月とリリースの直前! 今回は、そんなスキル管理の「入…

ActiveRecord::Bitemporalとの歩み方

PdE

こんにちは!SmartHR基本機能でプロダクトエンジニアをしているdooorです。 SmartHRでは履歴を表すデータモデルにBitemporal Data Modelを採用していて、Active Recordで扱うために ActiveRecord::Bitemporal を開発しています。 BiTemporal Data Modelとは…

Visual Regression Testを導入して、手間と時間を節約した話

PdE

こんにちは!SmartHRで人事評価機能の開発を担当している、エンジニアのkanekoです。Visual Regression Testを導入して、安心・安全にUIライブラリのアップデートやリファクタが行える環境を整備したので、その取り組みをご紹介します。 「Visual Regression…

PostgreSQLでjsonb型カラムのデータを検索した話

PdE

はじめに こんにちは!プロダクトエンジニアのhypermktとraikunです。SmartHRの開発をしている過程でjsonb型のカラムを持つテーブルに遭遇しました。JSONの特定のキーに入ってる値を条件に検索したいという要件がありましたが、今までjsonb型カラムを利用し…

テストコードが読みづらかったのでRSpecをリファクタリングした話

PdE

こんにちは。プロダクトエンジニアのkuritaです。普段はSmartHRの届出書類機能の開発をしています。2023年の2月に入社したのですが、いつのまにか半年が経っていました。半年って体感短いですね。 今回は、RSpecをリファクタリングした際の取り組みについて…

チームのテストフローを見直して、実装時間を2倍に増やした話

PdE

こんにちは!SmartHRで基本機能の開発を担当している、エンジニアのwakasaです。2023年の1月から半年かけて、自チームのテストフロー見直しを行い、実装時間を大幅に増やすことができました。今回はその取り組みをご紹介します。 見直し前のチームの状態 私…

RedashのクエリをGitHubでバージョン管理した話

PdE

こんにちは。プロダクトエンジニアのcerisです。 今回は分析レポート機能のユーザーの利用傾向を把握するために利用しているRedashの運用を改善した際の取り組みを紹介します。 ちなみに私事ですがこうした社外向けのアウトプット記事を執筆するのは人生初で…

Google Apps Scriptでチームの業務体験を改善したよ

PdE

みなさん、はじめまして!プロダクトエンジニアのkitahiraです。 2022年12月にSmartHRに入社し、基本機能の開発を担当するDチームにジョインしたんですが、いつの間にか半年以上たっていました。早いものですね。 Dチームでは、Google Apps Script(以下GAS…

SmartHRのマルチアプリケーションに分散した従業員データを集約する

PdE

こんにちは、プログラマーのkinoppydです。最近はSmartHR内でのプロダクトを横断して開発を行うプロダクト基盤チームというところで仕事をしています。 tech.smarthr.jp GraphQL集めるマンの概念図 分散したプロダクトの課題 SmartHRは、祖業である労務管理…

yarn auditで特定の不具合を無視する

PdE

こんにちは。年末調整機能の開発を担当しているzoshigayanと申します。気温が上がり半袖を着る季節になると年末の訪れを実感しますね。 弊社テックブログ、最近 めちゃくちゃイケてるRailsの記事 などが出て賑わいを感じているのですが、ここに来て驚くほど…

2023年上期に従業員サーベイ機能で行ったアクセシビリティ改善内容を振り返る 〜WCAG検証の話メインで〜

こんにちは。プロダクトエンジニアのshiraです。 この記事では2023年上期に従業員サーベイ機能で行ったアクセシビリティ改善内容を紹介します。 対象読者 アクセシビリティに興味がある人 SmartHRに興味がある人 従業員サーベイ機能とは 従業員サーベイ機能…

Jest を導入して RSpec と使い分け始めた話

PdE

まえがき こんにちは!SmartHR 基本機能の B チームで開発をしている@ron です。 今回は、私の所属する B チームで品質と開発効率の向上のため Jest を導入するにあたり、チームで行った議論と導入した結果をご紹介します。 Rails を使用している SmartHR で…

8年の歴史を持つRailsアプリのRuby 3.1への道 〜そしてOSSコントリビュートへ〜

PdE

こんにちは。プロダクトエンジニアのkitazawaとqwyngです。 先日SmartHR基本機能のRubyバージョンを3.0から3.1にアップデートしました! SmartHR基本機能では開発をLeSSで行っていますが、Rubyのアップデートは開発チーム内の有志のメンバーで実施しています…

めざせSmartHRアプリストア掲載!社内ハッカソンを開催しました

PdE

こんにちは、SmartHRでプラットフォーム事業でプロダクトエンジニアをしている @otakky です。 今回は、プラットフォーム事業でハッカソンを開催したので、その進め方や様子を紹介したいと思います! ハッカソン開催のきっかけ そもそもなぜハッカソンをやる…

CEO が3年半ぶりに SmartHR の開発チームにメンバーとして入ってみた結果

こんにちは。VP of Engineering の森住です 今回は、2022年1月に SmartHR の CEO に就任した芹澤さんが、なぜか最近になって SmartHR の開発チームにイチメンバーとして二週間ほど参加していたので、一体なにがあったのかとインタビューを敢行してまいりまし…

文書配付機能でPDFレンダリングのライブラリを置き換えた話

PdE

こんにちは!SmartHRで文書配付機能の開発を担当している、aanzaiです。 2022年末から2023年2月にかけて、文書配付機能で使用しているPDFのレンダリングライブラリの置き換えを行ったため、具体的にどのように移行したかをご紹介します。 文書配付機能の紹介…

Railsのモデル名をすべて変更した話

PdE

SmartHRでは開発にRuby on Railsを広く採用しています。 今日は負債解消のために、開発しているサービスでRailsのモデル名をすべて変更した話を紹介します。 既存のモデル構造のつらみ 私達が開発しているサービスでは、モデルの親子構造が分かりやすいとい…

SmartHRが大切にするフロー効率とは

PdE

こんにちは! SmartHRで開発したり、アジャイル推進したり、筋トレしたりしてるkouryouです。 突然ですが、皆さんのチームの生産性は高いでしょうか? この議論を始めると必ず直面する壁が、そもそも生産性とは何か?です。 生産性を上げようとする際の効率…

配置シミュレーション機能のフロントエンド技術選定

PdE

こんにちは。プロダクトエンジニアの@cidermitainaです。 2023年2月に配置シミュレーション機能がリリースされました。 配置シミュレーション機能のフロントエンドを作るにあたってどのような技術選定したのか、その背景と意思決定をまとめていこうと思いま…

難解! SmartHRの部署のデータ構造とBiTemporal Data Modelが組み合わさると...

PdE

こんにちは。SmartHRの基本機能プロダクトで開発をしている三好です! 基本機能プロダクトではLeSS(Large-Scale Scrum)を用いた複数チームでのScrum開発をしており、その中で私が所属しているチームの取り組みをご紹介します。 入社してわかったSmartHR本体…

入社してわかったSmartHR本体の難しさ

PdE

どうも2022年9月にSmartHRに入社したエンジニアの大澤(@qwyng)と申します。SmartHRの本体を開発しています。 SmartHRというサービスは、従業員情報を集約したアプリケーションをコアとし、そのコアと連携する複数のアプリケーションを配置した構成になってい…

GCPを使ってPRごとに検証環境を用意した話

PdE

はじめに こんにちは。プロダクトエンジニアグループ所属の@sato-s, @kawaです。普段はSmartHRのオプション機能の開発をしています。この記事では「GitHubのPull Requestごとに動作確認が可能な検証環境をGoogle Cloud上に構築する仕組み」を作った話をご紹…

SmartHR開発組織のこれまで、これから 〜2022クリスマスVer.〜

PdE

SmartHR開発組織のこれまでとこれからをご紹介します。

「SmartHRのペーパーレス年末調整」のアンケート画面の文言をmicroCMSで管理して、Storybookでプレビューできるようにした話

PdE

この記事はSmartHR Advent Calendar 2022の19日目です。 こんにちは! SmartHRのプロダクトエンジニアの@diescakeです! この記事では、SmartHRが提供している「ペーパーレス年末調整(以降、年末調整機能)」のアンケート画面の文言をmicroCMSで管理してSto…

文書配付機能で事前に負荷テストをして繁忙期を乗り切った話

PdE

これはSmartHR Advent Calendar 2022 17日目のエントリーです。 こんにちは、SmartHRで文書配付機能の開発をしているmiyoshiと申します。 今回は私が担当している文書配付機能で繁忙期を乗り越えるためにやった負荷テストの話を共有しようと思います。 この…