見出し画像

キャディに入社しました 〜サーバーサイドエンジニア編〜

はじめまして。@ryokotmngと申します。最近キャディという会社に転職しました。良い機会なので、これまでの人生を簡単に振り返りつつ、人生初の入社エントリーを書いてみようと思います。
主にこれまで私がしてきた選択について書いていますが、私個人の考え方なので一般的ではないです。「こんな人もいるんだな」くらいに読んでいただけると大変嬉しいです。

私はどんな人なのか

私は、証券会社でエンジニアと全く関係のない資金調達の業務を経験した後、キャリアチェンジしたサーバーサイドエンジニアです。エンジニアになってからは、GoとRubyとAWS (←雑) を主に使い、直近ではGunosyというニュースアプリの会社で社内管理画面等を開発していました。まずは、今まで私が自分の仕事についてどう考えて選択してきたかをお話しようと思います。

プログラミングとの出会い

私がはじめてプログラミングと出会ったのは、証券会社でVBAを使って膨大なエクセル作業を自動化しようと決心したときでした。遅いですね。実際そんなにエンジニア歴は長くないです。
当時所属していたモルガン・スタンレーという証券会社では、外資系かつリーマンショック後だったこともあり、少ない人数で多くの仕事をこなす必要がありました。当時の私は変数という概念すら知らなかったので、ググったりマクロを記録してコードを生成してみたりして、それっぽいコードを切り貼りしてエクセルを動かしていました。例えば、案件のスケジュールを説明するためのカレンダーを自動生成する機能や、顧客の連絡先を管理して、ボタンを押すとDB (エクセル製) を読み込んで市場環境を説明する営業メールを生成するようなもの、市場環境データをBloombergから読み込んで、いい感じにDBにフラグを立てたりDBから生成したグラフを修正してくれたりするような機能などです。激務で徹夜続きな毎日でしたが、おかげで睡眠時間が1日2時間くらい増え、とても嬉しかったことを覚えています。

この経験を通して、業務効率化システムを作る楽しさ、システムを作ることで人間の使える時間を増やせたという達成感が強く記憶に残り、プログラミングに興味を持つようになりました。

エンジニアへのキャリアチェンジ

その後プログラミングを勉強してみたところ案の定ハマり、幸いにもエンジニアとして職を得ることができました。しかし、当たり前ですが、キャリアチェンジはかなり大変でした。すぐに活躍できると思っていたわけでは全然ありませんでしたが、それでも戦力になれない状態で会社に所属するのはやはりとてもツライことです。エンジニアは大体が一人でやる仕事ではないので、必然的に周りに迷惑をかけ、毎日大きすぎる周りとの実力差に打ちのめされました (これは今もそうですが)。プログラミングや休日の勉強が「時間を忘れるほど楽しい」と思えなければ、エンジニアをやり続けることはできなかったと思います。毎日ひたすら使用していた言語に関する技術書を読み、Udemyをやったりコードを書いたりしていました。一時期アルゴリズムにハマり、おかげで最近登壇する機会も頂いたりして今に活きています。

また、テック組織のカルチャーが証券業務の現場とは大きく異なり、周りの人たちが何を考えているのか全然わからなかったこともダブルパンチで効きました。チーム開発の難しさ、エンジニアのモチベーションと生産性の関係、エンジニアの仕事に対する評価の難しさ、チームもしくはステイクホルダーとの信頼関係などなど、技術どころか社会人としてすらゼロからのスタートであることを自覚したのです。これを機に開発組織そのものや組織のカルチャーにも興味を持ち、アジャイルのような開発手法や、ティール組織や1 on 1、OKRなど、組織づくりに関する書籍も読み始めました。

エンジニアになってからずっとtoCのサービスの会社にいたのですが、toCを選んだ理由は、広く使ってもらえてトラフィックが多いサービスを開発・運用できるようになりたかったからです。特に前職のGunosyでは、モダンな技術スタックでかなり大きいものから新規サービスまで幅広い開発・運用経験を積む機会に恵まれました。コーディングだけではなく、インフラを触ったり、負荷を監視したり、マイクロサービスやシステムアーキテクチャについて学ばせていただいたりしました。特に新規事業の開発では、関係者と直接仕様をすり合わせたり、POのような立ち回りも経験し、責任を持ってサービスを担当することで、エンジニアとして大きく成長できたと思っています。
一方で、toCのサービスは市場の移り変わりが速く、スピード重視で開発せざるを得ない状況だったことから、漠然と「開発・保守がしやすく、安全なサービスを作れるエンジニアになりたい」と考えるようになりました。それに伴い、クリーンアーキテクチャなどのパターンや、DDD、関数型プログラミングなどについて学びはじめました。

キャディとの出会いと面接

もともと業務効率化の経験が私のエンジニアとしての原点だったこともあり、最近は個人的な興味としてtoBのサービスの開発をやりたいと思うようになりました。キャディのことは、メディア記事や、Rustの勉強会やCTO対談のようなミートアップで拝見して知っていました。
キャディis何やってる会社?と思ったあなたは、ぜひ「キャディの事業を知る」をご一読ください。簡単に言うと、加工品を受注し、工場へ依頼してモノを作り、完成品を届けるところまでの一連の工程をシステムで最適化する会社です。

技術スタックに興味があったことや、アルゴリズムや画像認識など技術の幅が広そうなこと、市場に対する事業のインパクトが大きいこと、課題が複雑らしいこと、カルチャーが面白そうだったことなどから、好奇心を抑えきれずカジュアル面談に申し込みました。
なんだそれ面白そうだな?と思ったあなたには、「キャディの技術を知る」という資料がオススメです。

カジュアル面談と面接で、PMやビズサイドの方を含めて合計8人とお話しました。技術的な話から組織、ドメインの話まで、面接はとても楽しかったです。製造業というドメインのイメージから、勝手にものすごくおカタイ開発組織を想像していたのですが、アジャイル、DDD、クリーンアーキテクチャを導入しており、スピード感を持って開発しています。これらはミーハーではなく組織として導入する努力をしていて、例えばPMの人もドメイン設計に参加していたりします。

キャディは技術スタックが珍しく、かつドメインが複雑であるがゆえに将来的に技術を柔軟に取捨選択する必要がある可能性があるため、得意分野に縛られずに学習できる人であることを重視しています。そのような技術的チャレンジがあること、学習能力を重視していたことも、私にとっては会社を選ぶ上で非常に大切でした。
人が常に足りていないベンチャー企業が、エンジニアの学習能力を重視するというのは珍しいなと思ったのですが、実際にRust (もしくは関数型言語) 未経験で入社される方も多いです。また、社内では言語以外にも幅広いテーマで毎週1~2回社内勉強会が開催されていて、これがまたとても濃厚です。外部向けにはRustJavaScriptのミートアップを主催していますので、よければフォローしてみてください。

すべての面接が終わったあと、CTOの小橋さんから、私の話を聞いてどういう人だと思ったのか、キャディでどのように成長していってほしいか、どのような役割を担ってほしいかなど、丁寧なフィードバックを頂き、安心してこの会社で頑張ろうと思えました。小橋さんは面倒見が良く、エンジニアのパパ的存在だと勝手に思っています。採用以外でもそうですが、全体的にコミュニケーションをよく取る会社だと思います。

最後に、社長の面白さもキャディの良さだと思っています。エンジニアにとっても、社長って気になりますよね。キャディでは最終面接でCTO、CEOとそれぞれ面接をするのですが、コンサル、しかも世界のマッキンゼー卒の社長とか、さぞ開発組織に理解がなくてトップダウン型マイクロマネジメントなんだろうという先入観を持っていました。ひどいですね。私がエンジニアになったばかりの頃、証券会社でのやり方をなかなか変えられずに失敗ばかりしていたので、世の中そんな甘くないやで!と思っていたところもあるかもしれません。
実際に話してみると、ビジネスも組織構造も私が思っているよりも変化が速く、課題解決のために柔軟に動く会社だということがわかりました。また会社の施策に関しても、COVID-19の対応のようにトップダウンで進めた方が良いこともある一方で、現場で推進できることは任せるという感じで、極めて地に足のついた人だなという印象でした (特に戦コンの人にとっては当たり前のことかもしれませんが) (突然上から目線でごめんなさい)。なお、実はいじられキャラなのか、よくアイコラされた写真がSlackで流れています。

そんなこんなで、長くなってしまいましたがまとめると、私がキャディに決めた主な理由は、チャレンジが多くて面白そうだったことと、私の信念と会社の価値観が近かったことです。

実際入社してみてどう?

入社してみての印象ですが、会社全体が今まで見たこと無いレベルの熱量を持って動いていて、勢いのあるベンチャーってすごいな (小並感) と思っています。情報量がとても多いです。あと、よくわからないですが強い人が多いです (小並感)。どんな人がどんなことしてるの?と気になったあなたは、こちら↓にブログ記事がまとまっていますので、よければ御覧ください。

エンジニアで言うと、「whyを重視する」価値観がとってもお気に入りです。どのような技術をどのように使うのかはもちろんのこと、それ以上に、なぜそうするのか、本当にそのやり方がベストなのかなど、気になったことを話し合う習慣があるため、質問や提案がどんどん出ます。

また、状況的に会社にこそ集まれませんが、Discordで自分のデスクを模した音声チャンネルが設置されていて、デスクを訪れる感じで質問しにいけるようになっています。おかげで、オンボーディングもリモート特有の苦労は感じていません。

ですが、キャディの技術スタックは私がこれまで扱ってきたものとは大きく異なっており、加えてキャディが扱うドメインが想像以上に複雑だったこともあり、正直なところまだまだ仕事は追いつけていません。チームの皆様の温かいご支援のもと、日々楽しく奮闘しております。取り急ぎ、チームで協力して難しい課題に向き合うのは、とても幸せなことだなあと感じています。

積極採用中らしいので、最後に会社の情報を載せておきます。私でよければお話することもできますので、ご興味ある方はご連絡ください

CTOからすべてのエンジニアへの手紙
キャディの技術を知る
キャディの事業を知る
CADDi ENGINEER Tech Blog
募集職種一覧

長文お読みいただきありがとうございました!

この記事が気に入ったら、サポートをしてみませんか?
気軽にクリエイターの支援と、記事のオススメができます!
お読みいただき、ありがとうございます☺️
43
CADDiのサーバーサイドエンジニアです。Rust、TypeScriptを主に使っています。