給料が上がらない。残業を減らしたい。もっとコードを書きたい。上司に相談しても、状況は変わらない。
エンジニアとして経験は積んできたし、仕事にも自信がついてきた。今の会社より、自分をもっと評価してくれる会社があるかもしれない。
「俺も、そろそろ転職か?」
そう思って求人を見始めると、別の問題が出てくる。
大企業で、ちゃんと経験を積んだほうがいいのか。それとも、スタートアップで、もっと仕事を任せてもらったほうがいいのか。
僕は最初の転職でスタートアップに入り、別のスタートアップではCTOも経験した。ヤフーや楽天などの大企業でも働いた。
会社が変わると、同じエンジニアでも仕事の中身はずいぶん違った。
初めての転職は、キャリアを「点」から「線」にするチャンス
新卒で会社を選ぶときは、仕事の経験がない。自分に何が向いているかも、まだよく分からない。いわば、キャリアの最初の「点」を選ぶようなものだ。
でも、初めての転職は違う。すでに仕事を経験し、身につけた技術がある。
その技術をさらに磨いてスペシャリストを目指してもいい。仕事の範囲を広げて、マネジメントに挑戦する道もある。
スタートアップから大企業へ移り、大規模な開発に挑戦する。逆に、大企業からスタートアップへ移り、自分の実力を試す。どちらもステップアップになり得る。
経験を積んだ今なら、新卒のときには入れなかった会社に入れるかもしれない。あのときは思い切れなかった、チャレンジングな環境に飛び込むことだってできる。
最初の会社で積んだ経験を、次にどうつなげるか。
初めての転職は、そんなふうにキャリアを「点」から「線」にしていく機会でもあると思う。
大企業かスタートアップか。僕ならこう選ぶ
これまでの経験を、次の会社でどう活かすか。僕なら、まずこう考える。
| これまでの経験・今の状況 | 僕ならまず考える候補 | 転職先で実現したいこと |
|---|---|---|
| 開発経験はあるが、技術を相談したり、コードをレビューしてもらえる人がいない | 経験豊富なエンジニアがいる大企業 | コードレビューや技術的な議論を通じて、開発スキルを磨く |
| 実装やテストは経験したが、要件の検討や設計は任されてこなかった | 少人数で要件定義から設計・実装まで担当できるスタートアップ | 要件の検討やシステム設計など、上流工程から開発に関わる |
| バックエンドなど特定領域の設計・開発は経験したが、システム全体には関わってこなかった | 幅広い仕事を任せてもらえるスタートアップ | 技術選定から設計・開発・運用まで、システム全体に関わる |
| 小規模なサービスの開発は経験したが、大量アクセスや大量データを扱ったことがない | 大規模サービスを持つ大企業 | 大量アクセス・大量データを扱う開発に挑戦する |
| 後輩の指導は経験したが、リーダーになる機会がない | チームを拡大中のスタートアップ | チームを率いて、開発方針や優先順位の決定にも関わる |
| 保守や改修が中心で、新しい開発に関わる機会が少ない | 新規サービスの設計・開発に携われるスタートアップ | 新しいサービスの立ち上げから開発に関わる |
| 受託開発で、顧客の要望に合わせてシステムを作ってきた | 新規サービスを早く立ち上げたいならスタートアップ。大規模サービスに関わりたいなら大企業 | ユーザーの反応を見ながら、継続的にサービスを改善する |
| 仕事には自信がついたが、給与や評価が上がらない | 早期の役割拡大・年収アップなら成長中のスタートアップ。中長期の昇給・キャリア形成なら制度が整った大企業 | これまでの実績を、役割や年収の向上につなげる |
かなり僕の主観が入った表なので、異論もあると思う。でも、スタートアップと大企業の両方で働いてきた僕には、それぞれを勧めたい理由がある。
まずは、スタートアップで働いていた頃の話から。
予算なし、人手なし、時間なし、トラブルあり。誰にも頼れない環境が、僕を成長させた
技術選定から障害対応まで、全部自分の仕事だった
受託会社で約3年働き、プログラミングを身につけた。その後、初めて転職したのが、携帯向けコンテンツを手がけるスタートアップ、サイバードだった。
当時は携帯コンテンツ市場が伸びていて、エンジニアが求められていた。
予算も時間も人手も十分ではない。それでも、やるべき仕事は山ほどあった。
そのスタートアップでは、技術選定から設計、開発、テスト、受け入れ、リリースまで、一通り自分で担当した。自分の実装した部分だけじゃなく、SESや受託会社に発注した仕事をチェックするのも自分の仕事。リリース後にトラブルが起きれば、その対応も自分だった。
「自分でやれる」「自分で決められる」と言えば聞こえはいい。でも、実感としては、自分がやらないと、誰もやってくれない。
Oracleのデータベースが落ちて、データセンターへ行き、サポートに電話しながら対応したこともある。
コードを書いて終わり、ではなかった。
やりがいはあった。でも、大変だった。
一通りやったからこそ、身についた勘所がある
「DBの設計は、この段階で考えておいたほうがいい」「テストでは、こういうエラーは早めに潰しておきたい」「環境構築はこの順番で進めたほうがいい」「本番環境でこういうアラートが出てたら、このログをチェックしたほうがいい」。
このとき身につけた判断は、今でも仕事に役立っている。
もし最初から大規模な開発の一部分だけを担当し続けていたら、僕は同じようには身につけられなかったと思う。
会社が伸びるなかで、給料も上がっていった
初めての転職で、年収は大幅アップ。その後も毎年、給料がどんどん上がった。在籍中には会社の株式公開もあり、ストックオプションをもらう経験もした。
僕の初転職は、身につけたプログラミングを、必要としている会社へ持っていく転職だった。そこで仕事の範囲が広がり、給料も上がった。
教えることより、成果が優先される
ただ、いいことばかりじゃない。
スタートアップでは、基本的に「できる」ことが前提だった。人を育てることより、事業やプロジェクトで成果を出すことが優先される。僕自身、受け入れる側になってからも、教育に時間を使えるのは、仕事がうまく回って余裕ができたときくらいだった。
僕がエンジニアとして成長できたのも、深夜に一人でデバッグしたり、休日にトラブルシューティングしたりする中で学んだことが大きい。誰かが手取り足取り教えてくれたわけじゃない。
もちろん、そんな働き方を勧めたいわけじゃない。でも、少なくとも僕が経験したスタートアップは、そういう環境だった。
だから、受け身で「誰かに教えてもらいたい」という人には、こういう環境は向いていないと思う。
高度な技術、膨大なデータ、複雑なシステム。大企業で知った別世界
スタートアップからヤフーへ。技術も、仕事の分担も違った
ここからは、初転職よりあとの話だ。スタートアップで設計から開発、運用まで一通り経験した僕は、小さなサービスなら「何でも自分でできる」と思っていた。
でも、ヤフーに転職して、その考えが変わった。
当時の僕の現場では、米国ヤフーの技術を流用し、C言語でコードを書いていた。ソートくらいは自分で書くのが普通。周りのエンジニアの技術力にも違いを感じた。
さらに、広告やログインなど、複雑なシステムとの連携。圧倒的なアクセス数とデータ量。誰もが知っているサービスを動かす仕組みは、それまで僕が経験してきたものとはまるで違った。
こんなもの、一人では到底作れない。
開発も同じだった。自分の担当するコードを書くだけでは進まない。ほかのエンジニアやチームと、どう連携して開発を進めるか。それも大切な仕事になった。
役割分担も違った。スタートアップではデータセンターまで行くこともあったが、ヤフーではその機会がほとんどなくなった。監視の一次対応は、業務委託の人たちが担っていた。
自分の会社での「普通」が、ほかでも普通とは限らなかった。
幅広く関わりたい人には、分業が物足りなく感じられるかもしれない。でも僕にとって、大規模なサービスをチームで開発する経験は、それまでとは違う面白さがあった。
ヤフーで身につけた開発の進め方は、今も土台になっている
ヤフーで得たのは、大規模なサービスの開発経験だけではない。
当時のヤフーは、アジャイルな開発を積極的に取り入れていた。僕もそこで、MVPや、反復しながら進める開発を経験した。
こうした開発の進め方は、今でも自分の仕事のベースになっている。
僕が経験したアジャイル開発の具体的な進め方は、自社開発エンジニアの仕事内容で詳しく紹介している。
また、ヤフーでの経験をデブサミや米国のカンファレンスで話す機会もあり、エンジニアとして経験の幅も広がった。
ただ、大企業もいいことばかりじゃない
高度な技術や大規模なサービスに関われるのは面白かった。でも、その分、大企業ならではの面倒くささもあった。
まず、覚えなければいけないことが多い。広告やユーザー管理、ログの仕組み、各種ライブラリなど、専用のシステムや仕組みがたくさんあった。理解して使いこなせれば、効率よくシステムを構築できる。でも、全体を把握するのは簡単じゃない。1か月や2か月で全部理解できるような代物ではなかった。
運用にも独自のルールがあった。ログの形式やデータの種類によってセキュリティ区分が分かれている。個人情報にアクセスする必要がある作業では、スマホをロッカーに預け、監視員の前で金属探知機を通り、監視カメラのある部屋で作業した。ネットワークも大幅に制限されていた。
組織の仕組みにも時間を取られる。毎週の上司との1on1や、目標設定・評価のための作業。予算の管理や調整にも時間がかかった。スタートアップの頃はさっと済ませていたことも、大企業ではいろいろな手続きが必要になる。
こうした仕組みを理解して、その上で成果を出さなければならない。高度な技術を使えるだけでは、大企業の仕事は回らなかった。
僕はヤフーで10年以上働いたが、最終的には会社を辞めた。技術や仕事の面白さとは別に、キャリアや組織の問題もあった。そのあたりは、僕がヤフーを辞めた理由に書いている。
まとめ:次の会社で、何を経験したいか
「大企業なら成長できる」「スタートアップなら裁量がある」。そんな単純な話だったら、転職先選びで誰も悩まない。
僕だって、最初からキャリアの完成図があったわけじゃない。目の前の仕事に取り組み、会社を変え、また知らない仕事に出会った。
でも、あとから振り返ってみると、バラバラだった経験がつながっていた。点と点が、いつの間にか線になっていた。
だから、初めての転職で10年後の自分まで決める必要はない。今の会社に不満があるなら、それも立派な出発点だ。
ただ、次の会社を選ぶときには、ひとつだけ考えてみてほしい。
「今までの経験を使って、次は何ができるようになりたいか」
もちろん、給料や働き方を犠牲にする必要はない。「成長のため」と言いながら、我慢することばかり増えても仕方がない。
大企業かスタートアップか。会社の看板だけで選ぶのではなく、そこでどんな仕事を経験できるのか。僕は、それを基準に考えたい。
これから転職活動を始める人へ。
活動の進め方や注意点は、転職活動の進め方ガイドにまとめている。
希望する環境に合う求人を探したいなら、IT・Webエンジニア向け転職エージェントの比較も参考にしてほしい。

