みんな大好き自社開発企業で微経験者が2年勤務して退職するまでのよもやま話

エンジニア業務体験記

こんにちは、ご無沙汰しています。ktgです。

実に1年半ぶりの投稿です。

2016年〜2018年頃はかなり頑張ってこのブログで記事を書いてましたが、正社員のエンジニアになって本格に働き出してからは完全に放置したままでした。まぁPVも最盛期に比べて一時期の1/3ぐらい? (日当たり160程度)になりましたし、エンジニアにジョブチェンジしてからは勉強、勉強で優先度が最低レベルになってしまったので致し方ないですが。。

技術記事を書こう書こう思ってても全然書いてなかったです。書く気はあります! ネタもたくさんストックができました! 多分勉強や業務知識のキャッチアップで忙しくて手が回らないんだという言い訳です。書くとしたらZennかなぁ。

このブログを今後頻繁に更新する気は今の所全くありません。時間があるなら勉強したい(しないと緩やかな死が待っている..)

コロナもある程度傾向と対策が見えてきて、そろそろもくもく会・勉強会等に参加して外部交流しようと思ったのが昨年の10月くらいでしょうか。

もくもく会で会った人の中で、異業種からエンジニアへのジョブチェンジを考えて取り組んでる方々ともお話する機会がありまして。僕の時に比べて明らかに難易度も転職前の方々のレベルも上がっていると感じています。

久々にブログを書いてみたい&どうせなら近況報告ということで、これまでどのような状況で生存してきたかを綴りつつ。くどいですが、これからエンジニアを目指される方に主張したい事をまとめました。

何をしていたか?

いわゆるSaas型のWebシステム 機能開発を約1年、その後にクラウドのインフラ構築・運用業務を1年ほどやっていました。

Web開発

機能開発については以下の記事の内容とほぼ同等です。

フロント/バックエンドを両方書いてSPAを仕様通りに丸っと作っていく感じですね。

トピックとして仕様が明確になっていない機能があり、自分で考えてユーザー目線で実装する。そんな期間が数ヶ月ありました。すごく楽しかったです!

肝心の実装する能力が大した事なく、納期も簡単でいいから定義してほしいと言われてなんとなく出した納期がMAXとなってしまい、、

ダイレクトに実装方法が解説されている記事もなく、PHPは社内で自分しか書けないので質問できる人もおらず。。

つぎはぎで調べた実装方法を繋げて、ひたすらトライアンドエラーを繰り返しながら正月もガッツリ稼働して無事乗り越えました・・

インフラ/SRE ほんの少々情シス

機能開発がひと段落したのが2021年1月頃。このあたりからインフラエンジニアへのコンバートがスタートします。インフラエンジニアは専任の方1人しかいない状態でした。(2020年末に1名採用されたが、色々な理由があり別のポジションへ転向→退職となった)

インフラ担当の業務量はどんどん肥大化していく一方ですが、1年近くインフラのチームリーダー一人体制! このまま続けるのは明らかに無謀です。そこで僕に白羽の矢が立ってインフラエンジニアへチェンジすることに。大体2021年2月頃から業務がスタートしました。

会社では、

  • AWS
  • Kubernetes (EKS)
  • Terraform (IaC)

をガッツリ使っていました。社内のインフラ環境がどのくらいのレベル感かまでは分からないですが、ArgoCDでGitOpsを実現させたり、Terraform Cloudを使ってRemote Stateにてplan→apply結果を共有など 。今振り返ってもかなり先進的で良い感じではないかと思います。

pipeline.yamlファイル等を用いたCI/CDのPipeline作成・修正、pod用のDeployment.yamlファイル作成、AWS SSOの権限セット作成、Veleroを用いたBlue/Green DeploymentのEKSアップデート対応、Sealed Secretを用いたSecretの管理、IAM Policy、IAM Role等IAM周りのTerraformによる権限変更対応、Well-architectedに則ったセキュリティー改善、障害対応(DataDogからPodの死活監視→対応してRolling Updateで復旧させたり、AWSのリソースを操作したり)。

大雑把な経験範囲はこんな感じです。(残念ながらテキパキできるレベルでは全然なく、リーダーの方のフォローの元必死に覚えてなんとかといった所です)

はっきり言って開発経験が1年程度あるとはいえ、インフラ対応の初手でマネコン等のGUIツールを触る前にEKS × Terraformでゴリゴリはちょっと飛び級しすぎです..

当然インフラ全般の知識は入門書を軽く齧った程度のレベル。訳わからないことばかり。。そもそもインフラの基礎技術に関する理解が浅すぎて、どうしてそうなるのかという理解が足りなすぎてました。なんとなくの理解でタスクをなんとかこなす日々。

退職する前の2ヶ月間は、並行して情シス対応もしていました。情シスも今までインフラリーダーの方1人で兼任していた体制です。メジャーな取引先と契約できそうになり、当然厳しめのセキュリティー要件が要求され、期限が決まった中で対応が必須となりまして。急遽僕が担当する事になりました。

Intuneを使ったPCの管理導入対応、MS365の活用、Mac Book用にABM(Apple Business Manager)の導入、Jamf等のMDM選定・ベンダーとの取引などは経験できて良かったと思います。

しかしながら、何も分からない中丸投げされてがむしゃらに調べながらの対応はかなりキツかったですが.. (MSの一昔前のような翻訳丸出し公式ドキュメントまじなんとかしろ。。)

良かった事

経験値としては申し分ないほど得られたかと思います。

薄っぺらすぎて個々はかなり低レベルなのですが、フロントエンド/サーバサイドの開発・クラウド、コンテナ技術を用いたインフラ構築・運用業務をそれぞれ経験できたのは歴2年としては濃密なのではないでしょうか。

要件定義書、仕様書も作成しましたし、お客様とも直接やりとりしてみたり、エンジニアとして経験しておきたい事柄は一応一通り触れたのではないかと。

特にインフラ領域のKubernets/Terraformなどの技術経験は希少のようです。

AWSの中の人とも直接やりとりしながら、曲がりなりにもWell-Architectedに則った構築・運用業務を経験できました。

需要に対してエンジニアのリソースが全然足りないようでして、僕のような中年手前で微経験レベルのおっさんにも転職サイトでスカウトメールが毎日のようにくるようになりました。。恐れ多いですね。

働き方としてはスタートアップだけあって合理的です。やるべきタスクをこなしていたらあまり干渉がありませんでしたので、比較的自由に働けていたと思われます。

勤務体制としては2020年はほぼほぼフルリモート、2021年は週1出社+フルリモートでした。リモートのテキストベースなやりとり、オンラインMTGツールを屈指した働き方にも慣れました。

ギリギリまで寝ていられる、遅くまで稼働しても時間が確保しやすい、自宅で荷物の受け取りがすぐできる等、良い点が一杯ありました。

自社開発のスタートアップらしく、1人1人が担当した成果が目に見えて現れる嬉しさがあります。新規で大手企業からの引き合いがきて自社製品が使われる、大々的に顧客の事業がPR TIMESのようなプレスリリースで紹介されて発表されるといった出来事もあり、達成感を感じやすかったです。

悪かった点

超稼働が相次いで、おそらくしばらくは解消される見込みがないでした.. ..

平均して業務としてつけていた分でも50h以上は働いていたと思います。(残業代はちゃんと支給されました)(色々な調整が重ねって月の手取りが40万を超えた事も・・)

休日や、残業をつけていない時間外に自主的に稼働していた分を含めるとさらに増えます。それでも僕は少ない方。アプリ開発の担当者は早朝の3時くらいに業務終了の連絡がslackであったりするほどでした。

というのは、ビジネスサイドは経営者の方のツテや能力が強力で、案件の受注は良い感じに取れます。が、それを捌くエンジニアのリソースは常に足りない。納期もお客様マターなので、そこまで余裕はない。このギャップを埋め合わせる為、超稼働が常態化してしまいます。

早くて21時、

遅いと日が変わるまで、

超追い込まれていると2時3時。

そのような状態がずっと続いていました。

Saas型で個社ごとに要件定義しながらシステムを提供するビジネスモデルであるが故に、自社開発でありながら受託開発に近い形です。顧客から追加開発要望が相次ぐようになり、タイトな納期に間に合わせる為、どうしても超稼働になってしまうという側面がありました。

これは自社開発というよりスタートアップな側面が大きいのですが、一人一人の担当領域が広い分、ほぼ全員平日休む余裕がなかったです。新たに入社した方のオンボーディングも丁寧に行う余裕がない為、さらっとタスクを振られて働きながら慣れるという感じです。丸っと担当任されて自力でなんとかしないといけない面が強く、当然合わない方は数ヶ月で離脱する事が相次ぎました。

自分の上司だった方も、ビジネスサイドの方々と方針で意向が合わず突然の退職されました。自分がみてきた5案件中4案件も遅延が発生していました。プロジェクトの80%も遅延発生・・

最大で2ヶ月以上の遅れが出てしまい、炎上して常にお尻を叩かれる状態の時は皆苦しかったはずです。

また、ボードメンバーの役職者の方の一声で急遽ルールが定められたりします。ちょっと納得のいかない不本意なルールを強いられてしまった場合も。。

定期的な1on1の場ではPM担当の役職者の方が欲しい情報を聞かれ、こちらから一方的に報告して終わりという事ばかり。エンジニアからすれば、作業工数だけ削られてメリットのない1on1が月に3回ほど組まれていたり、課題と評して休日を使わないと到底完成できない社内ツール製造を、チームビルディングの名目で一方的に組まれたり..

これはメリットの裏返しにもなるのですが、リモート中心なのでメンバーとタイムリーなコミュニケーションがしずらく、相手が忙しい時は詰まってしまって困っている時にやや聞きづらかったです。ずっと自宅に引きこもりがちだったので運動不足、集中力の低下、対面コミュニケーションのない寂しさ、自宅環境の飽きがかなり辛かった。

また、対面での思い出らしい思い出があまりないのも個人的には寂しい気がします。なんだかんだ一社目の思い出はすぐ浮かぶので。

退職した流れ

元々僕はスタートアップ企業でずっと働きたいという願望はあまりなく、できれば規模感が大きく、売上も伸びている。言うなればある程度余裕のある企業でじっくり取り組みたいと考えていました。

なので特に不満はなくとも2〜3年ほどは勤めて、そこから自分で会社を選べるようになれたら自分にマッチしてそうな企業様に転職する。そのような流れを、前職に入る前から想定していた形です。

残念ながら悪かった点をみてもらえれば分かる通り不満はそれなりにあり、、2021年末/2022年正月頃は入社して2年近くとなるので、キリよく退職するにはベストなタイミング。

スカウトメール自体は日々たくさん来てました。その中で良さそうな企業様を見つけては調べて、刺さる何かがあればカジュアル面談をしてみる。自分の経験した業務知識が生かせそうな会社様を探して直接応募等してみる。これらの事を少しづつ行いました。中には勉強会などで知り合ってリファラルで誘って頂いた会社様もあります。

インフラという職種上、日中は急ぎ対応依頼のメンションが突然飛んでくる状況ですので、勤務が始まる前の朝か、落ち着いた夕方以降限定で面談・面接を行っています。

有名企業の選考においてはコーディングテストや筆記テストもあり、その対策も行いながら臨みました。コーディングテストは、ブランクがあったのと自分の実力不足もあり、時間内に対応できず自分にガッカリした結果でした(なぜかその選考自体は通過しましたが)

そんなこんなで複数社選考が進み、扱っている技術、カルチャーやサービス内容、一緒に働く方々、オフィス環境が総合的に全て良さそうな会社様と縁があり、内定を頂いて退職という流れとなりました。

チャレンジ的ムーブもしてみまして。EKS × Terraformなどの技術スタックがそのまま使える、割と有名な企業など中心にかなり背伸びして申し込んでみました(Z○Z○とか○カリさんじゃないですよ)。その結果、書類で落選が6割、選考で落選が1割、残りが選考中だったけど志望度の高い企業様から内定を貰えたので辞退という感じです。(歴4~5年以上が要件に入っている企業ばかりでした)

有名企業は個人的に難しいテストや面接時に突っ込んだ厳し目の技術質問が多く、やはりもっと力をつけないと通過できなそうでしたが、振り返ってみると非常に良い経験でした。別に有名だから行きたかったという訳ではなく、ある程度の人数がいて成熟した環境で働いてみたい、超稼働はしばらく懲り懲りなのでホワイト寄りの企業で働いてみたい、というのが主な理由です。

条件面では給与交渉はあまりせず、前職と比べてもほどほどの増加です。まだまだ自分の実力が足りないので、ひとまずは自分の望む環境の会社へ就職する事を最優先、給与は2の次とした形です。それでも前職の時点で未経験に近い状態からのスタート給与は、当時の比較で考えるとまぁまぁ良い方。残業代も付けた分は支給されてたので金額感はなんとなく察せるかと。

ここから活躍して、それに伴って少しづつ成果と連動させて向上する事が大切です。お金は後からついてくるはず。まず給料分以上にどんどん貢献して会社に利益を生み出すことが最重要。

実際に2年働いて感じた事

結論を言うと前回の入社半年の時に書いた記事と方向性は変わってなく、被ってしまう内容です。結局本質は変わらないのかなという気がします。

実力に自信がない人は自社開発のスタートアップは避けた方がいい。優良な受託やSES企業が良い。

これです。メタルスライムを倒した時のような高い経験値がつきそうですが、基本辛い気がします。多分会社次第なので、未経験・微経験の状態でもすごく良い環境の会社様はいくらでもあるとか思いますが、きっと人気なのでそうそう入れない気がします。

何より稼働に無理が少なく、かつ人に分からない所を聞きやすい環境がベストです。僕的には、雰囲気の良い受託会社や優良そうなSES企業の方が微経験時代に働く環境としては良いのではないかと考えます。

(そもそもそういった会社を見つける、見分けるのが難しく、案件ガチャがあることも否めません)

優秀かつ体力・メンタル体制があり、適正もあるようなキラキラした人は、むしろ優良スタートアップを強くオススメします。早くから裁量を持ってハードに楽しく急成長できることでしょう。

未経験者を積極募集している会社は総じてブラック

これも知り合いの経験談からよく聞くお話です。

そもそもフルリモート全盛の体制が多い現状。未経験者が知識・経験の薄い状態でいきなりスタートするのはかなり大変です。ジュニアエンジニアを育てる体制が十分整ってないと、元々の素質・体力・素のビジネス能力がない人は病んで離脱する率が高そうです。(というか離脱する人が本当に多い)

未経験者の採用募集していると言うのは大体ベンチャー企業。なぜか? 未経験者の育成労力を分かっていない、経験者が採れない、人が積極的に応募してくるほど良い条件が出せない、開発チームや技術環境の魅力が乏しいなど、ネガティブな要因が色々考えられます。

ちなみに前職では3年ほど経験があった技術オタク的な腕の立つ方と、スクール卒業の未経験の方が近い時期に入社されて、さほど給料が変わらなそうな感じでした。。それだけエンジニアが軽視されていたという事です。

採用側からしても、未経験者を採用してみて概ね生き残れたらラッキー、ダメだったらしょうがないと切り捨てられる環境だと思っていいと思います。

業務知識は本当にあった方がいい

技術に強くなくても知ってるとかなり有利です。

会社で重宝される事でしょう。自分のポジションを確立できます。

なんなら、エンジニアリングより習得が難しいかも。

時間経過で腐りにくいので本当に価値が高いと個人的に考えます。

技術勝負するなら相当マニアックに拘れるかどうか

あなたは1聞いたら10語れるほど技術好きですか?

もしそうなら、実装メインの技術特化エンジニアとして向いていると僕個人的には考えます。ひたすら扱える技術の深み、広さに重きを置いて良いと考えます。

そうでないなら、週末の勉強なんか絶対したくないのなら、どこかで管理・上流の設計なども経験できないと取り残されかねないかもと感じます。

と言うのも、特段高い技術力は実際それほど必要とされてなくて。名言語でコードを書いて必要機能を実装できて、日々のコミュニケーションや異常時の対応がスムーズなら十分活躍できるケースが多いです。言語の壁もあり、コミュニケーションに難があることもありますが、オフショアのベンダーがかなり安い価格帯で実装等の対応をできてしまいます。

もちろん品質はバラバラで成果物が低品質な場合は目も当てられません。が、場合によっては日本の開発会社に依頼する金額の半額近くになるぐらいコストが抑えられます。(コストを抑えられていようが、オフショアの方々はなるはや依頼の元馬車馬のように働かされてしまいます..) (これはみていて本当に辛いのでなんとかならないのかと..)

実装メインのエンジニアな場合、手を動かす作業者の域を超えてオフショアの方々よりも付加価値を出せないと、わざわざあなたにコーディング頼む必要はないよね? って事態になってしまいかねません。

近年はプログラミングブームで、学生時代からハイレベルでコードを書ける方が次から次へと輩出されている状況。同じ事ができるなら若い方の方が望まれやすい状況が多いでしょう。

この先数年、数十年、そこそこ経験を積めば比較的誰でもできる実装しか任せられない、テックリードやCTOに至れない、ジュニア以上シニア手前のプレイヤーのままずっと生き残れるのか。誰も明言できない気がします。

個人的には、上で書いた1聞いたら10返ってくるマニアックな技術特化エンジニアはずっと需要があるんじゃないかなと思ってます。(業務上のコミュニケーションが問題ない人に限れば)

未経験からエンジニア転職自体はすごくもなんともない

これも常々思っていますが、一念発起して未経験からエンジニア転職した自分スゲー! ウェイ!!な転職ゴール思考はまじで辞めた方がいいです。カッコ悪いです..(個人の感想です)

ちょくちょく週末の勉強会・もくもく会に参加してますが、最近オンライン系で代表が稼げるを謳ったスクール出身者の方がチラホラいらっしゃって、話を聞いてると大体実務1〜2年のジュニアレベルの方が各言語でコーディングしてる程度でイキってる印象で私は苦手。そういう傾向の人が多いというのは、集客の時点でそのような人に刺さる広告・宣伝をしてるからなんですよね。当然人によりますし、中には能力高い方もいらっしゃるとは思いますが、本物風な印象の方は残念ながらほぼほぼ見受けられてないですね。極力関わりたくない..

せいぜい部活で県大会に出た程度のレベルですよね。プロ競技で結果を出したレベルの話では絶対ないですよね? さらっと代替できないシニアレベルではないですよね。それでいて、いかにも大きなすごい事を成し遂げたかのようなSNS(概ねツイッター)の振る舞いは見ていて本当に寒いです(勿論嬉しい事なので喜んでいいのですが、あまりに大袈裟すぎて目に余る)(あくまで個人の感想です)(インフルエンサーや誇大広告スクールやそれを鵜呑みにして影響された残念な人が諸悪の根源)

それよりも、エンジニアになってから何ができるようになって、どんな成果を上げれて、経験歴相応かそれ以上の能力があるかどうかが大切なのではないでしょうか? 小学生とか中学生がプログラミングですごいもの作りましたとかニュースになってる方々の足元にも及びませんよ、未経験から転職程度では。そっち方面で何もアピールできないから、いかにも凄い事かのように振る舞うのだと思いますよ。

あくまで僕の観測範囲の話ですが。SNSでアピールに精を出すような人々よりも、その先の実務でどう活躍するか、しているか、能力を高めるか、追求してトコトン打ち込んでる方々が生き残れている確率も高く、優秀なエンジニアとして頭角を表しているようにみえます。

年収も数年しっかりした経験を積めば、正直転職で100万〜200万アップは現実的に可能ですし、実際に実力者の知人が割と達成しています。

活躍している能力者の人ほど、人から認められたり褒められたり仕事で頼られ求められて忙しいのが当たり前。なのでいちいち自分が凄いとわざわざ発信しないですね、自分の知り合いの凄腕な人達は。逆に恐ろしいくらい謙虚です.. 実際にこれまでの所属でエース級だった方々はここで挙げたようなムーブとは無縁で、自分は全然大した事ないと思われていたり、著名な開発者が比較対象になっているレベル..

いかにも凄そうに見せてる人ほど、技術的な突っ込みを入れると案外大した事なさそうだったりした事案も見掛けました。多分、現実の自分に自信がないからSNSで自分を大きくみせたり承認を求めているのではないかと感じる頃ごろです。(君はどうなんだと言われると能力が高くないお前が言うなと言われても仕方ないので、力をつけてなんとかしたい・・)

まだまだ休日勉強三昧の日々

これは僕のエンジニア適正が大した事なく低能力だからなのですが、、いくらでも覚えるべき事は新たに生まれて必死に学ぶの繰り返しです。

この2年、実務も含めて週に50~70時間は確実にエンジニア関連の取り組みに費やしてきましたし、丸々1日休むという日はほぼほぼなかったです。月300〜400時間稼働する人に比べたら全然ですが、それなりに周りの人よりも時間を費やしたつもりです。しかしそれでも学び足りない感が強いです。

特に基礎の重要性を痛感しています。AWSだk8sだなんだという前に、それらの道具を使う為の基礎能力(ネットワーク、Linuxサーバ構築などなど)が十分確立していないと、ただ道具に詳しいだけで使いこなせず伸び悩んでしまう事になりかねません。

なので、DB、ネットワーク、Linux/サーバ構築あたりは特に重点的に鍛えておくと、インフラに関わらず開発系でも必ず地力になると思っています。(多分以前の記事でも書いてましたが全く意見は変わっていません)

これも超個人的な意見ですが、AWSの資格にばかり傾倒し、ろくに構築経験もないまま資格取得〜冠! というムーブはあまりオススメしません.. 資格取得の過程における学習自体は体系的に学ぶのにうってつけですが、合格がやたら主目的になってしまうと過去問系を回す暗記中心でブレてしまう気がします。

IaC? 何それ美味しいのな感じの方がSAPを持っていると聞いて、ちょっとモヤッとした事があります。(例えばAWSのインフラ構成はIaCによる自動化や再現性、可読性のある管理がセキュリティー的にも推奨されていますので、専門的に取り組むなら習得は必須かと)

SIerのように資格手当が厚かったり、昇給の要件になってるなら合格が目的でも分かりますが。仕事で活躍できる実力のあるエンジニアを目指すなら、自在に作って理屈も分かった上で流暢に操れる方が断然価値あると考えます。

これも自分の知人観測範囲ですが、実務で活躍してる人ほどそこまで資格に拘らず、必要に迫られて最低限とるor高度資格をさらっと少々持っているケースが多いです。

最後に

またしばらく記事を書かないでブログでは浮上せず、実務の学習中心な生活をします。しないと生き残れないそうなので。

そして、いつか曲がりなりにもフルスタック風なオールラウンダーになれることを目指してこのペースのまま頑張ります!

フロントやバックエンドの開発経験が1年近くしかないのは不安ですが、新たな環境では取り組む機会がありそうなのです。開発系のチケット振られたらなるはやでキャッチアップ・対応できるようになりたい次第です。