【実体験】エンジニアの初転職、大企業かスタートアップか?「正解」がない理由

エンジニアのキャリア

給料が上がらない。残業を減らしたい。もっとコードを書きたい。上司に相談しても、状況は変わらない。

エンジニアとして経験は積んできたし、仕事にも自信がついてきた。今の会社より、自分をもっと評価してくれる会社があるかもしれない。

「俺も、そろそろ転職か?」

そう思って求人を見始めると、別の問題が出てくる。

大企業で、ちゃんと経験を積んだほうがいいのか。それとも、スタートアップで、もっと仕事を任せてもらったほうがいいのか。

僕は最初の転職でスタートアップに入り、別のスタートアップではCTOも経験した。ヤフーや楽天などの大企業でも働いた。

会社が変わると、同じエンジニアでも仕事の中身はずいぶん違った。

初めての転職は、キャリアを「点」から「線」にするチャンス

新卒で会社を選ぶときは、仕事の経験がない。自分に何が向いているかも、まだよく分からない。いわば、キャリアの最初の「点」を選ぶようなものだ。

でも、初めての転職は違う。すでに仕事を経験し、身につけた技術がある。

その技術をさらに磨いてスペシャリストを目指してもいい。仕事の範囲を広げて、マネジメントに挑戦する道もある。

スタートアップから大企業へ移り、大規模な開発に挑戦する。逆に、大企業からスタートアップへ移り、自分の実力を試す。どちらもステップアップになり得る。

経験を積んだ今なら、新卒のときには入れなかった会社に入れるかもしれない。あのときは思い切れなかった、チャレンジングな環境に飛び込むことだってできる。

最初の会社で積んだ経験を、次にどうつなげるか。

初めての転職は、そんなふうにキャリアを「点」から「線」にしていく機会でもあると思う。

大企業かスタートアップか。僕ならこう選ぶ

これまでの経験を、次の会社でどう活かすか。僕なら、まずこう考える。

これまでの経験・今の状況 僕ならまず考える候補 転職先で実現したいこと
開発経験はあるが、技術を相談したり、コードをレビューしてもらえる人がいない 経験豊富なエンジニアがいる大企業 コードレビューや技術的な議論を通じて、開発スキルを磨く
実装やテストは経験したが、要件の検討や設計は任されてこなかった 少人数で要件定義から設計・実装まで担当できるスタートアップ 要件の検討やシステム設計など、上流工程から開発に関わる
バックエンドなど特定領域の設計・開発は経験したが、システム全体には関わってこなかった 幅広い仕事を任せてもらえるスタートアップ 技術選定から設計・開発・運用まで、システム全体に関わる
小規模なサービスの開発は経験したが、大量アクセスや大量データを扱ったことがない 大規模サービスを持つ大企業 大量アクセス・大量データを扱う開発に挑戦する
後輩の指導は経験したが、リーダーになる機会がない チームを拡大中のスタートアップ チームを率いて、開発方針や優先順位の決定にも関わる
保守や改修が中心で、新しい開発に関わる機会が少ない 新規サービスの設計・開発に携われるスタートアップ 新しいサービスの立ち上げから開発に関わる
受託開発で、顧客の要望に合わせてシステムを作ってきた 新規サービスを早く立ち上げたいならスタートアップ。大規模サービスに関わりたいなら大企業 ユーザーの反応を見ながら、継続的にサービスを改善する
仕事には自信がついたが、給与や評価が上がらない 早期の役割拡大・年収アップなら成長中のスタートアップ。中長期の昇給・キャリア形成なら制度が整った大企業 これまでの実績を、役割や年収の向上につなげる

かなり僕の主観が入った表なので、異論もあると思う。でも、スタートアップと大企業の両方で働いてきた僕には、それぞれを勧めたい理由がある。

まずは、スタートアップで働いていた頃の話から。

予算なし、人手なし、時間なし、トラブルあり。誰にも頼れない環境が、僕を成長させた

技術選定から障害対応まで、全部自分の仕事だった

受託会社で約3年働き、プログラミングを身につけた。その後、初めて転職したのが、携帯向けコンテンツを手がけるスタートアップ、サイバードだった。

当時は携帯コンテンツ市場が伸びていて、エンジニアが求められていた。

予算も時間も人手も十分ではない。それでも、やるべき仕事は山ほどあった。

そのスタートアップでは、技術選定から設計、開発、テスト、受け入れ、リリースまで、一通り自分で担当した。自分の実装した部分だけじゃなく、SESや受託会社に発注した仕事をチェックするのも自分の仕事。リリース後にトラブルが起きれば、その対応も自分だった。

「自分でやれる」「自分で決められる」と言えば聞こえはいい。でも、実感としては、自分がやらないと、誰もやってくれない。

Oracleのデータベースが落ちて、データセンターへ行き、サポートに電話しながら対応したこともある。

コードを書いて終わり、ではなかった。

やりがいはあった。でも、大変だった。

一通りやったからこそ、身についた勘所がある

「DBの設計は、この段階で考えておいたほうがいい」「テストでは、こういうエラーは早めに潰しておきたい」「環境構築はこの順番で進めたほうがいい」「本番環境でこういうアラートが出てたら、このログをチェックしたほうがいい」。

このとき身につけた判断は、今でも仕事に役立っている。

もし最初から大規模な開発の一部分だけを担当し続けていたら、僕は同じようには身につけられなかったと思う。

会社が伸びるなかで、給料も上がっていった

初めての転職で、年収は大幅アップ。その後も毎年、給料がどんどん上がった。在籍中には会社の株式公開もあり、ストックオプションをもらう経験もした。

僕の初転職は、身につけたプログラミングを、必要としている会社へ持っていく転職だった。そこで仕事の範囲が広がり、給料も上がった。

教えることより、成果が優先される

ただ、いいことばかりじゃない。

スタートアップでは、基本的に「できる」ことが前提だった。人を育てることより、事業やプロジェクトで成果を出すことが優先される。僕自身、受け入れる側になってからも、教育に時間を使えるのは、仕事がうまく回って余裕ができたときくらいだった。

僕がエンジニアとして成長できたのも、深夜に一人でデバッグしたり、休日にトラブルシューティングしたりする中で学んだことが大きい。誰かが手取り足取り教えてくれたわけじゃない。

もちろん、そんな働き方を勧めたいわけじゃない。でも、少なくとも僕が経験したスタートアップは、そういう環境だった。

だから、受け身で「誰かに教えてもらいたい」という人には、こういう環境は向いていないと思う。

高度な技術、膨大なデータ、複雑なシステム。大企業で知った別世界

スタートアップからヤフーへ。技術も、仕事の分担も違った

ここからは、初転職よりあとの話だ。スタートアップで設計から開発、運用まで一通り経験した僕は、小さなサービスなら「何でも自分でできる」と思っていた。

でも、ヤフーに転職して、その考えが変わった。

当時の僕の現場では、米国ヤフーの技術を流用し、C言語でコードを書いていた。ソートくらいは自分で書くのが普通。周りのエンジニアの技術力にも違いを感じた。

さらに、広告やログインなど、複雑なシステムとの連携。圧倒的なアクセス数とデータ量。誰もが知っているサービスを動かす仕組みは、それまで僕が経験してきたものとはまるで違った。

こんなもの、一人では到底作れない。

開発も同じだった。自分の担当するコードを書くだけでは進まない。ほかのエンジニアやチームと、どう連携して開発を進めるか。それも大切な仕事になった。

役割分担も違った。スタートアップではデータセンターまで行くこともあったが、ヤフーではその機会がほとんどなくなった。監視の一次対応は、業務委託の人たちが担っていた。

自分の会社での「普通」が、ほかでも普通とは限らなかった。

幅広く関わりたい人には、分業が物足りなく感じられるかもしれない。でも僕にとって、大規模なサービスをチームで開発する経験は、それまでとは違う面白さがあった。

ヤフーで身につけた開発の進め方は、今も土台になっている

ヤフーで得たのは、大規模なサービスの開発経験だけではない。

当時のヤフーは、アジャイルな開発を積極的に取り入れていた。僕もそこで、MVPや、反復しながら進める開発を経験した。

こうした開発の進め方は、今でも自分の仕事のベースになっている。

僕が経験したアジャイル開発の具体的な進め方は、自社開発エンジニアの仕事内容で詳しく紹介している。

また、ヤフーでの経験をデブサミや米国のカンファレンスで話す機会もあり、エンジニアとして経験の幅も広がった。

ただ、大企業もいいことばかりじゃない

高度な技術や大規模なサービスに関われるのは面白かった。でも、その分、大企業ならではの面倒くささもあった。

まず、覚えなければいけないことが多い。広告やユーザー管理、ログの仕組み、各種ライブラリなど、専用のシステムや仕組みがたくさんあった。理解して使いこなせれば、効率よくシステムを構築できる。でも、全体を把握するのは簡単じゃない。1か月や2か月で全部理解できるような代物ではなかった。

運用にも独自のルールがあった。ログの形式やデータの種類によってセキュリティ区分が分かれている。個人情報にアクセスする必要がある作業では、スマホをロッカーに預け、監視員の前で金属探知機を通り、監視カメラのある部屋で作業した。ネットワークも大幅に制限されていた。

組織の仕組みにも時間を取られる。毎週の上司との1on1や、目標設定・評価のための作業。予算の管理や調整にも時間がかかった。スタートアップの頃はさっと済ませていたことも、大企業ではいろいろな手続きが必要になる。

こうした仕組みを理解して、その上で成果を出さなければならない。高度な技術を使えるだけでは、大企業の仕事は回らなかった。

僕はヤフーで10年以上働いたが、最終的には会社を辞めた。技術や仕事の面白さとは別に、キャリアや組織の問題もあった。そのあたりは、僕がヤフーを辞めた理由に書いている。

まとめ:次の会社で、何を経験したいか

「大企業なら成長できる」「スタートアップなら裁量がある」。そんな単純な話だったら、転職先選びで誰も悩まない。

僕だって、最初からキャリアの完成図があったわけじゃない。目の前の仕事に取り組み、会社を変え、また知らない仕事に出会った。

でも、あとから振り返ってみると、バラバラだった経験がつながっていた。点と点が、いつの間にか線になっていた。

だから、初めての転職で10年後の自分まで決める必要はない。今の会社に不満があるなら、それも立派な出発点だ。

ただ、次の会社を選ぶときには、ひとつだけ考えてみてほしい。

「今までの経験を使って、次は何ができるようになりたいか」

もちろん、給料や働き方を犠牲にする必要はない。「成長のため」と言いながら、我慢することばかり増えても仕方がない。

大企業かスタートアップか。会社の看板だけで選ぶのではなく、そこでどんな仕事を経験できるのか。僕は、それを基準に考えたい。

これから転職活動を始める人へ。

活動の進め方や注意点は、転職活動の進め方ガイドにまとめている。

希望する環境に合う求人を探したいなら、IT・Webエンジニア向け転職エージェントの比較も参考にしてほしい。