ジョブカン採用管理の開発エンジニアをしている@yottaburgerです。
今日からゆるっとアドカレやっていきます。
1日目ということで今回は我々が開発しているジョブカンについてざっとご紹介したいと思います。
ジョブカンシリーズは8プロダクト+α
こちらのページにまとまっていますが、バックエンド系ホリゾンタルSaaSとかクラウドERPとか言われるWEBサービス群です。
運営元は株式会社DONUTSというところです。
画像の個々のブロックがそれぞれ独立したWEBサービス的なプロダクトになっています。
2010年にジョブカン勤怠管理がリリースされて以降、ワークフロー、採用管理、給与計算などなど現在時点で8つのプロダクトを提供しています。
またこのほかに共通認証基盤やモバイル、AIなどの横断チームがあります。
各プロダクトには専任の開発チームがあり、それぞれ数名~数十名のエンジニアが所属しています。開発チーム内にはモバイル分野やUIUXなどに特化した人もいますが、サーバーサイドエンジニア 兼 フロントエンジニアという感じでフルスタック的な動きをしているエンジニアの比率が高いです。
各チームで 勝手に 現場が裁量を持ってアーキテクチャや言語を選んでいる
私がDONUTSに入って驚いたのが
・各開発チームでそれぞれ違う言語を使って特にトラブルなく日々の業務が進んでいること
・新しい言語の導入を当然のように検討していること
でした。
正直言って統一したほうが(管理者サイドとしては)ラクそうですが、今はジョブカンならではのユニークな特徴と感じています。
言語
私が入社してから約3年経ちますが、その間に勤怠管理と労務HR(画像の左端2つ)でGolangが新たに導入されました。勤怠管理では古いPHPからの乗り換えで、労務HRでは新規のサブサービスで使用しています。
ジョブカン採用管理も現状Rubyメインですが、一部を新言語で記載する作戦が始動中です
(詳細はいずれ別の記事で)
ちなみにジョブカンの開発者募集の求人票とかには
使用言語:Ruby, Python, Go, PHP
みたいに書かれてますが、もちろん1人が同時に全部を使うわけではないのでご安心ください(笑)
私の場合、日常的に触るのはRuby(rails), React, TypeScript, SQLあたりです。
※本記事では割愛しますがフロントの環境も多様です
プラットフォーム・アーキテクチャ
(私が各プロダクトの詳細を把握できてないのでふんわりとだけ。。)
先の画像を見ていただくとわかりますが、クラウドプラットフォームもAmazon Web Service(AWS)とGoogle Cloud Platform(GCP)を各チームで独自に使用しています。
さらに掘り下げると、採用管理ではKubernetes(GKE)やTerraformを独自に導入していたりします。
アーキテクチャ面では各プロダクトが順次5周年、10周年を迎えていっている中で「肥大化したモノリス」という課題は共通して出てきています。
去年はジョブカンのエンジニアが幅広く参加する輪読会で↓↓を読んだりもしました。
各サービスで似た課題はありますが、個々の事情もありアーキテクチャのアプローチもやっぱりそれぞれ 勝手に 独自路線でやっています。いわゆる式年遷宮的にアーキを分割+順次リニューアルしているチームもありますし、採用管理では「マイクロサービス化したいねー」という話をしてたりします。
ちなみにDONUTS社全体だともっと違う
ジョブカンを開発・運営するDONUTSでは他にもスマートフォン向けゲームやライブ配信&動画アプリなど幅広いプロダクトを展開しています。
ジョブカンの開発チームで使用していない言語だと、ゲーム事業の一部タイトルでC++やC#を、クラウド型電子カルテのCLIUS(クリアス)というプロダクトではScalaを使っています。
ということで今後のアドカレで各執筆者がバラバラな技術を紹介してくるかもしれませんがジョブカンの多様性ゆえですので、どんなネタが出てくるのか楽しんでいただけたら嬉しいです。
(…と、導入してみましたが、11月末時点で趣味開発のネタを準備している参加者が多そうなのでちょい冷や汗が出ています)
お知らせ
DONUTSでは新卒中途問わず積極的に採用活動を行っています。
詳細はこちらをご確認ください。
ジョブカン事業部のエンジニア募集はこちら。