SmartHR Tech Blog

SmartHR 開発者ブログ

PdE

ActiveStorage の attach → download を同トランザクション内で行なう時に起こりうる現象と対応

PdE

SmartHRプロダクトエンジニアのgongo(@gongoZ)です。 年末調整機能を担当しています。 最近の週末の過ごし方は醤油ラーメン(中華そば)を食べることです。 今回は Ruby on Rails が提供する ActiveStorage に関連した「こういうことをやりたいけど困ったこと…

第4回SmartHR LT大会を開催しました!

こんにちは。SmartHRでプロダクト横断基盤開発チームにて開発をしている rock_san です。 先日開催された第4回SmartHR LT大会の様子を紹介したいと思います! SmartHR LT大会について DevRel主導の元で、有志のプロダクトエンジニアが集まって企画・運営して…

[動画インタビュー]SmartHRのVPoEはどんな人? SmartHRの開発組織のこれまでとこれからは?

昨年、社内で行ったインタビュー動画を公開します。 当時入社したてのinao、pndcatと、古参のmkmnの3人で、VP of Engineeringのmorizumiさんに、「最近ハマっているゲームは何ですか?」から「過去に自分がやった実装でやり直せるなら何をやり直したいですか…

第3回SmartHR LT大会を開催しました!

こんにちは。SmartHRでプロダクトエンジニア(PdE)をしているsoul ( @ex_SOUL ) です。 先日、第3回SmartHR LT大会が開催されましたのでイベントの内容を紹介します。 SmartHR LT大会について DevRel主導のもと、有志のプロダクトエンジニアが集まって企画・…

YAPC::Hiroshima 2024に協賛しました

2024年2月10日に広島国際会議場で開催されたYAPC::Hiroshima 2024でブースを出しました。 SmartHRとしては初めてのYAPC協賛です。 この記事ではその模様をお伝えします。 YAPC公式サイトで使用したバナー ※このバナーの制作記はこちら 前夜祭で番宣! 前日に…

プロダクトエンジニアとして実施した採用貢献について紹介します

こんにちは。SmartHRでプロダクトエンジニア(PdE)をやっているsoulです。 この記事では、私が半年間で実施した採用活動への貢献(採用貢献)について紹介します。 採用貢献を始めたきっかけ PdEはプロダクトをつくる役職で顧客の価値となるコードをかくことが…

スタンディングデスクを買ってみました

こんにちは!はじめまして! プロダクトエンジニアとして働いておりますkobadaiと申します。 今回は開発のノウハウや技術とは関係のない、よくある一エンジニアのリモートワーク環境を改善するために導入した何某についてつらつらと記していきたいと思います…

第2回 SmartHR LT大会 開催レポート

こんにちは。SmartHRで配置シミュレーションを開発している新奥です。 先日、第2回SmartHR LT大会が開催されました。どのようなイベントだったのかを紹介します。 SmartHR LT大会について DevRel主導の元で、有志のプロダクトエンジニアが集まって企画・運営…

YAPC::Hiroshima にスポンサーとして協賛するのでお好み焼きを食べに行ってきました。

こんにちは。タレントマネジメントプロダクト開発本部の yoshinarl です。 SmartHR は 2024年2月10日に開催される YAPC::Hiroshima 2024 にスポンサーとして協賛し、ブースも出展することとなりました。 スポンサー特典として公式サイトにバナーを掲載できる…

年末恒例第1回SmartHRハッカソン開催レポート

2023年12月25日〜27日の3日間にわたって、年末恒例第1回SmartHRハッカソンを行いました。 このレポートでは、その模様をお伝えします。 目次 目次 開催のきっかけ 社内のお困りごと調査 ハッカソンの参加者の募集 準備期間 ハッカソンスタート! 3日間にわた…

E2Eテストを Playwright で作り直して開発プロセスに組み込む話

PdE

こんにちは。SmartHR プロダクトエンジニアの sasaki (@s_sasaki_0529) です。 今回は、私が開発に携わっている届出書類機能における E2E テストを、Capybara + Selenium の構成から Playwright に移行し、開発プロセスに組み込んだお話をします。 扱う話題 …

第一回 SmartHR LT大会を開催しました

こんにちは。SmartHRで届出書類機能を開発している sasaki (@s_sasaki_0529) です。 先日、第一回SmartHR LT大会が開催されました。どのようなイベントだったのかを紹介します。 SmartHR LT大会について SmartHR LT大会(以降、本イベント)は、その名の通りSm…

SmartHR のエンジニア職についてエージェント説明会を実施したら好評だったので内容を公開します!

PdE

こんにちは!SmartHR でエンジニア採用担当をしている @mana です。以前、「SmartHRのセールス職についてエージェント説明会を実施したら好評だったので内容を公開します」という記事を公開しました。とても好評だったため、エンジニア編もお届けしようと思…

SmartHR UIの現在地 ~2023年12月編~

PdE

今回の記事では、『SmartHR UIの現在地 ~2023年12月編~』というタイトルで、記事の前半ではSmartHR UIを運営している我々から2023年12月時点のSmartHR UIの最新情報をお届けします。記事の後半では、僭越ながら私自身がなぜSmartHR UIに貢献したいと思ってい…

「WIP」を少なくすることで、もっと多く

PdE

このエントリは、SmartHR Advent Calendar 2023 シリーズ2の19日目の記事です こんにちは、SmartHRでプロダクトエンジニアをしているnomusonです。 2023年6月にSmartHRにジョインしてからSmartHRオプション機能「人事評価」のバックエンドエンジニアとして働…

決戦は火曜日! 私の開発チームの教訓

PdE

この記事はSmartHR Advent Calendar 2023 シリーズ2の5日目ですこんにちは!SmartHRのプロダクトエンジニアの @diescakeです!この記事では、私たち「ペーパーレス年末調整(以降、年末調整機能)」のチームでの開発や運用から得た ”教訓” をいくつかご紹介…

PMと並走するフィーチャーリードをなぜ置いているのか

SmartHRで基本機能の開発をしているプロダクトエンジニアの@rihoです。入社して一年になります。 SmartHRでは、数スプリントにわたる特定機能の開発が始まる際に、開発チームのエンジニアの中から「フィーチャーリード」という役割を担う人を決めることがあ…

多言語化対応における 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…