SmartHR Tech Blog

スマートエイチアール開発者ブログ

勤続13年で初めての転職。エンジニアの布施さんにSmartHRはどう映った?【突撃かなきゃん】vol.1

こんにちは! エンジニアのかなきゃん(@_kanacan_)です。

エンジニアになって1年を迎える私が毎月連載でエンジニアインタビューを担当させてもらいます。 わーーい!

やりたいと言ったらやらせてもらえる環境に感謝...やる気満々です🙌

SmartHRで働くエンジニアは現在20人ほど。 彼/彼女らが日々どんな思いで開発し、どんな良さや課題を感じているのかを掘り下げてお届けしていきます。

第一弾として受けていただいたのは、SmartHRの技術的負債の返却を目指すチームで活躍している布施 嘉男(ふせ よしお)さん。入社は去年の10月と比較的新しいメンバーですが、入社当初から凄腕シニアエンジニアとして活躍する布施さんの素顔に迫ります。

勤続13年で初めての転職。こなす仕事ではなく、自分の実力を発揮してみたくなった

ー 第一弾ゲストということですが、よろしくお願いします。アイスブレイクに推しコマンド教えてください。

僕が第一弾なんですね…! 大丈夫かな笑 推しコマンドか...... 推しコマンドは ghq, direnv です(!?) よろしくお願いします。

ー 布施さんはSmartHRが2社目というのを聞きました。 何がきっかけで転職しようと思ったのでしょうか?

色々あるんですが、前職では勤続年数が長かったこともあり、業務をそこそこ器用にこなせてしまうので刺激がなくなってきていました。 そこで、今まさに成長しているような企業で自分の実力を発揮してみたくなったことが転職のきっかけです。転職ドラフトとかも使ってみて、条件や対応のいいスカウトもあったのですが、SmartHRが「課題を解決するSaaSサービス」である点に一番惹かれました。世の中をよくしようというプロダクトに関われるのはそれだけで日々のモチベーションになりますよね。

実際に面談をしてみると「やっていくぞ!!」という気概があってそれが一番良かったです。あとは面接官だったCTOの芹澤さんや人事の方がすごく生き生きしてたんですよ。ヤバいプロジェクトに携わっている人ならではのヤバそうなオーラが皆無だったのでいい会社だなって。笑

f:id:pittsun:20190718161615p:plain

10万人規模に耐えうるアプリケーションを目指して

ー そんな布施さんが今担当している仕事を教えてください

今はシニアエンジニア3人でチームを組み、SmartHRの技術的負債を返却することに集中して取り組んでます。 分かりやすいところでいうと、速度改善だったり、データ構造の見直し、使わないコードの削除だったりを分担して進めてます。

SmartHRはもともと10人〜100人規模の企業を想定して作られていました。 でも最近だと1,000人〜10,000人規模のお客様も増えてきて、ほころびが出てしまっていました。 例えば、従業員の一覧ページって一番よく表示されるところだと思うんですが、1万人以上の登録があると表示に3分くらいかかっていました。それを今は1, 2秒で表示できるところまで改善できました。

今回改善をしたところは、僕が入社した時にソースコード見て「これはやばい...レコード数増えたら終わるやつだ...」と思っていた部分でした。

ー 実際にどのようなアプローチで改善していったのでしょうか?

今まではSmartHRの複雑な従業員情報を取り出す際、本来データベース側に任せる処理をRailsのアプリケーション内に書きまくっていたんですよね。 その処理をデータベース側に持たせ、アプリケーションでの処理を減らしていくことでかなり速度が変わってきます。

例えば1万人登録されていたとします。 今までは1万人をDBから吐き出し、アプリケーション側でソートして50人を表示してました。 これをデータベースの中であらかじめ50人に絞り込み、アプリケーションで表示するように変えていきました。

このあたりは、今までの仕様上 DB ソートだけだと解決が難しくてアプリ側でやっている部分があったのですが、時間をとって仕様検討からやり直したため実現が可能になりました。

10万人規模に耐えうるアプリケーションを目指して今後も改善を続けていきます。

褒め合う文化が好き。最近のトレンドは「偉業だ」

ー 3分かかっていた表示が1, 2秒にしたことでかなり反響もあったのでは?

そうですね。直接お客さんから褒めて頂く機会もあってすごく嬉しかったです。 それと個人的にいいなと思うのが、エンジニア同士で褒め合う文化です。

日頃から、お客さんが困っていたり、アプリケーション的にネックになったりしそうな部分を潰せた時に「偉業だ!」と讃えあってます。

実際にこの改善をした時もslackで盛り上がりました。本当にいい仲間たちと開発できているな〜と感じます。

最近PostgreSQLの内部実装に興味アリ

ー 布施さんは仕事が大好きで休みの日でも仕事の開発をやっていたいという話をよく聞きますが、最近プライベートで興味のある技術があったら教えてください。

いやーーーー本当に仕事の実装について考えてるのが好きで...。 強いて言えば、ある意味仕事の内容になっちゃうんですが、今のチームに入ってから、データベース周りの内部実装がどうなってるのか、とか実行計画がどういう仕組みで実装されているのかなんかに興味を持ってよく調べたりしてます。

常に進化していくSaaS開発。スケーラビリティを考えられる人と働きたい

ー 今布施さんがSmartHRで感じる課題ってありますか?

そうですね。組織的な部分でいうと、やりたいことに対してエンジニアが本当に足りないです…。 今後は1万人規模以上のお客様に使っていただく機会も増えてくるので、そうなると小さなバグが命取りになることも出てきます。 なのでスケーラビリティや品質面を考えながら作っていける人が入ってきてくれるといいなと思っています。 この辺りって割と辛い経験をしてきてる人が強いと思うので、辛い経験を繰り返したくない方に魅力的に思ってもらえるようにしていきたいですね。

また、技術的な部分でいうと、作りを徐々に変えていきたいなと思います。 UIやUXをモダンにしていきたいです。 今まではRailsだけでゴリゴリ開発してきたけど、それももう数年前のテイストなので、もっとモダンで使い勝手のいいアプリケーションを目指していきたいですね。

今まではサーバーサイドもフロントエンドもマルチにできる人を求めてきてましたが、最近は専門分野を持っている人が必要になってきています。

SmartHRのエンジニアというと、外からは「キラキラしてる」ように見られることがあるようですが、言っても業務システムの開発なので、地道に改善していける人たちが集まっている印象です。

個人的に見てもすごくいいプロダクトだと思うので、一緒に開発していきたいという人がいたらぜひ来ていただきたいですね。

あとがき

筆者かなきゃんからみてSmartHRの好きなところは、プロダクトサイド、ビズサイド、コーポレートサイドそれぞれに対して感謝と尊敬で溢れているところだったりします。

このブログを通して、インタビュイーが開発した機能や改善を直接褒めてもらえる機会を作れたらという思いで、このエンジニアインタビューでは最後に毎回、いろんな職種の方からのメッセージを載せていきます。

今回はカスタマーサクセスの並木さんからコメントをいただきました! 並木さんは速度問題で困っていた大企業ユーザー様を担当していましたが、布施さんはじめ負債返却チームによる速度改善を通してサクセスに導くことができました。

また、並木さんから実際のお客様の声も合わせていただきました。

CSVインポート等の劇的な速度改善の恩恵で、利便性向上を実感しています。
また各種一覧ページの速度改善もオペレーションにおいて
最もストレスになっていたページ群でしたので、
おかげでかなり快適になりました!
検索するとすぐに検索結果が出ました!
すごいですよ、すぐですよ

すごい! まさに「偉業だ」...!

というわけで今回はSmartHRの負債返却チーム布施さんのインタビューでした。

次回は弊社唯一のiOSエンジニア兼ReactとRailsでのSPA開発を一人で行うマルチプレイヤーをインタビュー予定!お楽しみに!

We are hiring

布施さんも言っていた通り、やりたいこと、やるべきことに対してエンジニアがまだまだ足りていません...! カジュアル面談や体験入社制度などもご用意しているので、ご興味を持ってくださった方は以下フォームからお気軽にご応募ください! お待ちしております!

https://smarthr.co.jp/recruit/hello-world