タグ

ブックマーク / tech.smarthr.jp (27)

  • マルチプロダクト間データ連携への技術的挑戦 - SmartHR Tech Blog

    マルチプロダクト戦略の実現を目標として掲げ、急速にプロダクトを増やしているSmartHR。 そのような中、これまでプロダクトごとに分断されていたデータを相互に利用できるようにすることで、価値を高める試みが始まっています。この活動の中心となっているプロダクト連携ユニットに、現状と今後の展開を聞いてみました。 インタビューの様子。左:プロダクト連携ユニット 右:インタビュアー f440: それでは、プロダクト連携ユニットのインタビューを始めたいと思います。よろしくお願いいたします。 一同: よろしくお願いします。 f440: お時間を取っていただきありがとうございます。突然呼ばれてびっくりしていると思うんですけれども、個人的に一番興味あったのがプロダクト連携ユニットだったので、この度はインタビューしたいと思いまして。 最初に自己紹介から始めさせてください。まずは私から。現在プロダクト基盤開発部

    マルチプロダクト間データ連携への技術的挑戦 - SmartHR Tech Blog
  • SmartHRのRubyKaigi 2024の舞台裏 - SmartHR Tech Blog

    こんにちは、DevRelのinaoです。 RubyKaigiの会期中は、着替えのTシャツを1枚しか持って行ってなかった、名刺入れをポケットに入れたまま洗濯して名刺が四散した、熱々の沖縄そばを自分にぶっかけたなど、衣服まわりのトラブルに見舞われ続けました。どれも、原因が自分にしかないことがかなしいです。 この記事では、SmartHRRubyKaigi 2024で行ったことの舞台裏をまとめます。 RubyKaigi 2024の会場となった那覇文化芸術劇場なはーと テーマ:「沖縄で握手!」 行った施策 体制 初参加者の方にも楽しんでいただきたい! 実際の参加者層はどうだった? 名札でつながる ── 事前勉強会とドリンクアップ RubyKaigi前後もつながる ── 事前勉強会と事後勉強会 ブルーシールアイスでつながる ── 利きブルーシールとブース 沖縄のお茶でつながる ── ブースとドリンク

    SmartHRのRubyKaigi 2024の舞台裏 - SmartHR Tech Blog
    iga_k
    iga_k 2024/06/17
     舞台裏すごい!
  • 自作のRubyの動的解析ツールを使って、モジュラーモノリスの境界を試行錯誤している話 - SmartHR Tech Blog

    DPE(Developer Productivity Engineering)ユニットに所属している、alpaca-tcです。 最近モジュラーモノリス化を進めるためにRuby動的解析ツールを作ったので、その話をします。 📝 私事ですが、新潟の佐渡島に移住しました。新潟や佐渡島のRubyistの方がいらっしゃいましたら、ぜひRubyKaigiでお友達になってください! SmartHRではRailsのモジュラーモノリス化を検討をしているよ Railsにおける「モジュラーモノリス」は、アプリケーションを拡張性のある構造にするために、単一プロセスでモノリスアプリケーションを区分されたサブセット(モジュール)に分割するアーキテクチャのことです。 SmartHRでは、コード量が多いプロダクトでモジュラーモノリス化を進めています。 すでに新規機能の開発では導入されていますが、既存コードのモジュラーモノ

    自作のRubyの動的解析ツールを使って、モジュラーモノリスの境界を試行錯誤している話 - SmartHR Tech Blog
    iga_k
    iga_k 2024/04/30
    すごい! 今後の解析結果と改善が気になる。
  • ARR150億円、成長率150%のSmartHRを支えるプロダクト横断基盤開発チーム - SmartHR Tech Blog

    こんにちは。SmartHR VP of Engineeringのmorizumiです。 2024年3月11日に「SmartHRがARR150億円を突破、前年比150%で成長」というリリースをSmartHRは出しているのですが、これはそんな急成長を支えているプロダクト横断基盤開発チームについての記事です。 SmartHRはスケールアップ企業を標榜しており、事業・プロダクトともに大規模でありながら急成長を続けるという新しいステージの挑戦を始めています。 プロダクト横断基盤チームは、スケールアップ企業であるSmartHRの今後の成長を支えるアプリケーションレイヤーのミドルウェアを開発しています。データの量・種類の多さ、権限に関する考慮、開発者体験、スケーラブルなアーキテクチャ、全社に関わる意思決定、などなど技術的にも事業的にも難易度が高く、それゆえに面白い領域になっています。 今回は、Smart

    ARR150億円、成長率150%のSmartHRを支えるプロダクト横断基盤開発チーム - SmartHR Tech Blog
    iga_k
    iga_k 2024/03/15
  • test_profを用いたRailsの自動テストの高速化の実践例 - SmartHR Tech Blog

    このエントリは、SmartHR Advent Calendar 2023 シリーズ1の5日目の記事です。 こんにちは!SmartHRでプロダクトエンジニアをしている大澤(@qwyngg)です。 最近Railsの自動テストの高速化について調べていたので、その内容をまとめてみました。 主にtest_profというgemを用いた解析と、その結果を元にした改善方法について書いています。 test_profとは https://github.com/test-prof/test-prof テストのパフォーマンスを分析する様々なツールを提供するgemです。 色々機能があるのですが、今回は以下の機能を使って発見した問題とその解決方法を紹介します。 factory_botプロファイラ テストに対してstackprofを(面倒な設定無しで)実行できる 詳しい使い方はTestProf: Ruby tests

    test_profを用いたRailsの自動テストの高速化の実践例 - SmartHR Tech Blog
    iga_k
    iga_k 2023/12/05
    大澤さんのナイス知見。 factory_botプロファイルとstackprof
  • 教えて先輩! DevRelの立ち上げ方(前編)活動の成果と計測、体制、予算 - SmartHR Tech Blog

    2023年夏、SmartHRでDevRel(Developer Relations)が始動しました! SmartHRのDevRelは生まれたてほやほや。会社、そして担当者自身にも経験や知見がありません。 そこで、他社で積極的に活動をされているDevRelの先輩がたをお招きして座談会を開催しました。 前編では、DevRelとは何かや、活動の成果とその計測方法、体制、予算についてお話をうかがいました。 (座談会は2023年9月に行いました。内容は当時のものです) 目次 目次 座談会メンバー 櫛井優介さん(以下、941) 杉田絵美さん 玉田大輔さん 聞き手:稲尾尚徳(以下、inao) 自己紹介 そもそもDevRelって? 活動の成果とその計測 DevRelの体制 DevRelの予算 座談会メンバー 櫛井優介さん(以下、941) LINE株式会社(現LINEヤフー株式会社) Developer R

    教えて先輩! DevRelの立ち上げ方(前編)活動の成果と計測、体制、予算 - SmartHR Tech Blog
    iga_k
    iga_k 2023/11/28
    inaoさんの初手仕事成果すごい
  • SmartHRにDevRelを立ち上げます - SmartHR Tech Blog

    こんにちは、SmartHRで一人目のDevRelのinaoです。 SmartHRにDevRelを立ち上げる際に、社内に向けて書いた文章を公開します。 次の座談会もあわせてあわせてご覧ください! 教えて先輩! DevRelの立ち上げ方(前編)活動の成果と計測、体制、予算 - SmartHR Tech Blog 教えて先輩! DevRelの立ち上げ方(後編)社内の関係づくり、社内イベント、最も大切なこと - SmartHR Tech Blog DevRelを立ち上げます DevRelとはなにか DevRel(Developer Relations)は、「開発者をつなぐこと」を目的とします。 開発者をつなぐことには、次の3つが含まれます。 SmartHRの開発者と外部の開発者をつなげる SmartHRの開発者どうしをつなげる SmartHRのプロダクトと内外の開発者をつなげる なんのためにやるの

    SmartHRにDevRelを立ち上げます - SmartHR Tech Blog
    iga_k
    iga_k 2023/11/28
    inaoさん!
  • SmartHRのマルチアプリケーションに分散した従業員データを集約する - SmartHR Tech Blog

    こんにちは、プログラマーのkinoppydです。最近はSmartHR内でのプロダクトを横断して開発を行うプロダクト基盤チームというところで仕事をしています。 tech.smarthr.jp GraphQL集めるマンの概念図 分散したプロダクトの課題 SmartHRは、祖業である労務管理と従業員情報を集約している「基機能」と呼ばれる巨大なアプリケーションと、その「基機能」にある従業員情報を使い文書配布、年末調整、タレントマネジメントなどを行う小さなアプリケーション群によってサービスが提供されています。各アプリケーションは完全に独立したリポジトリとデータベースを持っており、「基機能」とのデータのやり取りには公開・非公開のREST APIを利用しています。 SmartHRのプロダクト間の構成概略図 APIで繋がれた基機能とサービスの世界観には、一つ問題点があります。それは、複数のサービス

    SmartHRのマルチアプリケーションに分散した従業員データを集約する - SmartHR Tech Blog
    iga_k
    iga_k 2023/07/20
    めっちゃ知見でありがたい
  • CEO が3年半ぶりに SmartHR の開発チームにメンバーとして入ってみた結果 - SmartHR Tech Blog

    こんにちは。VP of Engineering の森住です 今回は、2022年1月に SmartHRCEO に就任した芹澤さんが、なぜか最近になって SmartHR の開発チームにイチメンバーとして二週間ほど参加していたので、一体なにがあったのかとインタビューを敢行してまいりました いつの間にか CEO をクビになっていたのでしょうか? 気になりますね それでは、今回のインタビューの登場人物をご紹介します 登場人物 SmartHR 代表取締役CEO 芹澤さん 2016年2月に SmartHR に入社。VPoE、CTO を経て2022年1月に CEO に就任。CEO 業に専念していたかと思いきや、いつの間にか SmartHR の開発チームにイチメンバーとして参加していた 芹澤メンバーを受け入れるチームのマネージャー 山さん 2020年10月に SmartHR に入社。SmartHR

    CEO が3年半ぶりに SmartHR の開発チームにメンバーとして入ってみた結果 - SmartHR Tech Blog
    iga_k
    iga_k 2023/07/05
    いい話!
  • 文書配付機能でPDFレンダリングのライブラリを置き換えた話 - SmartHR Tech Blog

    こんにちは!SmartHRで文書配付機能の開発を担当している、aanzaiです。 2022年末から2023年2月にかけて、文書配付機能で使用しているPDFのレンダリングライブラリの置き換えを行ったため、具体的にどのように移行したかをご紹介します。 文書配付機能の紹介 文書配付機能(旧:雇用契約)は、SmartHRの最初のオプション機能として開発された機能で、事前に作成した書類テンプレートをもとに、SmartHRに保存された従業員情報を差し込んで書類PDFを作成し、従業員に配付したり、契約書として合意を取ったりすることができる機能です。 書類テンプレートのレイアウトは、ユーザーがWYSIWYGエディタで作成したものがHTMLとして保存されています。書類を配付する際は、このレイアウトHTMLに従業員情報を差し込み、PDFに変換します。 PDFレンダリングライブラリ移行の理由 文書配付機能では、

    文書配付機能でPDFレンダリングのライブラリを置き換えた話 - SmartHR Tech Blog
    iga_k
    iga_k 2023/07/04
    wkhtmltopdf からの引越先としての Grover。FerrumをつかうとRuby+Chromeでできるかも。
  • Railsのモデル名をすべて変更した話 - SmartHR Tech Blog

    SmartHRでは開発にRuby on Railsを広く採用しています。 今日は負債解消のために、開発しているサービスでRailsのモデル名をすべて変更した話を紹介します。 既存のモデル構造のつらみ 私達が開発しているサービスでは、モデルの親子構造が分かりやすいということで、モデルをネストした構造にしていました。 例えば、 User に紐づくプロフィール画像 User::ProfileImage は、 app/models/user/profile_image.rb に配置する具合です。 パッと見の構造が分かりやすいのですが、時が経つにつれて次のようなつらさが顕在化してきました。 Railsの規約(推奨ルールのようなもの)に則っていないので、関連定義が冗長になる テーブル名が長くなる。 外部キーや関連名が長くなる。 関連名と外部キー名が一致せず、カラムを呼び出したいときにDB定義を見ないと

    Railsのモデル名をすべて変更した話 - SmartHR Tech Blog
    iga_k
    iga_k 2023/06/30
    モデル名変更作業をシステマティックに実行。力こそパワー素晴らしい。
  • 入社してわかったSmartHR本体の難しさ - SmartHR Tech Blog

    どうも2022年9月にSmartHRに入社したエンジニアの大澤(@qwyng)と申します。SmartHR体を開発しています。 SmartHRというサービスは、従業員情報を集約したアプリケーションをコアとし、そのコアと連携する複数のアプリケーションを配置した構成になっています。 そのコアというのがSmartHR体です。 SmartHR体は歴史が長いプロダクトです。カジュアル面談でも「キャッチアップはどうされました?」、「SmartHRの開発って技術的に何が大変ですか?」といった質問をよく頂きます。 記事はそういったSmartHRの開発の大変さを知りたい方に向けて自分が感じたことを言語化したいと思います。 2022年初頭に弊社の@sugamasaoさんがSaaS.techで発表した. 「アプリケーションが大きくてつらい・・・ってこと!?」*1 というスライドを見たことがある方もいると

    入社してわかったSmartHR本体の難しさ - SmartHR Tech Blog
    iga_k
    iga_k 2023/06/16
    大澤さんがんばってらっしゃるログ(むずかしい)
  • Rubyのメタプログラミング問題集をブラッシュアップした話 - SmartHR Tech Blog

    こんにちは。SmartHRRails顧問業をしているwillnet です。以前、SmartHRでのメタプログラミングRuby読書会と、その成果物というエントリを(kinoppydさんが)書いていました。今回のエントリはその続きの話です。 実際に手を動かすと身につく 上記エントリでは メタプログラミングRuby 第2版の読書会を、単にを読むだけでなく、毎週新しい問題を作り参加者に解いてもらう、という流れで開催したことを紹介しました。 Rubyによるメタプログラミングは、普段の仕事ではなかなか使う機会がないテクニックも多く*1、一回を通読しただけですべてを覚えるのは難しいと感じています。しかし、その読書会では実際に手を動かして解く問題を用意したため、通常の読書会よりも内容が身につく度合いが大きかったのではないか、と感じました。 いい問題があるのでもっと活用したいぞ せっかく作った問題を活

    Rubyのメタプログラミング問題集をブラッシュアップした話 - SmartHR Tech Blog
    iga_k
    iga_k 2023/05/30
    メタプロ問題集
  • RailsでUNIQUE制約を遅延実行できるようにしました - SmartHR Tech Blog

    SmartHRではRuby on Railsを多くのサービスで採用しています。 そのため、不足している機能や不具合があればrails/railsへコントリビュートすることがあります。 今日は、日々のぽつぽつとしたコントリビュートの中から、Rails 7.1に追加したUNIQUE制約について紹介します。 unique_constraint(UNIQUE制約) UNIQUE制約(unique_constraint)はRails7.1(執筆時は未リリース)から利用可能になるActiveRecordの新機能です。 rails/rails#46192 PostgreSQLでしか利用できませんが、下記のようにunique_constraintで遅延可能なUNIQUE制約を定義できるようになりました。 # create_table内で使う場合 create_table :items do |t| t.i

    RailsでUNIQUE制約を遅延実行できるようにしました - SmartHR Tech Blog
    iga_k
    iga_k 2023/05/23
    いっくんさん、SmartHRさんへ移られてたのか!
  • チーム内にテックな話題を話す場を作っておよそ半年が経ちました - SmartHR Tech Blog

    SmartHRの基機能と呼ばれるプロダクトでエンジニアリングマネージャーをしている @sugamasao (id:seiunsky) です。 この文章はSmartHR Advent Calendar 2022の2日目のエントリーとして書いています。 はじめに、いくつか前提となる状態をお伝えすると、私の所属している「基機能」プロダクトはScrumを拡張したLeSSというフレームワークを使っており、現在は6チームで1つのプロダクトを開発しています。 さらに、私は今はエンジニアリングマネージャーという立場にいますが、少し前まではこの6チームのうちの1チームに所属するメンバーでした。そのため、これ以降に記載している取り組みは私がチームに所属していた時にはじめたものという認識をしていただけますと幸いです。 テックな話題 #とは リモートワーク主体で仕事をしていると意識的に雑談によるコミュニケーシ

    チーム内にテックな話題を話す場を作っておよそ半年が経ちました - SmartHR Tech Blog
    iga_k
    iga_k 2022/12/03
    すがまさおさんの知見〜!
  • 【SmartHRのQA連載:第4弾】E2E自動テストコードは怖くない〜プログラミング未経験者の挑戦と結果報告〜 - SmartHR Tech Blog

    はじめに みなさん、はじめまして! SmartHRのQAグループ所属のshibachokuです。 記事は、「SmartHRのQA(品質保証)」連載企画の第4弾です。 SmartHRのQAグループはソフトウェアテストを中心に、メンバーのスキルセットやプロダクトの状況によって、柔軟かつ多岐にわたるアプローチで品質保証活動を担っている組織です。 今回はプログラミング初心者だった私が、日常的にE2E自動テストを書くようになるまでのお話を紹介させていただきます! 自己紹介 前職で情報システム部門に約9年間在籍した後、2017年4月にカスタマーサポートとしてSmartHRに入社。2019年5月に志願してQAグループに異動し、QAエンジニアとしてのキャリアをスタート。複数のプロダクトを経て、2020年12月から「ラクラク分析レポート(以下、分析レポート)」専任で品質保証活動に従事しています。 E2E自

    【SmartHRのQA連載:第4弾】E2E自動テストコードは怖くない〜プログラミング未経験者の挑戦と結果報告〜 - SmartHR Tech Blog
    iga_k
    iga_k 2022/02/25
  • 【SmartHRのQA連載:第3弾】ATDD導入と選択 - SmartHR Tech Blog

    はじめに みなさん、はじめまして! SmartHRのQAグループ所属のmachiです。 記事は、「SmartHRのQA(品質保証)」連載企画の第3弾です。 SmartHRのQAグループはソフトウェアテストを中心に、メンバーのスキルセットやプロダクトの状況によって、柔軟かつ多岐にわたるアプローチで品質保証活動を担っている組織です。 今回はSmartHRにおけるATDD(受け入れテスト駆動開発)の取り組みについて、実際にATDDを行なっているYさんに話を聞きました。 インタビューされる人 : Y QAグループ所属 昨年から年末調整機能の開発プロジェクトに従事 今年からATDDを導入し、テストの拡充やスピードアップをはかっている インタビューする人 : machi Yと同じくQAグループ所属 従業員名簿機能、組織図機能、従業員サーベイ機能の開発プロジェクトに従事 ATDDに興味があるものの、な

    【SmartHRのQA連載:第3弾】ATDD導入と選択 - SmartHR Tech Blog
    iga_k
    iga_k 2022/02/02
    QAチームによる受け入れテストのコード化
  • Active Recordともっと仲良くなって自然に優しいコードを書くぞ - SmartHR Tech Blog

    こんにちは。SmartHRRails顧問業をしています @willnetです。最近は主にリファクタリングをしています。 SmartHRのバックエンドは基的にRubyで書かれています。しかし入社してくるバックエンドエンジニアは必ずしもRubyRailsを長年使ってきた人だけではなく、前職では他言語を使っていてRuby(Rails)はほとんど使ったことがないという人もいます。 webアプリケーションを作る、という点ではどの言語でも抑えるべき点は同じですが、RubyRailsに特化した考え方や書き方もありますよね。SmartHRではそれを効率よく習得してもらうために読書会を開催したり、社内のドキュメントツールに知見を書いて共有したりしています。 僕も社内のドキュメントツールにActive Recordの付き合い方ついて書いたところ、評判が良く「テックブログにしたら?」と言われたので今回一

    Active Recordともっと仲良くなって自然に優しいコードを書くぞ - SmartHR Tech Blog
    iga_k
    iga_k 2021/11/11
    "length, size, countの違いを理解して使い分ける" “sizeやlengthを使うときの注意事項として「レコード数ではなくオブジェクトの数を返す」"”「基本的にpreloadを使い、JOINが必要なときだけeager_loadにする" 前島さん記事
  • Railsクイズ、何問解けるかな? - SmartHR Tech Blog

    こんにちは。SmartHRRails顧問業をしています @willnetです。最近は主にリファクタリングをしています。 SmartHRでは毎週「Rubyist@SmartHR(仮)」という名の定例ミーティング*1が行われています。このミーティングはバックエンドエンジニアが集まり、チームをまたいだ情報共有や相談をすることを目的としています。その中では僕がTipsなどを共有する「willnetさんのありがたいお言葉」というコーナーが常設されています。 「willnetさんのありがたいお言葉」のコーナーではRailsの最新動向に関する話をすることが多いのですが、最近はRailsの各種機能がどのように動くのかをクイズ形式にして共有しています。これがなかなか好評なので今回テックブログにしてみた次第です。みんな全問正解できるかな? ちなみにこんな感じでやってます まず問題と回答の選択肢を見せてからs

    Railsクイズ、何問解けるかな? - SmartHR Tech Blog
    iga_k
    iga_k 2021/09/17
    willnetさんのRailsクイズ。問1と問3の2問しか正解できなかったが勉強になった。
  • CTOがテックブログなんとかしてって言って一ヶ月が過ぎました - SmartHR Tech Blog

    こんにちは、エンジニアのkinoppydです。 先日、SmartHRでのメタプログラミングRuby読書会と、その成果物というエントリを公開した直後に、毎週水曜日に開催されている社の全エンジニアが参加するテック定例というイベントの中で、CTOから「テックブログ最近更新されてないね、どうする?」という言葉を投げかけられました。POSTしたばかりの私としては「いや、更新しとるやん」と思ったのですが、客観的にここ数ヶ月の更新を見ていると、以前ほどの活発感もなく、またエンジニアリングの話よりも取り組みや入社報告が多く、テックブログと名乗って良いのか少し疑問が残ることも確かでした。そこで、今後このテックブログをどうしていくのかを、CTOと私、そしてテックブログに一家言ある社内の有志のエンジニアをその場で募り、会議室で腹を割って話してみることにしました。 会社のテックブログというものと、その宿命 比較的

    CTOがテックブログなんとかしてって言って一ヶ月が過ぎました - SmartHR Tech Blog
    iga_k
    iga_k 2020/05/09
    これは良い知見だなぁ