Don't Repeat Yourself

Don't Repeat Yourself (DRY) is a principle of software development aimed at reducing repetition of all kinds. -- wikipedia

若手のエンジニアが SI から Web 系に転職した話

この記事は退職者その2 Advent Calendar 2017 23日目の記事です。転職して1ヶ月半くらい経ったので、転職時の話と実際の業務状況などを簡単に書いておきます。若手で、テックに強い興味があり、なおかつ SI から Web 系への転職を考えている方への参考になればと思います。

書いてる人

最初に簡単に私のプロフィールを書いておきます。

  • 前職は金融業界の SI で、債券・デリバティブリスク管理を行う計算機を作る仕事をしていました。
  • 現在は、いわゆるアドテクの RTB を作るお仕事をしています。
  • 学生時代は Web マーケティングとか Web デザインのアルバイトをしていました。
  • 就活時は戦略コンサルや IT コンサルを受けていました。
  • 文系卒で、就職して初めてプログラミングをしました。
  • 社会人3年目の後半での転職です。

動機

理由は下記3点です。

  • 金融業界xSIでは、使える技術の幅に限界があったから。
  • 受託開発があまりしたくなかったから。
  • アドテクしたかったから: カンファレンスで聞いておもしろそうだなと思ってしまったから。

よくある転職理由かとは思いますが、私もご多分に漏れず、です。

ただ、前職は職場環境としては非常にいいものだったと思っていて、労働時間が異様に長いとか、人間関係をこじらせたとか、そういう理由で転職したというわけではないです。

外資投資銀行出身者や外資系コンサル出身者が多い職場で、そういった人たちの仕事ぶりを社会人最初の3年間でみっちり見ることができたというのは、今後の人生にとてもいい影響を与えてくれるものと確信しています。

転職先探しや実際に決まるまで

準備

探し始めたのは去年の12月くらいからでした。ただ、SI 出身者が Web 系に移るには、やはりそれ相応にコードが書けるということは証明する必要があると思ったので、最新のツールを色々触ってみるところからスタートしました。だいたい半年くらいは準備期間として使いました。

具体的には、自分の手元で作ったアプリケーションを GitHub に適当に公開しました。目的は、面接を受ける際に「技術に興味があって、最新情報も割と追っていますよ」ということをアピールするためでした。面接時の話題作りには役立ってくれたとは思います。

実際にいくつか面接を受ける

  • 技術系の話はそこまで深掘りはされなかった: 履歴書に「専門家感」を出すアピールをしていなかったからだとは思いますが、テック系の話はそこまで深掘りされませんでした。突っ込んだ話で強いて言うなら、パフォーマンスチューニングの話を書いていたので、具体的にどのような手順を踏んでチューニングしていたか、という話くらいでした。 Rust が好きだったので Rust の話はこちらからたくさんしましたが。
  • 実技試験は受けた限りではなかった: なかったです。してもいいと思うけど。
  • チーム内でどのような役割を担っていたか、とか問題解決法とかをよく聞かれた: 仕事に対する姿勢ですね。主体性を発揮しているか、や問題解決をきちんとできる人か、というのをむしろ強く見られていたように感じました。当然ですが事業会社なので、仕事は自分で見つけなければなりません。それができるかどうかを見られていたように思います。
  • GitHub で公開していたコードは自分で勉強する人アピールのネタにはなった: 「ご自身で結構いろいろな技術を触られているんですね」という話はよくされました。が、そこまで中身はまともに見ていなかったように思います。GitHub で公開しているコードに関する質問は受けませんでした。
  • コーディング力については若いこともありポテンシャル重視: 私がまだ若いこともあり、そこまで技術面は期待されていなかったのかなと思いました。入ってから伸ばしてくれればいいや、くらいのスタンスだったように思います。

今の職場への決め手

  • 技術へのリスペクトが感じられた: 技術には、それ相応に長い歴史があり、それを「たかが技術」と片付けることはできないと思っていました。技術に対する強いリスペクトのある職場がいいなと思っていたので、それが感じられた今の職場にしました。
  • 自己の能力を伸ばすことへの惜しみない投資がある: 書籍補助や図書館制度を福利厚生として利用できます。エンジニアの自身の知的探究や自己能力の向上に対して、きちんと投資されている環境だなと思いました。また、大学の研究室のような制度があり、業務時間の何割かをそれに割くことができます。
  • 自分より年齢の高いエンジニアが多い: 30代前半〜後半くらいのエンジニアがとても多いように見えました。そういった人でもバリバリコードを書いていると聞きました。
  • マネジメント層が魅力的: やはり手練な人が多いですね。そして、人の成長とか、人が何考えてるかについて、きちんと興味を持ってくれている人が多いなと思いました。上の人に魅力を感じて入ることを決めました。

内定後

  • 年収とか: 今の額くらいで十分かなという思いがあったので、こちらから強く「上げてくれ」という要求はしませんでした。実際はちょっと上がりました。正直エンジニアの技術力は数値化が難しいものなので、「上げてくれ」アピールはたくさんしてもいいと思います。きっと、言った値段が自分の市場価値です。ちょっと鯖読んで釣り上げても、あとから実力を追いつかせればいいのです(暴論)。
  • 退職を告げる順序: まず、直属の上司 (外資系だったので、日系だとどうなのかはわかりませんが) 、そのあとマネージングディレクター、最後にシニア相当の人、という順序です。必ず役職が下の偉い人から伝えるようにしましょう。飛ばしてはいけません。
  • 入社までの期間: 2ヶ月あったので、自宅で Scala の勉強をたくさんしました。手始めにスクリプト言語インタプリタ作りました。あとは、Web 系でどういう技術が使われているかを一応調べて、手元で動かしてみるなどしました。これは入社後、すぐにキャッチアップができて非常に役立ちました。

転職後

変わったこと

  • 10時出勤になった: 9時出勤から10時出勤になりました。
  • Excelを全然使わなくなった: SI からすると衝撃的かと思います。本当に使わなくなります。
  • メール中心からSlack中心の生活へ: コミュニケーションツールが変わっただけで、とくに感想はありませんが一応。
  • Windows から Mac になった: 使用OSは選べます。WindowsMac か、だけみたいですが。
  • SVN から GitHub に変わった: Git の操作はある程度 GitHub で慣れていたものの、チーム開発の経験はなかったので最初とても苦労しました。今でもマージが怖いです。
  • Java から Scala を使うように変わった: 言語は Rust 使える、以外だったらどれも一緒と思って転職活動をしていたのであまり興味がありませんでしたが、Java から Scala に使用言語が変わりました。ただ、そこまで関数型してません。
  • 技術選択の幅が広がった: さっそく Vue.js でフロントエンド開発をするなど、自分でライブラリを選んで使うことができるようになりました。また、使用言語も技術検証をきちんと行えばなんでも使っていいようで、将来は Rust でガンガン書きたいなと個人的には思っています。
  • ウォーターフォールからアジャイルスクラム)に変わった: 「テスター」という言葉を一切聞かなくなりました。リリース期間が圧倒的に短くなったのと、リリース後にすぐに効果が出ているか出ていないかわかるといった、スピード感の違いも感じています。
  • オンプレからクラウド: AWS は触ったことがなかったので、最初全然わかりませんでした。今も勉強中です。

そもそもの転職の動機が、「もっとたくさんの技術を使いたい」「受託やだ!」だったので、そういった点では転職前の不満は解消されているようです。

変わらないこと

  • 仕事の基本みたいなところ: 重視される価値観は、そこまで変わりありません。自分の立てた見積もりと実際に作業した見積もりに乖離がないことなど。

転職してみての感想

  • 何かが劇的に変わることを期待して転職しないほうがいい: 転職後も、結局は日常が続きます。使える技術を選ぶのも、それを使えるようにするのも、高い評価を得るのも、結局は自分から働きかけないことには達成できません。職場が、環境が自分を変えてくれるだろう、というのは期待しないほうがいいとは思いました。転職は、自身の不満にとっての銀の弾丸にはなりえません。
  • 想像以上に主体性を求められる: SI だと、要件もテストも全部他の人がやってくれていたのですが、Web系はそうはいきません。要件を詰めるのも、テストコードを書くのも、ビルドを回すのも、全部自分でやらなければいけません。また、サービスを生む立場なので、そもそもどういう要件がいいか、から考え始めなければいけません。SI とは状況が全然違います。
  • 仕事の本質的なところは変わらない: コンサルティングファーム仕込みの問題解決力とかプレゼンテーション力とか、SI で培った資料作りとか、ドキュメントづくりとか、そういった基本姿勢やスキルは Web 系でもいかせます。

これからも、たくさんの技術を使うことを楽しみつつ、よりよいプロダクトを作ることに集中して仕事していきたいなと思っています。個人的には、テックリードという言葉にとても興味があるので、そちらの方面に向かっていけたらいいですね。