Kgtkr's Blog

HERPに入社しました

2026/05/14
career

2026年4月にHERPにエンジニアとして新卒入社しました。
この記事は入社エントリってやつです。

入社の経緯

HERPでは高校卒業後の2019年からインターンをしていたので、スタートアップではよくあるアルバイトから正社員になったというパターンです。ということで、まずはインターンを始めた経緯について書きます。

インターンを始めた経緯

2019年に高校を卒業したのですが、大学受験に失敗し浪人することになりました。ただ、あまり受験勉強をしたくなかったのでエンジニアバイトを探して、大学受験はAO入試で受けることにしました。そんな時にWantedlyで「Haskell」と検索したらHaskellでWeb開発をやっているというHERPが引っかかったので応募しました。

当時は個人でWeb開発をしており、ScalaやHaskellといった関数型言語が好きだったのでHaskellでWeb開発をやっているというHERPはとても魅力的でした。また、TypeScriptの型システムで遊ぶのも好きだったので、fp-tsを使っているということにも惹かれました。

逆に業務面(HERPはHRTechの会社で、主に採用管理システムHERP Hireを作っている)は何も分からない状態で入りました。高校を卒業したばかりでアルバイト経験もなかったので、採用と言われてもピンと来ないのはそれはそうです。

こういった経緯で応募し、無事受かったのでインターンを始めました。

インターン

インターン1年目は、浪人中で時間があったので(???)、メインのプロダクトであるHERP Hire自体にかなり関わっていていました。いくつかの小さな機能をバックエンドからフロントエンドまで一通り実装したり、社内のライブラリを作ったりしました。HaskellとTypeScript(+fp-ts)は経験があったのでそこまで苦労しませんでしたが、Cycle.jsというマイナーなフロントエンドフレームワークやNixというビルドツールは最初はかなり苦労しました。

他にも採用に関するドメイン知識もかなり教えてもらいました。当時は「転職エージェントって何?」という状態でしたが、かなり理解できるようになりました。

2年目以降は大学に入り稼働時間が減ったので、個人で完結するタスクが増えました。
マイクロサービスの機能追加・依存関係のアップデート・社内ツールの開発・HaskellのOSSライブラリの修正といったものです。

せっかくなので、HERPで使っているマイナー技術について軽く紹介します。

Nix

Nixとは再現性のあるビルドツール+パッケージマネージャです。

純粋関数型言語であるNix Languageでビルドの定義を書くと、サンドボックス環境で再現性のあるビルドができます。これを使うことで、各自の開発環境を統一したり、開発環境と同じバージョンのツールをCIで使ったり、開発環境と同じバージョンの依存関係を本番用コンテナイメージに含めることができます。少し複雑な依存関係を持つツール(社内ツール含む)もGitHubにビルド定義を置いておくだけで簡単にインストールでき、他のツールとの依存関係の衝突も起きないのでとても便利です。

更にDirenvと組み合わせることで、direnv allow コマンドを実行するだけで開発環境の構築が完了します。HERPで使っているマイナー技術の中で、唯一個人開発でも常に使っており、HERP社内でも廃止予定は今のところないです。

Cycle.js

イベントや状態、DOMの変化などの全ての入出力をストリームとして扱うフロントエンドフレームワークです。ReactやVueとは根本的に設計が異なり、思想は面白いですが、ドキュメントも少なく、数年間アップデートされていません。あとFunctional Component+Hooks(+Suspenseなど)以降のReactのほうが普通に書きやすいと思います(個人の感想)。

長らくHERP Hireのフロントエンドで全面的に使われていましたが廃止予定です。というか今頑張ってReactに置き換えていっている最中です。好きになれたかといわれると微妙ですが、こんなシンプルな仕組みでフロントエンドフレームワークを作れるんだという発見はとても面白かったです。

fp-ts

TypeScriptで関数型プログラミングをするための、Haskellの各種型クラスが実装されたライブラリです。各種モナドやモノイドなどが入っており、do 構文もどきも使えます。HERPでも過去のプロジェクトでは全面的に依存していました。

HKTの実現方法などは面白いのですが、TypeScriptの上でやるにはやはり限界を感じます。Scala2を触っていた人なら分かると思いますが、型クラスは暗黙的な引数によって実現することができます。しかしTypeScriptで暗黙的な引数を実現できないので、あれを全て手動で明示的にバケツリレーする必要があり、まあつらいです。モナドトランスフォーマーなどが絡むともう無理です。

あとfp-ts 2.0で大量に破壊的変更が入った際、あまりに依存しすぎていてかなり修正が大変でした。フレームワークと違い、この手のライブラリはドメインロジックまでがっつり依存してしまうので乗り換えはかなり難しいです。

こんな感じでfp-tsも新規プロジェクトでの採用は行わない方針です。代わりに実質後継のeffect-tsは一部プロジェクトでは採用されていますが、関わったことがないので詳しくは分かりません。悪いところをかなり書いてしまいましたが、Option / Eitherを使うくらいの軽い使い方なら便利だと思っています。あと実装自体が読んでいて面白い。

Haskell

純粋関数型言語の中で一番実用的な言語です。強力な型システムによって、高度な抽象化が可能で、バグのないプログラムを書きやすいです。あとTypeScriptより書いていて面白い。ビルドの依存関係面でつらいところは大抵Nixがなんとかしてくれます。

HERPでは一部プロダクトのバックエンドや、マイクロサービスで使われています。しかし、エンジニア採用や運用面の課題があり、新規プロジェクトでの採用は行わない方針です。

例えば頻繁にメモリリークが発生したり、MySQL8やproto3に対応するのに既存のライブラリが不完全でOSSを修正しないといけないといったことがありました。後者のようなライブラリの修正はインターンとしてはとても面白いのですが、会社としては工数を取られるのでデメリットです。

しかし、Haskellをプロダクトで積極的に使わなくてもHaskellerが多いことで、「こういうコードが綺麗」という感覚が共有されていたり、社内SlackでHaskellの話題が出たりするのはとても良いです。

正社員に

修士1年の時にオファーをいただき、新卒入社を決めました。入社を決めた理由は以下の点です。

  1. 技術的に面白いこと
  2. 働きやすい環境であること
  3. 作っているプロダクトも面白いこと

技術的に面白いこと

上で説明したように、Nixを除くほとんどのマイナー技術は新規サービスでは採用せず、既存サービスも少しずつ置き換えていこうという話になっています。しかし、関数型言語に詳しい・好きな人が社内に多い環境というのはやはり魅力的です。実運用するはつらくても学習目的だと良い言語だと思っており、Haskell経験者のTypeScriptは関数型言語の良いところが取り入れられていて読みやすいと思います。

働きやすい環境であること

HERPはとても働きやすい環境です。フルリモート可で、フルフレックス制です。フルリモートですがSlackの個人チャンネルなどはとても活発で、月1回のHERPY HOURやQに1回のキックオフでは多くのメンバーが集まりコミュニケーションはしっかり取れます。また、会議もScrapboxを用いて非同期でコメントしやすい形になっています。

作っているプロダクトも面白いこと

HERPはもともと採用管理システムを開発していましたが、最近だと求人媒体や、エージェント向けのプロダクトも開発しています。また、採用管理システムの1機能としてHERP AI RecruiterというAIを活用した機能も開発していますし、今後も新規事業がどんどん出てくると思います。1つ1つのプロダクトはUIなどこだわって作られていて、良いものを作るのが好きな人にとってはとても魅力的な環境だと思います。

入社後1ヶ月半とこれから

入社して1ヶ月半ほど経ちました。現在はインターンの時にやっていた社内の開発環境整備タスクを空いた時間にやりながら、HERP Hireの開発に戻っています。

長い間触っていなかったコードベースで、最初は少し思い出すのに時間がかかりましたが、大きなプロダクトに関わるのはやはり楽しいです。インターン1年目から大きく変わった点としてコーディングエージェントの発展があります。大学院の研究でコンパイラを書くのに使ってはいましたが、フロントエンドだと情報が多いこともあり本当に優秀です。HERP HireのフロントエンドのReact移行もかなり精度よくコード生成してくれて本当に凄い…。個人で使うには(特に学生だと)高いですが、会社で使えるのは良いですね。

今後はもっと大きな単位のプロジェクトをやるようになると思いますが、引き続き頑張ります。

宣伝コーナー

HERPではエンジニアを募集しています。2026年卒からインターン経由でない普通の新卒採用も行うようになりました。興味がある方は以下の求人をぜひ見てみてください。