スタートアップに転職して思ったこと

はじめまして！VISITS Technologiesでエンジニアをしている@ham0215です。

VISITSには今年の4月にジョインしました。
入社当初はバックエンドエンジニアは社員1名・業務委託2名で、フロントエンドエンジニアやアプリエンジニア、インフラエンジニアを足しても10名未満の体制でした。

VISITS入社前は食べログで4年ほどお世話になっており、去年は食べログのAdvent Calendarに投稿していました。
https://qiita.com/advent-calendar/2018/tabelog

食べログは私がいた当初でエンジニアが80名ほどいました。

この記事ではスタートアップに転職してちょうど半年くらい経過したので振り返りも兼ねて思ったことを書いていこうと思います。
完全に私の主観です。弊社を代表しているわけでも、ましてやスタートアップ全体を代弁しているわけでもないので一個人の意見として読んでいただけると幸いです:bow_tone1:

# 転職前の状況
食べログでの最終経歴は20名ほどのエンジニアチームでエンジニアリングマネージャーをやっていました。
マネージャーポジションではありましたがエンジニアとしてアプリケーションの実装もやってましたし、1on1や評価・育成などのチームビルディング、開発チームのQCDを上げるために開発フローを整えたり、エンジニアの採用活動をしたり、他部署との調整を行ったりと幅広く担当していました。
大きい案件が重なった時は稼働が上がりキツイこともありましたが、全体的に良質な経験ができて成長することができたし、何よりも食べログというサービスが好きだったのでとても充実していました。

私の中では成長できている実感もあり充実したエンジニアライフを送っていたのですが、エンジニアとして今後のキャリアを考えていた時に0→1フェーズのシステム開発に関わりたいという思いがでてきました。
そこでいくつかのスタートアップの中から自分の技術スタックが合致していてサービスに魅力を感じたVISITSに転職することを決意しました。

# スタートアップに転職して思ったこと
## モダンなシステム構成で開発できる
技術はどんどん進化していきます。そのため昔から運用されているシステムはどんどんバージョンアップしていく必要があります。
ただ、本番運用しているシステムを時代に合わせてバージョンアップしていくことは難しく、大体のシステムは古い構成のまま運用せざるえません。
スタートアップの場合、そもそもシステムが出来た時期が新しいためモダンな構成になっていることが多いです。
ただし、エンジニアが少なく運用タスクに工数が裂きづらいので、油断しているとすぐに保守性が下がり誰もさわりたくないシステムに早変わりしてしまいます。

## 技術選定の自由度が高い
スタートアップの場合、開発言語やインフラ、CI/CDなどを何で実装するかを自分で選ぶことができる可能性が高いです。
弊社でも私が以前から触ってみたかったGraphQLを取り入れてみたり、github actionsがローンチされたのでCIを変えてみたり比較的自由に開発しています。
インフラもインフラエンジニアと協力してGAEで動いているアプリをGKEに乗せ替えようとしたり自由度高く開発することができています。
ただし、趣味でやっているわけではないのできちんと責任を持って開発でき、将来性があり、スケールする時にエンジニアが増やしやすいものを選定するようにしましょう。

## 担当範囲が広い
弊社のエンジニアはフロントエンド・バックエンド・インフラ・アプリと技術スタックで明確に分かれています。
ただ人数が少ないのでバックエンドエンジニアがインフラを触ったり、アプリエンジニアがフロントエンドを開発したり、インフラエンジニアが社内システムをみたり、、、幅広い範囲を見ることがあります。

## 開発時のチェック体制がゆるい
ブランチのフローやチェック体制も整っていない可能性が高いです。
少人数、または一人で開発していると明確にルールを決めなくてもそれなりにうまく回るのですが、自分への縛りをかけるためにも開発フローは整えてきちんと守ることをお勧めします。
また、開発フローを整えておかないとエンジニアが増えた時に困ります。

## システムの目指す方向が変わる
会社の方針が変わったり、市場の状況が変わることでシステムの目指す方向が大きく変わることがあります。
それによって作ってきたシステムを大幅に修正したり破棄して新たに作る必要があるかもしれません。
かっちりとしたシステムを作ることも大事ですが、不確実な状況の中でこだわりすぎずにシステムを速く作るスキルも大事になります。

## 属人化
属人化は悪という印象が強いですが、スタートアップは基本属人化の塊です。
ルールが整備されていないこともありますが、そもそも担当者が一人だったりと組織化するだけのメンバーが揃っていないことが多いです。
属人化はできる人がいなくなったら崩壊するというリスクを抱えていますが、立ち上がりが速く柔軟に物事に対応できるという強力なメリットも持っています。
スタートアップでは属人化を有効活用していくことも大切だと思います。
（もちろんスケールした時には属人化を排除する方法を考える必要はあります）

## 福利厚生が弱い
上場企業と比べるとやはり福利厚生は弱いと思います。
最近のテック企業はリモートワークや研修サポートなどエンジニアに寄り添った制度をアピールしていることが多いですが、確定拠出年金や特別休暇など上場企業では基本的な福利厚生も含めるとやはり弱い印象があります。
ただ、スタートアップは社員の意見を聞いて福利厚生もどんどん改善されていく可能性があるのでそこは楽しみの一つではあります。

## 評価制度
評価制度が整っていない可能性が高いです。
流行りの評価制度、最近で言うとOKRなどを取り入れていることもありますが運用を整えていく段階のことが多いのでこちらも今後に期待。
というか（評価制度に限らずですが）一緒に制度を改善して育てていく気持ちが大事です。

## エンジニア以外との距離が近い
エンジニア以外、例えば営業やコーポレートのメンバーとも距離が近いです。
また、CEOなど経営陣との距離も近いです。雑談のノリで会社の戦略などについて聞いたりすることができます。
普段関わらない業種の方と話すと考え方や仕事に対する考え方も違って良い刺激になります。
ただし、距離が近いとはいえ業務で関わらなければ話す機会も少ないので何もアクションしなければ特に関わることなく時は過ぎていきます。
距離が近いことを生かすも殺すもあなた次第です。

## 席替えが多い。席が足りない
人の増加が激しいので頻繁に席替えが発生します。
また急激に人が増えた場合、瞬間的に席が足りなくなることもあるでしょう。
人の増加でオフィスを引っ越すこともあります。
引越しは引越し先の立地などで満足感が大きく左右されますが、スタートアップの場合は資金調達でお金ができたときに引っ越すことが多いため、よりグレードが高いオフィスになり満足感が高くなることが多いのではないでしょうか。

ちなみにスタートアップじゃなくても従業員数がガンガン増加している企業は席替えや引越しが多いです。今思えば前職も席替えが多かった。

## 採用の応募が少ない
前職でエンジニア採用をしていた時は毎日のように書類選考して週に1回は面接をしていましたが、スタートアップは応募がかなり少ないです。
また、育てる余裕がなく最初から一人で動けるハイスペックな方を探しているため全然見つかりません。
応募を待っているだけでは難しいので、こちらからオープンな場にでていきアピールしたり、過去のつながりを使ってリファラル採用するなど積極的な採用活動が必要です。
手間はかかりますが、私の場合は今まで以上にオープンな場にアウトプットする気持ちが高まったので良かったかなと思っています。

## いつなくなってもおかしくない
大企業も経営が傾くご時世ですが、スタートアップはそれ以上にリスクを抱えています。
資金調達できず資金が尽きたり、事業がこけて再起不能になってしまったり、買収や売却などもあります。
スタートアップで働くからにはこのリスクを受容して、いつでも転職できる気持ちを持っておくことが大切だと思います。
「いつでも転職できる」というといい印象を持たない方もいるかもしれませんが、いつでも転職できる状態にするにはスキルを磨いたりアピールできるレベルの成果を出したりする必要があります。
そのため結果として現職への貢献度も高くなると考えています。

# 最後に
最後まで読んでいただきありがとうございます！
スタートアップは良くも悪くも流動的であり内情も様々ですが、社会に何らかのインパクトを与えようとしてがんばっている点はどこも同じだと思います。
スタートアップが気になるけどよくわからないという方の参考に少しでもなれば幸いです。