その他

転職してフルリモートのエンジニアになります

今回はいつもと全く違うテーマの記事になります。

私事ですがこの度2022年3月31日付で現職を退職し、2022年4月1日より新しい会社で働くことになりました!

これまで新卒で5年間働いた会社を辞めて初めての転職活動だったので、何をしたかそして結果として何がどう変わるのかを話せる範囲でできる限りお話しして行きます。

クマリオ

これから転職考えてる方のお役に立ればと思ってます

転職で何が変わる?

まずはこれからのお話にご興味持っていただけるかなと思い、転職することで何がどう変わるかを簡単にお話しします。
IT業界内での転職になります。

IT業界の前提知識がある前提で話を進めて行きます。
よく分からない単語が出た場合はお手数ですがググっていただけますと幸いです。

簡単に現職の話をすると私の現職は1次請け、2次請け中心のSIerです。
1次請けと言っても規模はそう大きくはなく、会社の正社員が中心となり要件定義〜テストまで行なっています。

給与は20代後半の平均よりは貰っており、残業は私はあまりしないことを心がけていたので平常時は10〜20h以下で多くて30h程度といった感じでした。

20代後半の平均に私が今最も欲しいフジローヤルのディスカバリーの価格を足したくらいが現年収です。

以上が前提の話で、そこからどう変わるか一覧にまとめてみました。

変わること
  • 働き方:
     出社ベース、残業20h程度 → フルリモート、残業10h以内
  • 給与:
     20台後半平均ちょい上 → プラス大学新卒の平均年収
  • 開発形態:
     受託開発 → 自社開発
  • 開発環境:
     Windowsの8GBのノートPC → M1 ProのMacbookPro + 4Kモニター

めっちゃ変わりますね。
特に圧倒的に快適な開発環境で仕事ができそうなので今からワクワクしています。

クマリオ

会社が4Kモニターを貸与してくれるってマジであったんだ・・・

その他備品として自分の好きなマウスとキーボードや社用のスマホも貸与いただけます。
まだ働いてないのですがこの時点で天国確定です。

給与も今の自分には十分過ぎるくらい頂けそうなのでとてもありがたいです!

転職活動の概要

私が転職を決意したのが11月の中旬だったと記憶しています。
何が行動に移したきっかけだったか覚えてないですが、始まり方は割と衝動的だった気がします。

クマリオ

無理、よし転職活動しよう!みたいな

前々から転職活動を考えていたのですぐに行動に移せたみたいな感じです。
年功序列の色合いが強いのに若手に大量に仕事を詰め込んでくる風潮が気に入らず、元々辞める気ではいました。

私は前述の通りSIerに勤めていたのですが、サービスをどんどん良いものにしていく自社開発系の仕事をしてみたくなったので自社開発の会社を中心に受けていました。

そこから1月末までの約2か月間で合計で9社受けて5社内定をいただきました。

各選考フローでの合格内訳はこんな感じです。

  • 書類選考・コーディングテスト:9/9社
  • 1次面接:8/9社
  • 2時面接:8/8社
  • 最終面接:5/8社

基本的に書類選考〜2次面接くらいまでは落ちなかったので、途中で1日面接がトリプルブッキングしたり毎日面接と地獄のような日々を過ごすことになりました。

キャリアアップの場合は本当に自分が行きたいところ少数に絞って受ける方が良いとこの時感じました。
後々自分の首を絞めないようにもう少し少なめで良かったと反省しています。

上の結果でも分かりますが、最終面接が圧倒的に弱かったです。
最終で落ちると結構精神的なダメージがでかいんですよね・・・

後半はその辺の振り返りもしたいと思います。

書類は経験と工夫したことを分かりやすくまとめる

書類は職務経歴書と履歴書を作りました。
最近よく言われているエンジニアの成果物ポートフォリオみたいなのは特段作っていないです。

一瞬私が運営しているESDB(https://esdb.info/)をポートフォリオとして出そうかと考えましたが辞めました。

クマリオ

ネットの活動ばれたくない

ポートフォリオ任意提出みたいなところも、私は出さなくても通りました。
実務経験が書類選考できちんと表現できていたらさほど気にされないのかもしれません。

ただし、選考中のコーディングテストみたいなものは受けました。
アルゴリズム系の問題を制限時間以内に解くみたいな形式のやつです。

書類に書いたこと

どんなプロジェクトでどの役割で何をしたか?技術的には何を使ったか?そして何を自分なりに工夫したかと言う事を書いていきました。
また、自社開発系は普段の自己研鑽も良く見られるとのことでその辺も書きました。

業務の事では3年目以降は現場のリーダー的なポジションで動くことが多かったので、そこでリーダーとして工夫したことや技術的に工夫したことなどを思い浮かぶ限り書いていきました。

一例をあげるとこんなことを書いていました。

  • リーダーとして
    ⇒ 心理的安全性の確保、技術的相談に乗るための工夫点
  • 技術的な工夫
    ⇒ パフォーマンスの向上、可読性の向上など

なんだか御大層なことをやっているように見えますが、実際普通のことを普通にやっているだけです。

心理的安全性の確保で言えば質問しやすい・話しやすい雰囲気づくりを頑張るとかですね。
他人に伝わりやすい言葉で書こうとすると、仰々しい言葉になりますよね。

こういった普段業務でやっていることを他人に伝わりやすい言葉に翻訳する作業が一番大変でした。
私は転職エージェントを利用し、この辺の翻訳作業はサポートしてもらいました。

自己研鑽に書いたこと

流石にESDBのことは書けなかったので、使用技術とゲームのデータを検索するwebサービスをローカル環境で作ったという旨を書きました。

後はAWS認定ソリューションアーキテクト – アソシエイトの資格を取ったので、資格を取るために勉強したことも書きました。
これは業務でAWSを利用することから興味を持ったなどを面接で話すことが多かったです。

資格を取った後の勉強はサーバーレスアーキテクチャでアプリケーションを作っているという話を書いておきました。
実際今ESDBのリニューアルでサーバーレスアーキテクチャのアプリケーションを作っているので本当に作っています。

ここまでの概要を職務経歴書に書いておき、面接で詳しいことを話すというスタイルを取りました。

未経験でもアピールできるポイントはあると思います

未経験の方でIT業界に転職しようとされている方も今多いと思います。
身近には居ないのですが、そういう話はよく聞きます。

未経験の方だと技術的なところに目が行きがちかと思いますが、異業種でも十分にアピールできるポイントはあると思います。

私がすぐに思い浮かぶのは、

  • 業務でのコミュニケーション力
  • 自分で考える力

この2点です。

それぞれ長くなるので分けて書きます。

コミュニケーション力は必須能力

SIerでもSESでも自社開発でも、どんなITエンジニアになったとしてもコミュニケーション能力は求められます。
もちろんフリーランスでやるにしても大切な能力の一つだと私は思っています。

ここでいうコミュニケーション能力は意思の疎通を図れる能力のことを指します。
社交性のことは指しません。

コミュニケーションをとる相手が顧客なのか、それともチームメンバーなのかという多少の違いはありますが、仕事では必ずコミュニケーションをとる機会があります。

未経験者でも経験者でもコミュニケーション能力は重要視されます。
正しくコミュニケーションが図れないと求めている成果を出すのが難しいからです。

私の個人的な感覚ですが、コミュニケーションの能力と技術力は大体比例する傾向にあります。
機械には人間以上に正確にやりたいことを伝えなければなりません。
プログラムは機械と人間のコミュニケーションです。

プログラムを上手に書けるようになるにつれてコミュニケーションの能力も上がりやすいです。
社交性は意識しないと伸びませんが。。。

クマリオ

社交性は社会人になる前からほとんど変わってない気がします

現在の技術が要件に足りていなくても、コミュニケーション能力が高ければポテンシャルを買ってもらえるケースは多い傾向にあります。

この辺は書類でもアピールできると考えています。
例えば自分のやってきたことをわかりやすく簡潔にまとめた書類を作るという能力ですね。

その際に異業種からの転職でしたら、相手もあなたの前職の前提知識がないので分かりやすく補足も加えておくとより良いでしょう。

誰に何を伝えたいかを意識して話す・書くとコミュニケーション能力が伝わりやすいと思います。

自分で考える力は何事においても大事

特にITエンジニアには自分で考える力が求められます。

自分で考えるというのは、何をどうすれば問題を解決できるかの手段を考える力です。
何でもかんでも自分で作れという意味ではありません。

クマリオ

それこそ車輪の再発明はあまり歓迎されません

簡単な例だと、何か行き詰まったらどんなキーワードで検索すると答えに辿り着けるか?みたいなことですね。

もう少し発展するとこの仕事をやる目的は?背景は?じゃあ何をやらなければいけない?この辺を考えられると非常に良いと思います。

考えるだけでなくそれをチームメンバーあるいは上司、顧客とコミュニケーションを図りすり合わせができていれば間違いなく評価につながります。

ここまで書いた2点があれば後から技術はいくらでも追いついてきます。
技術も大事ですが、特に未経験の方はそれ以外も疎かにならないように気をつけた方が良いかなと思っています。

面接は結論ファーストで簡潔に

基本的に書類選考を通った時点で、いい感じの人だったら面接も合格でいいだろうと思われています。
面接は良いなと思ってもらえる後押しをする場です。

面接の段階によっても見られる観点が異なります。
よくある一次面接、二次面接、最終面接のパターンだと下記のような観点が多いです。

  • 一次面接:会社の求める要件を満たすかどうか
  • 二次面接:担当者が一緒に働きたいと思えるかどうか
  • 最終面接:本当に内定後入社してくれそうか(熱意)

私が面接する中でもこの傾向であることが多かったです。
実際一時面接で落ちた会社のフィードバックでは要件を満たしていないので今回はお見送りという話でした。

この観点に沿うように聞かれたことに対して結論ファーストで簡潔に答えるというのが大切です。
簡潔って何秒くらい?って思われるかもしれませんが、特に面接官から何秒か指定がなければ何秒でも良いと思います。

過不足なく必要最小限に要点がまとまっていればそれは簡潔と言えます。
一律時間を決めて○秒以内の回答を考えるというのは本質からずれるので私は特にそのような回答を準備しませんでした。

回答は一度文章を作ってみるけど覚えない

基本的な志望動機・自己紹介・自己PR、長所・短所みたいな汎用的な質問に関しては1回文章を書いてみました。
何回も口に出して読んで修正してみましたが、これは覚えるためではなく伝わりづらい表現をしていないかの確認のためです。

その後は伝えたいことだけを箇条書きにしてまとめてみたり、最後の方は特に質問の回答を何かにメモしたりということはしなくなりました。

面接はあくまで面接官の方と自分のコミュニケーションの場です。
回答を用意するよりも自分はどんな人間か?を把握して挑む方が大切です。

なので私は回答を全て書く → 箇条書きである程度まとめるという施策で自己理解を深めていきました。
自己理解が進むと大体の質問はアドリブで返せるようになるので私は回答を丸暗記するよりも自己理解を深めていくという面接対策がおすすめです。

志望動機はオリジナリティがあると良い

自分にしか書けない志望動機であれば評価が高いし、意地の悪いツッコミがくることも少ないです。

自分にしか書けないというと難しく思えますが、実は簡単です。
自分の感情を織り交ぜて話せば良いのです。

自分が何故その企業に入りたいか?という問いに対してある程度は盛っても良いので自分の感情面での理由を志望動機に入れてみてください。

志望動機に関して言えば下手に客観性を持たせようとする方がボロが出やすいです。

一次面接は募集要項に沿う人間であることをアピール

一次面接は足切りの場であることの方が多いです。

例えば〇〇はできますか?とか自己紹介や長所短所のような質問が多いです。

その質問に対して募集要項に沿う形で回答できれば大体OKです。

一次面接は基準を満たしてN受け答えがしっかりしていたら通る傾向にあります。
一番明快で分かりやすい面接とも言えます。

登場人物は主に現場のリーダークラスの方が多く、30代位の方が多いです。
現場レベルのコミュニケーションが求められます。

二次面接は担当者次第な部分も多い

二次面接で出てくるのは本部長などの責任者クラスの方が多く登場してきます。
年齢も40代くらいの方が多いです。

その方を相手に一緒に働きたいと思っていただかなければならないので、結構大変なところではあります。

事前リサーチとしては企業のホームページを見てそのクラスの方のインタビューがあれば読んでおくという対策が可能かと思います。
二次面接はあまり出てくる方の名前が明かされないことが多いので、この辺の対策は広く浅くしておく必要があります。

面接中は最初の数問の質問で空気感を感じていくしかないと思います。
相手の方はどういう人でどういう人材を求めてそう。。。みたいなことを考えながら進めていく必要があります。

ただし、ここでも募集要項はヒントになります。
大多数の場合募集要項の求める人材に適した人と働きたいと思われているので、そこに合うような受け答えをしていく必要があります。

コミュニケーションは現場より少し視野が広がり今後どのような仕事をやっていきたいかというレベルまで求められるようになります。

二次面接からは特に経験豊富な方が出てくる場合が多く、作った回答は大体見破られると思います。
こういったことからも面接の回答は作りすぎないことが大切だと思います。

最終面接はとにかく熱意

私が最も苦手なのが最終面接です。
最終面接では役員クラスの方、小規模な会社では社長が登場します。

ここでも二次面接と同じく事前に出てくる人のリサーチは必ず行います。

最終面接はこれまでと大きく印象が異なる面接が多いかと思います。
本質をズバッと切り込んで来るような人が多かったです。

突っ込まれたら困りそうなことはあらかじめ想定しておくことが大切です。

それ以上にその会社に入って何がやりたいか?というメッセージを伝えるのは特に大事です。
私は自社開発の会社をメインで受けていて、最終面接ではこの何がやりたい?が明確に伝わらずに落ちたケースが最も多かったです。

クマリオ

逆にSIer系は最後までスキル面の方が大事でした

最終的に第一志望の会社に無事内定をいただけましたが、多分熱意の一本刀で突破ができたと思っています。
受かった後のフィードバックも熱意と製品理解がとても高いとの評価でした。

今後入社して会社をどうしていきたいというようなレベルのコミュニケーションも求められることが多いです。
面接は選考が進むほど大きな視点で話ができるかという点が大事になってきます。

SIer?SES?自社開発?

昨今はこの論争で自社開発最高!みたいな風潮になりつつあります。
個人的な感覚で言うと、その風潮は半分正解半分間違いな気がしますが。

自分がどんなことをやっていきたいかを考えた上で選ばないと後々後悔することになると思います。
私はざっくりこんなイメージを持っています。

各形態のイメージ
  • SIer:様々な技術に触れたい、大規模な案件をしたい方向け
  • SES:技術のみに従事したい方向け
  • 自社開発:事業会社なので製品がメイン。サービス指向のエンジニアの方が向いてる

このくらい違います。
あまり会社の分類をSESと表現したくないで(本来契約形態なので)すが、便宜上SESとさせていただいたいます。

SESメインの会社は未経験者が良い会社か悪い会社か判断するのが非常に難しいためあまりおすすめはしないです。
良い会社もあるのですが、それ以上に搾取してこようとする会社が多いです。

SIerはいい会社なら数多くの技術に触れることができますが、請負という契約形態上納期が絶対の考え方になります。
また瑕疵担保責任(かしたんぽせきにん)もあるため、品質や証跡もそこまでいるのか?というレベルで残すことを迫られる場合があります。

もちろんこの辺りもうまくやれてるSIerもあると思っていますが、現実問題大きい会社でも(というか大きい会社ほど)起きる問題だと思っています。

この辺りが嫌で私は自社開発に転職することにしました。
自社開発であれば納期よりも製品の性能、証跡作りよりも開発に注力できると思ったからです。

ただし、技術に関しては同じものを長く使い続けることになるのでそこはやっぱりSIerの方が優れているなと私は思っています。
製品が良くなるなら新しい技術を使う方向に舵取りできますが。

未経験者に求められる水準が上がっている?

数年前はサーバーに簡単なRailsのアプリが作れてたらまあおっけーって感じみたいでしたが、今ではクラウドネイティブなインフラでSPAの開発も求められることが多いと聞いています。

今簡単なRailsアプリケーションを作って企業に出してもそれで?となることが多いそうです。
いわゆるそれなりにモダンな技術が求められます。

とはいえ、自分自身が本当に作りたいアプリケーションのためにモダンな技術以外を使ってもそれはそれで評価してもらえると思います。
そのレベルまで達していると技術そのものよりもアプリケーションに注目してもらえるので。

実はモダンな技術は取っ掛かりが難しいだけで、理解さえできれば反対のレガシー技術より簡単だったりします。
レガシーな技術だと取っ掛かりは簡単なのですが、一定以上難しいことを使用するとかなり難易度が高いということが往々にしてあります。

難しいことが簡単に実現できるからモダンになったわけで、難しいことがそのまま難しかったら流行らないですよね。

私もそれなりにモダンと呼ばれているサーバーレスやSPAなど触れてみて、実際色々と簡単になっていることを痛感しました。
特にフロントエンドはjQuery使った開発が億劫になる程SPAの良さに魅了されています。

なので求められる水準が上がったというより、モダンな技術を使用する前提になったため手広くできることが求められるようになったが正しいのかなと思います。

どんなアプリをポートフォリオで出す?

私は出したことがないので偉そうなことが言えないのですが、出すとしたら自分が本当に使いたいアプリケーションを作って出すべきと考えています。

本当に自分の作りたかったものを作るのと適当に面接用に用意しましたというアプリケーションだと圧倒的に作る時の熱量が違います。
これは正直遅くても面接でバレると思います。適当に用意したアプリケーションは本気で作りたいと考えたものじゃないのであんまり深く喋れません。

大体ポートフォリオを見られるとなんでこれを作ろうと思ったかが聞かれますが、その時の回答に差が出ます。

技術的な話だと、ある程度根拠を持って技術選定ができていると良いかなと思います。

単純なAPI実装だけならサーバーレスでいいよねとか、JSとHTMLは分離したいからVueとか、複雑な検索入らないからNoSQLでいいよねとか根拠づけは自分なりにできる範囲でやればいいと思います。

プログラミング言語及びフレームワークの話で言えば短期間で開発したいからRails使うとか、メンテナンス性を重視してPython(Django or Flask)とか、実行速度重視なのでJavaやGoを使うなどこの辺も根拠づけはいくらでもできると思います。

正解はないですし、未経験者に対して深い知見を持った技術選定は求められないので自分でもできるレベルの根拠づけができればOKだと思います。
業務では技術選定を行うエンジニアは一定以上熟練したエンジニアであることが多く、難しい作業の一つです。

内容にしろ、技術選定にしろ自分なりの何かが表現できているアプリをポートフォリオで出すのが望ましいと思います。

まとめ

文字数が多くなり申し訳ないです・・・

必要なところだけ見ていただくでも良いのかなと思います。

これだけ書いても今回触れきれなかったところがたくさんあるので、反響がありましたらまた思い出しながら書いていきたいと思います。