• グローバル
  • 新卒5年未満

「プログラミング」で、自分の考えを
いかにロジカルに表現できるか。

古賀 理
株式会社リクルートホールディングス
人事本部
グローバル人事
IT人材統括室
次世代ITグループ
エンジニア
2015年新卒入社

「プログラミング」
という行為そのものが好き。

現在は、どのようなお仕事をされていますか?

具体的な仕事としては、「Indeed」に対して広告を出したい人が使うための広告管理用画面をつくっています。「Indeed」は求人情報を集めてきて、キーワードを入れるとそのキーワードにマッチする求人情報を一覧で出してくれるというWebサイトなのですが、そのWebサイトの上のほうに広告枠があります。広告投資をすると目につきやすい場所に求人情報を出すというもので、企業ごとに求人情報単位で月間予算を設けていただいています。クリックごとにお支払いただく成果報酬型の課金形態で、趣向の合う求職者の検索結果の上位に出るように設計されています。広告枠の購入にはオークション形式を採用しているので、企業側が月にいくらの予算で、1日にいくらまで使うかといった金額設定をするためのWebアプリケーションをつくっています。

組織はどのような体制ですか?

広告枠の管理を行うチームは、デベロッパー以外を含めると20人ぐらいの大きいチームがあって、その中の1つのセクションとして管理用のWebアプリケーションをつくる6人ぐらいの小さなチームがあるという感じです。
基本的にはみんな、フロントはそれなりにできて、バックエンドもそれなりにできるという感じです。仕事の分量によってフレキシブルに担当場所が変わります。

教育体制はどうですか?

Indeedは入社してから、新しく入ってきた人に1人のメンターがついて1ヶ月一緒のチームで開発に参加するんです。これを3カ月かけてメンターを変えて3回繰り返します。教育を支える体制として、全社的に定められたメンタリングガイドラインというものがあります。例えばメンタリング担当に対しては、問題解決する時にアイディアのアシストはしてもいいが答えを直接与えてはいけないといったことであったり。自分でメンタリングする時にもそういうことは気をつけていますね。

エンジニアとしてスキルアップする環境はありますか?

Indeedは新しいものを試すことに躊躇がないので、例えば社内でまだほとんど誰も使っていない外部の技術を持ってきて、「こういうふうにしたほうがいいんじゃない?」というと割と通ったりします。新しい機能をつくり、新しいライブラリを導入するという点でも、トライしやすい環境にあります。新しいものに触れるっていうのはかなりモチベーションになると思います。
最近はIndeedが社内用につくったライブラリをよく使っています。他のエンジニアの試した技術などが蓄積されているもので、何か新しいことに挑戦するときにのぞいてみると学びがあります。例えば、Webアプリケーションのログを詳細に取るためのフレームワークがあったり、ボタン一発でコードレビューが終わったら即座にその機能をメインラインに放り込んでテスティングに持っていく機能があるのを見つけたり、スキルアップにもなるし、刺激になっていますね。

Indeedを選んだきっかけはなんでしたか?

元々プログラムを書いてものをつくるという行為そのものが好きだったので、Indeedは仕事する環境として楽しそうだし、仕事にしたらずっとプログラム書けるし、いいんじゃないかと思いました。決めたきっかけは、Indeedは技術的にすごく面白そうなことをしているということ。社員も相当優秀な人たちばっかりだったので、こんな環境で働いたら楽しいだろうなと思っていました。
大学の頃は趣味でプログラミングコンテストに出場していたり、細々としたツールを作ったりしていましたが、どちらも公開して人に使ってもらうというよりかは、自分専用や仲間内で使うためだけのコードという性質が強かったので、他のユーザーをあまり意識していませんでした。Indeedに入ってからはプログラムを書くということに対する向き合い方が変わりましたね。

Indeedで最も自分が変化したと思うエピソードを教えてください。

チームの中で自分の立ち位置を意識するようになった変化がありました。チームにデベロッパーが2人しかいなくて、かつプログラムの整理が膨大な案件でした。アプリケーションのコードもかなり年代物で古くて、それを整理しつつ、プロダクトマネージャーの要望に応じて新しい機能を追加するということをやりました。本当にずっとプログラムコードを書いて、ものをつくっていく感じでした。そういったなかで、だんだんとコードを書くだけではなく、いろいろなデータの流れを設計するとか、いろいろな技術や打ち手を調べてうまくいく方法を考えるとか。全体を見通してどうすべきかというのを決めるようになりました。コードレビューや議論を通じて、自分がチームの中で他の人よりもアプリケーションが全体としてどのように動いているかを理解している、という確信をある程度得ていたこともあり、だんだんと知識を得るために働き方の質というか、考える方向性は変わってくるというのを感じました。

印象に残っている仕事はありますか?

あるユーザーが僕らのつくっているアプリケーションにログインしたときに、なぜかログインした後、ブラウザで無限に転送され、目的のページにたどり着けないというバグが起きたことがありました。コードを読んでもそんなことになるようには見えなくて。フロントが正しいとなると裏側でおかしくなっているに違いないと思い、探っていると、本当にレアなケースで、ネットワークトラブル等で通信速度が遅い時だけ起きるエラーがあるというのを見つけました。
そのときは本当に未知のエラーだったので、結構時間がかかって。詳細なログを取るようなコードを仕掛けて、その後解析して、全部で1週間半くらいですね。問題が出たときには、問題解決に秀でた特定の人間が対応に特化した方がトラブル解決は早いと思っているので、1人で解決しました。解決したあとも、この出来事がきっかけの一つとなって、予防的に詳細な実行ログを取るということを意識するようになり、エラー処理について色々調べたり、コードレビューの際にそういった処理を重点的に確認して指摘するようになりました。

「1→100」の中でフロントエンドだからこそ、直接くるフィードバックが嬉しい。

Indeedの強みはどこですか?

横のつながりというか、ボーダレスな環境が強みだと思います。問題提起のためのチケットは誰でも権限さえあれば大体のものは自由に見られます。自分の所属してない他プロジェクトを業務上でちょっと触ることがあって、「これどうなってんの?」と気になったら、そのチケットを見て経緯とか、技術背景についても調べたりできます。トラブルの時に「同様のトラブルが類似機能で発生していないか」ということを参照できるのは助かりますし、日本のオフィスだけではなく、オースティンとも同様のやりとりを毎日行なっていて、そういう徹底してオープンな環境というのは強みですね。

古賀さんは「0→1」「1→100」どちらに当てはまりますか?

僕は「1→100」の方だと思っています。人が既に何かつくったものをさらにブラッシュアップすることはとても好きだし、自分でも得意だなと思います。自分ではフロント・バックエンド双方に精通していると思っていて、それぞれに最適な調整を行う、というのも「1→100」ですね。双方が高いレベルでできるエンジニアというのはIndeedでも意外に少なくて。
あんまり「0→1」という新しいものをつくることは得意ではないので、アメリカのオースティンにいる「0→1」に特化したような人には、刺激を受けますね。こんなアイディアは思い付かないというのは結構多いので。そういったすごい「0→1」の人たちとのシナジーで何かをつくり出せるというのは興味深いです。

「1→100」を感じた具体的なエピソードはありますか?

カスタマーサービスの負荷を改善するシステムを作りました。「Indeed」に広告を出す時は、広告予算枠を決めます。その予算をIndeedとクライアント双方が信頼できるかたちで決めるために、契約書を使用します。普通にクレジットカードで払うだけというわけにはいかず、契約書を2回3回往復させないといけなくて、カスタマーサービスが大変だという話がありました。それを改善するためにクライアントがWebフォームを入力したら、それを自動的に管理側データベースのシステムに組み込んで、その後、別の自動スクリプトで承認するというシステムをつくったんです。
この機能をつくるために、そもそも契約はどういう流れになっているのか1から教えてもらい、調べてつくりました。それを公開した後にカスタマーサービスの人から、「この機能ができたおかげで仕事がすごく楽になった」というメールが来て。それは結構うれしかったです。使っている人から直接フィードバックが来るのは、やっぱり嬉しいですよね。

今後どのような仕事をしていきたいですか?

いわゆるビジネス的な成果には、正直すごく興味があるわけではないので、どっちかというと技術的な興味のほうが強いんです。カスタマーのクリック率を上げるとか、広告の出稿数や金額を増やすとか、そういったビジネスとしての成果を出さないと会社としてやっていけないのは分かりますし、自分でも完全に無視しているわけではないのですが、成果そのものよりも実現のためにどのようなコードを設計し、開発していったかという話の方に面白さを感じます。そういう意味でも、「Indeed」で動いているシステムを全部理解したいと思いますね。「Indeed」について広範的な知識があり、何かが起きるとまず質問が来て、最適な人材確保や手段を提供して問題解決する。そういう人材を目指したいなと思っています。
「広い知識を持っていなきゃいけない」という点でトラブル対応はすごく面白いんですけど、どうしても自己評価しにくいと思っていたんです。でもIndeedはちゃんとマネージャーがコードを書けるし、運用の難しさを知っているので、きちんと評価してくれるのはありがたいです。3ヶ月ごとに行われる上司からの評価以外に「ピアフィードバック」という同僚からの評価コメントももらえるのもモチベーションが上がります。「あのときは本当に助かった」、「頻繁にコードレビューしていてすごい」と言われるとやっぱり嬉しいですね。
技術的な挑戦や日々の細かい運用をきちんと評価してくれる環境なので、「Indeed」で動いている全システムを理解できるようこれからも挑戦していきたいです。

コードを書くことが
好きな人と働きたい。

大切にしているポリシーはありますか?

プログラムを書くときに考えているのは、できる限り汚いコードは書かないということです。やっぱり汚い、自分で納得できないかたちでコードを書くと、大体プログラムが間違っていたり、バグの温床になってしまったりして、後々設計を変更した時にもその辺がうまく動かなくて。書いた瞬間に動かなくて気づければいいんですけど、そこで気づかないと本当にいろんなものに影響してしまうので。
僕が納得できないものは出さないというのは意識しています。社内でのコードレビューもしているので、僕の書いたコードが他の人の手本になるようにしたいと思っています。

今後の人生における夢はありますか?

なにかをつくり、その成果で、社会に自分の名前を残したいです。サービスでもプロダクトでもなんでも、10年、100年経っても、名前をどこかしらで知られているような人になれるといいなと思います。
そして、Indeedでならそのために成長できると思います。Indeedで働いている中でも、開発を効率よく行うためのシステム基盤をどのように設計するか、サービスを開発するときのコミュニケーションや全体の把握のやり方など学ぶものが多いので、絶対に将来役に立つと思いますね。

どんな人と一緒に働きたいですか?

やっぱりコードを書くのが好きな人と働きたいって思います。この職種を目指していて書けないという人はいないとは思いますが、「書ける」と「書きたい」は違いますよね。そういう意味で、Indeedにいて、本当にコードを書くことが好きじゃない人には会ったことがないですね。

どのようなスキルをもっていれば活躍できると思いますか?

この職種は数学的な思考力がかなり重要です。プログラムは、自分の考えていることをいかにロジカルに過不足なく表現するかということだと思っています。結局パソコンは自分が書いたコードの通りにしか動いてくれないので、余計なことをしてはいけないし、自分の考えていることをコードに落とし込むときに不足があったら、考えたとおりに動けないプログラムになってしまう。ちゃんと自分が考えていることをきれいにまとめ上げて、コードという文章として表現することが必要です。そこで要求される能力は数学の証明を書くとかに近いんです。全体を把握する力とか、一言で平たく言うと、数学センスだと思っています。

PROFILE

古賀 理(こが おさむ)

グローバルエンジニア
2015年新卒入社
大学時代から、趣味でプログラミングを始める。Webアプリ開発や、プログラミングコンテストに出場。プログラミングでモノをつくるという行為が好きになる。Indeedの技術力に魅了され、リクルートホールディングス入社。現在、「Indeed」に対して広告掲載者が使うための広告管理用の画面を作成。その他に、カスタマーサービスの機能改善など、社内の問題解決のため積極的に貢献。常にフレキシブルで、刺激のある多国籍な職場で日々プログラミングを行う。