2021年の振り返り / 元SIerのCOBOLerがWebエンジニアに転職して2年経過しました

どうもご無沙汰しております。

またまたですが、超絶久しぶりにブログを書いてみてます。

2019年12月にSIerから株式会社マネーフォワードに転職してから、早いもので2年経ちました。 実はまた転職しまして、2021年12月から株式会社エウレカでSREとしてお世話になっています。

転職してから半年たっての振り返りは以下の記事に書いたのですが

ownweight.hatenablog.com

それ以降は全然振り返れてないので、転職&年末ということで仕事もプライベートも振り返っていこうと思います。

今何やっている?

株式会社エウレカ に転職して駆け出しSREとして奮闘中です。
また、副業として Electron + NestJS のTypeScriptスタックでアプリケーションコードも書いてます。

エウレカは大学時代のサークルの同期がいて、副業は地元の幼馴染がおり、その縁で働いています。優秀なエンジニアが友達にいてありがたい限りです。

転職しようと思ったきっかけ

以前は「スキルアップ」を重視して転職したと書きましたが、今回も同じです。

前職でエンジニアとして業務をしていく中で、以前にも増してクラウドインフラの構築・運用スキルが重要だなと思うようになりました。

ここでいうクラウドインフラとは、オンプレミスのサーバーをEC2に単純に代替したような形というよりは、AuroraやFargateなど、AWSのようなクラウドベンダーが広範囲をマネージドしてくれるサービスのことを指しています。

ハードウェアやネットワークに造詣の深いエンジニアがクラウドベンダーに吸収されていっている現状を踏まえると、(事業会社に勤める上では)クラウドベンダー側のそういったエンジニアと協力して、アプリケーションの要件に応じ、適切なマネージドサービスを選択し、よりセキュアで、安く、捨てやすく、負債を産みにくいシステムアーキテクチャを設計、構築し、安定的に運用するスキルが求められていくのかなと思いました。

そこで自らがそのようなスキルを取得するためには、(ざっくりではありますが)SREというロールに転身するのが良いのではないかと思いました。

そこで友人のnariogadyエウレカでSREとして働いているということで、カジュアル面談をしてみて、Googleが提唱し実践している「Site Reliability Engineering」の概念を噛み砕いた上で組織に落とし込み、更に色々やっていくぞ!という前向きな環境だと感じたので、選考を受けてみることにしました。

www.wantedly.com

業務

本業

前職ではバックエンドエンジニアとしてやってきましたが、今年に入ってオンプレミスのインフラコードのIaC化や、検証環境のサーバーをAWSに移行したりなど基盤部分の改善を行ってきました。

以前よりネットワークやインフラに詳しくなり、またこの領域のスキルを増やしたいと思うようになりました。結果として現職でSREにロールチェンジするきっかけになったと思います。

現職では完全に駆け出し状態なので、案件をこなしていってスキルアップして能動的に改善を行っていけるようになりたいです。

副業

副業ではTypeScriptスタックでの開発スキルを向上することができました。Reactをガツガツ書くことができ、フロントエンド側のスキルを習得できたのはかなり良かったなと思います。強みとかがあるのは大切だと思うのですが、引き続き手広くスキルを伸ばしていくのが良いかなと思っています。

また、ここまではRailsエンジニアとしてやってきたのですが、型のないコードを扱うのが厳しい・・・と思っていたところに NestJS を使って開発して、やはり型のあるコードはランタイムエラーが少なくて良いというのと、IDEの補完がだいぶ仕事をしてくれるなぁという感じでした。

反省点

インプットは結構できたかなと思う一方で、アウトプットが全然できなかったなぁと思います。エウレカは同僚がアウトプットがとても上手なので見習いたいなと思います。

また副業をはじめて忙しくなったので体系的な知識を習得する時間が減り、経験も増えたのでとりあえず当たって砕けろ的なアプローチをしがちになっているのがちょっと微妙ですね。

資格

転職をキッカケにAWS ソリューションアーキテクトアソシエイトを取得しました。

めんどくさがりなので、ピアソンVUEで自宅受験しました。ドキドキでしたが、部屋からチンニングマシン以外のものを出してすんなりと受験できました。久しぶりの資格習得だったので嬉しかったです。

これからも定期的に資格取れると良いな・・・

プライベート

プライベートでは1LDK -> 2LDKに引っ越して家が広くなりました。在宅環境も1年半でかなり整ってきて、なかなかオフィスに行くメリットを感じづらいです。

趣味ではプロ野球、格闘技、今年からMリーグの観戦を楽しんでいますが、ギターをあまり弾かなくなってしまったので、コンテンツを消化するだけでなく何か上達するような趣味をしたいですね。

コロナ禍でなかなか人と会えなかった一年でしたが、友達とはなんだかんだ結構会えたような気がします。

健康面

今年は自分も奥さんもペットのうさぎさんも健康でした。

運動不足なのでチンニングマシンを買ってコツコツ筋トレしています。

https://www.amazon.co.jp/gp/product/B07VRY841K/ref=ppx_yo_dt_b_asin_title_o04_s00?ie=UTF8&psc=1www.amazon.co.jp

金銭面

お金についてはマネーフォワード ME見える化はしていたのですが、色々工夫したりyoutubeでちょっと勉強するようになりました。

youtube両学長つみたてシータさんを参考にしました。

資産ポートフォリオ的には大半が預金だったのですが、つみたてNISAをはじめたり、企業型確定拠出年金の掛金を最大にしたりと運用に回すようになりました。

生活防衛資金も十分溜まったので、余ったお金も預金にせずにSUSTENに回してみています。

銀行・証券・カード・携帯・ネット・でんき・ガスを楽天経済圏へ移行しました。

楽天市場でのポイントの倍率が7倍くらいになりましたが、Amazon Primeの購買体験が良すぎて楽天市場は結局あまり使いませんでした。(高額な家電やふるさと納税の時くらいですかね)楽天ポイントは貯まりやすいので、あんまりガチらなくても良い感じにはなると思います。

楽天回線は全然電波入らないので結構不満で、携帯はahamoにしようかなと思ってます。 また引っ越すと楽天ひかりとガスは解約になり、再度、東京電力東京ガスから契約し直さないといけないので、経済圏を維持するのも結構手間です。 あとZは競合なので楽天銀行からPayPayやLine Payに入金できないのがしんどいです。

個人事業主

副業をはじめたので個人事業主として開業してみました。マネーフォワードシリーズを使っていて、開業にはマネーフォワード クラウド開業届を利用しました。請求書はマネーフォワード クラウド請求書を使って作成しています。(今のところすべて無料です。)

今後は初めての確定申告や経費計上などが待ち受けていますが、これは来年の振り返りに取っておこうと思います。

来年の抱負

  • SREとして自分の氷帝コールを見つける
  • エウレカでSREとして戦力になる
  • Zenn、ブログ、登壇、Twitter、アドカレなど何でも良いからアウトプット増やす
  • リファラルできたらする
  • IaC力強化
  • 認定Kubernetes管理者(CKA)資格習得
  • Policy as a code やっていく
  • Go力強化
  • 副業の継続、案件リリース&安定運用、できたら単価上げる

  • 家族と自分自身の健康

それではまた。

元COBOLerだった俺のMacBook設定手順

システム環境設定編

iCloud

  • デスクトップのファイルをiCloudに保存するのをやめる

support.apple.com

トラックパッド

  • 軌跡の速さ:最速
  • クリック:最弱
  • その他のオプションは全てON

マウス

  • 最速

キーボード

  • キーのリピート:最速
  • リピート入力認識までの時間:最速
  • 修飾キーからCaps LockControlに割り当てる
  • 修飾キーからCaps LockControlに割り当てる

Dock

  • サイズ:最小
  • Dockを自動的に表示/非表示にチェック
  • Dockのアプリはすべて消しておく

キーボード

アプリ編

Finder

  • あまり使わないが、最低限設定する
  • 表示から表示形式をカラムにし、すべてのオプションを表示にする
  • 環境設定
    • 新規FInderウィンドウで次を表示はホームディレクトリにする
    • タグは全部非表示
    • サイドバーアプリケーションダウンロードデスクトップぐらい

ブラウザ

Google Chrome

  • Webからダウンロード
  • 設定から規定のブラウザChrome
  • 詳細設定からダウンロードの保存先をDesktopに

ランチャー

Alfred

  • hotkeyoption の Double Tap
  • Powerpackに入る
  • alfred-github-workflowを入れる

ターミナル

iTerm2

  • Preferencesから以下の設定をする
    • GeneralStartupWindows restoration policyOnly Restore Hotkey Window
    • ProfilesDefaultを選択し、透過度やフォントサイズを設定、コントラストを50%ぐらいにする
    • textからフォントサイズを15pxぐらいにしておく(Rictyにしたあとは18pxぐらいが良い)
    • WindowStyleFull ScreenScreenScreen with CursorSpaceAll Spacesにする
    • KeysConfigure Hotkey WindowからHotkeyを設定する
    • hotkeyをcommandのDouble Tapにする
  • これでiTremを起動しておけばHotkeyを押すことで、自分のマウスカーソルのある画面に全画面のターミナルが出てくる

開発環境編

パッケージマネージャ

Homebrew

  • brew helpでエラーが出なければOK

https://brew.sh/index_jabrew.sh

VCS

Git

  • brew install git
  • gitでエラーが出なければOK

GitHub

シェル

zsh

カラースキーム

github.com

フレームワーク
  • Prezto
    • 既存の.zshrcに設定を書いているならBackupをとっておきましょう
  • .zpreztorcを編集します
    • zstyle ':prezto:module:prompt' theme 'xxx'の部分をcloudに変更します
    • zstyle ':prezto:load' pmodule \の色々読み込まれている部分以下を追加します
'git' \
'syntax-highlighting' \
  • .zshrcを編集します
    • フレームワークと関係ないですが、lsが見づらいので変えてあげましょう
    • export LSCOLORS=gxfxcxdxbxegedabagacadを追記します

元SIerのCOBOLerがWebエンジニアに転職して半年経過しました

はじめまして。

超絶久しぶりにブログを書いてみます。(Railsの学習記録は消しちゃった笑)

私は2019年の2月に転職を思い立ち、2019年12月に新卒入社から3年8ヶ月勤めた銀行系SIerから、 SaaS企業のサーバーサイドエンジニアへと転職しました。

転職してから気づけば半年経過してしまったので、振り返りも兼ねて、色々と書いてこうと思います。

スペック(当時)

今何やっている?

会社名や業務内容は伏せますが、 SaaS企業のサーバーサイドエンジニアとしてバリバリ業務で開発してます!(フロントも結構書くけど)

個人学習ではReact-Reduxを勉強していて、 re-ducksパターンを用いてなにかアプリを作ろうかなと試行中です。

転職しようと思ったきっかけ

色々あるのですが、「新卒時と価値観が変わったこと」が大きな理由かと思います。 新卒時の私は以下のような軸で会社を選びました。

  • 大手で社会的信用があること
  • 給料の良さ
  • 安定していること
  • 残業があまり多くないこと(これはそんなことなかった)

しかし、実際に社会人として経験を積んでいく中で、 本当に自分が会社に求めていることは「スキルアップできること」ではないかと思うようになりました。

そして、今いる環境は自分にとって「スキルアップできる」場所ではなかったため、 転職活動を行いました。

転職活動について

2019年の2月に転職を思い立ち、8月半ばに内定をもらい、2019年11月末で退社しました。 5月から6月は社内異動や出向の線を探っていて、中断していたので4〜5ヶ月ぐらいの活動でした。

就活面と勉強面で分けて書きます。 こうしてみると、意外と少ないですね...笑

ポートフォリオは転職活動で上手くいかなかったら作ろうと思っていましたが、 転職できたので結果的に作りませんでした。

やったこと(就活面)

  • 自己分析
    • 友人に相談
    • はてブに経歴や転職に対する思いなどを書く
  • Wantedlyに登録
  • カジュアル面談に行く
  • 社内転職の相談(メインフレームから先端技術系の部署へ)→断念
  • 面接&コーディングテスト

やったこと(勉強面)

転職活動について振り返り

転職活動については情報収集→行動を繰り返すのみという感じですが、 会社を決める際に1個だけこれやんなくて正解だったなと思ったことがあります。

それは「この人と働きたい!」と思って決めることです。

働きたい人がいるに越したことはないのですが、 ベンチャーやWebエンジニア界隈は人の流れが早いため、 いざ転職してみたらその人辞めてた・・・ということは十分ありえます。

カジュアル面談をしてくださった企業のエンジニアの方々はTwitterで定期的に見ていますが、 結構いなくなってる人多いなという印象です。

実際、今の会社で私のカジュアル面談をしてくれたEMは別のスタートアップに行ってしまいましたし、 面接官を担当してくれたリードエンジニアの方はチャレンジを求めて他プロダクトの担当に異動してしまいました。

転職時のプログラミング学習振り返り

当時は必死こいて手当たりしだいにやっていたのですが、 強いて言えば、「技術を学ぶ順序」をもっと意識したほうが良かったと思います。

技術を学ぶ順序は【保存版】Web系エンジニアにジョブチェンジするための学習順序と教材一覧【随時更新】がいいと思います。

プラスして、Developer Roadmapsを見ておくのが良いでしょう。

学習を始めると知らない言葉がたくさん出てくると思うので、これらに照らし合わせ、どこの技術のことを言っているのか把握すると良いと思います。

言語についてはとりあえずRubyをやっていましたが、以下の強みはあるかと思います。

  • 転職のしやすさ
    • RubyRails)を導入している案件(企業)の多さ
      • PHPも多いが、Rubyの方が若干モダン気味
  • 挫折のしにくさ
    • Rubyの直感的な言語仕様
    • Rubyコンパイルエラーとかないので間違っていてもとりあえず実行できる
    • 日本語ドキュメントの豊富さ
    • エントリーポイントとなるRails Tutorialのわかりやすさ

自分の中で戦略があるなら、pythonやGoでもいいかと思います。 また、Rubyで学習をしていても、pythonやGoを扱う企業に入社することは可能です。

これは未経験を雇う余裕がある企業であれば、成長曲線の描き方やマインドセット、カルチャーフィットを重視して採用するためです。

ただサーバーサイド言語としてのRubyの市場価値は低下していると思うので、GoやTypeScriptがメインの技術スタックの会社に行ったほうがキャリア的には有利だったかなという思いはあります。

よくある話題と、それに関する私見

Twitterなど話題になって、当時「実際どうなん?」と気になってた点について見えてきた部分、今思う部分について、書いていこうと思います。

未経験がオファーされる年収はどのくらいか?

何十社もの企業からオファーを提示して頂いたわけではないのですが、「20代半ば・未経験」が提示してもらえる金額は、肌感として「400万もらえれば良い方」ぐらいかなと思います。

会社の資本力にもよるところがあり、私が転職した会社はそれなりの規模、かつ前職年収を結構考慮する会社だったため、 現状維持の年収で転職できました。もっと資本の少ない会社に転職していたらダウンしていたと思います。

スクールを使うのはダメなのか?

たびたびエンジニア界隈ではスクールに関する論争が起こります。

私はスクールという選択肢は全く頭になかったのですが、通うのは全然いいと思います。 実際自分の同僚にスクール卒の人がいるのですが、皆さん優秀です。

通うことによって一部の思想が強いエンジニアに毛嫌いされ、選考で問答無用に落とされる可能性があるのかな?と思いますが、言わなければいいだけですし、気にしなくていいと思います。

ただ、良質な教材が欲しければ、書籍を始め、udemy、progate、ドットインストール、youtubeを探せば良いです。 メンターが欲しければ、mentaやオンラインサロンなどを利用すれば良いです。刺激が欲しければ、Twitterでそれっぽいハッシュタグを検索して、爆速で成長している人を見つければ良いです。

価値を感じる点があるとすれば、チーム開発はなかなかできないと思うので、スクールでその経験ができる点については貴重かと思います。(ただし、Gitをつかわないとあまり意味はないかと思います。)

SIerでの経験は役に立たないのか?

SIerでの経験は「コンビニのバイト」程度に考えておくのが賢明です。という動画を見て思ったことです。(この方の信者ではないです)

この動画については以下の趣旨で、SIerでの経験を「コンビニのバイト」程度に考えようね。としています。

  • SIerでの経験を活かそうとし過ぎている

JVM系言語の経験を活かして転職しようとしても、結局環境があまり変わらずコスパが悪くなる可能性が高いので、モダンな技術を学んで転職したほうが良い。

→ 不確定要素が強いので時間を無駄にする可能性が高い。

そうですねって感じです。

web系企業でJVM系言語が選ばれる場合は、OSSを使って大規模な業務システムの開発してきた経験のあるベテランエンジニアが集まって、堅牢で高品質、高可用性が求められるプロダクト(マイクロサービス)を作りたいケースなどが考えられるので、未経験レベルの人はお呼びではない場合が多いんじゃないかなーと思います。

社内で別の案件に参画して〜、は実際に自分がダメでした笑

ただ、自分はメインフレーム担当のCOBOLerでしたが、SIerで習得して現在でも役立っているスキルとしては、以下のようなものがあるので、「コンビニのバイト」よりは役立つかなという所感です。

  • 人月など工数の概念を理解している
  • シーケンス図やE-R図などの設計成果物が読める
  • PMBOKなどをベースにプロジェクトマネジメントに関するコントロールができる

また、今の30代後半〜40代のCTOやマネジメントクラスの、 採用に対して裁量権を持っているエンジニアは大抵SIerを経由して来ています。

そういう人たちは「SIer出身だったら最低限ここはわかるだろう」みたいな期待をしてくれることもあります。 (これ自体が結構バイアスかかってる意見ですが)

エンジニアに転職してから最初の3ヶ月は辛い?

未経験からハイレベルな会社にエンジニアとして入社すると最初の3ヶ月は心理的負担は避けられない件について

【仕事辛い】未経験エンジニアが採用された入社3ヶ月後の仕事事情と対処法

など、エンジニアに転職してからの最初の3か月はしんどい説があるかと思います。

確かに、入社したらすぐコード書けるはずもなく、以下のような難所が待っています。

  • 環境構築
  • 担当プロダクトの業務要件、機能の理解
  • プロダクションコードの仕様理解
  • 使用ライブラリの把握
  • マイクロサービスの関連性をはじめとした、全体アーキテクチャの把握
  • GitフローやGitHubフローに則った開発
  • DB、テーブル構造の理解
  • SQLでのデータ抽出
  • SwaggerなどAPIドキュメントを読んでやり取りされるデータ、リソースの理解

自分は幸いにも未経験が多い部署でオンボーディング資料が充実していた&周りに恵まれたので辛くなかったです。

ただ、多かれ少なかれしんどい部分はあるかと思いますので、ストレスを下げるTipsを記載してみます。

ストレスを下げる方法

その1. エンジニアの仕事の流れを理解する

最初はエンジニアの仕事の仕方がわからないと思いますが、細部は違えど、以下のような流れがあるはずです。 これらを抑えておけば大やけどはしないはずです。(これは実際に自社のSlackに書いてあった内容で、すごくいいなと思ったので書きます)

  • 要件把握
    • どんな背景・課題があるか
    • 何を実現する必要があるか
  • 見積もり
    • 期限はいつか
    • どのぐらいかかりそうか
  • 修正箇所把握、修正方針決定
    • この時点で必ず先輩からレビューをもらう
    • 見積もった内容から変更があれば報告する
  • 実装
    • 大幅な手戻りがないようにWIPとして最初にPRを作ってこまめにレビューしてもらう
  • テスト
  • リリース
その2. 質問力を上げる

質問力を上げると「質問の意味がわからない」「質問が下手」などのご指導をされることなく、回答をもらいやすくなります。

esakibelaなどのドキュメンテーションツールがある場合は、そこに質問内容をまとめてから聞くといいでしょう。ラバーダッキングにもなり、話しながら自己解決することを防ぐことができます。

また、やっちゃいけない質問をしないという対策も有用です。アンチパターンとしては以下のようなものがあります。

【エンジニア向け】質問の仕方ワースト5【質問テンプレート付き】

その3. Gitを理解する

やはり初心者にとってGitは大きなつらみポイントかと思います。

もし未経験でWeb系に転職して、有給消化中に何を勉強するか?となったら私はGit(GitHub)と答えるでしょう。

なぜなら、Gitはチーム開発において重要なものであり、 扱いが下手だとチームに迷惑がかかるからです。

現場に入る前にはなにか技術書的なやつは1つぐらいはやっておくべきでしょう。 以下をおすすめします。

www.udemy.com

ただ私の場合ですが、これは勉強も大事ですが、結局慣れが一番でした。

Gitは毎日使うので、いつの間にかできるようになっています。(アドバイスになってない)

tipsとしては、エディタの機能を使うのもオススメです。 自分はdiffはVScodeやRubyMineの機能で確認するほうがわかりやすいので、そちらで確認し、そのままadd→commit→pushまで行います。

一方、ブランチ操作やコミットログの編集などはターミナルがやりやすいので、そっちから行います。

おわりに

転職してよかったか?

良かったです。:waiwai:

もし似たようなキャリアパスで悩んでいる方がいれば、TwitterでDMくれれば相談にのりますよ。(忙しくて見れない可能性もあるけど)

もし最後まで読んでくださった方がいたら、ありがとうございました。 またたまーにブログを書いてこうと思うので、よろしくおねがいします。

よければTwitterフォローしてください。

https://twitter.com/_MoneyForest