ただのバックエンドエンジニアからDevOpsエンジニアになるまで

こんにちは初めまして、株式会社ノハナでバックエンドエンジニアとして働いてる野村と申します。githubではjunpayment, twitterではjunPAYとして活動しています。

ちょっと前まではRuby,PHP,Perl,JavaScriptといったLL言語を書くことが多かったんですが、最近ではGo,TS+React+k8s,CloudRun,GAEなどなど静的型付け言語でBFFな環境を組む仕事を行うことが多くなりました。

Offersは副業先の企業を探す媒体として活用させていただいてます。

表題の内容ですが、僕はもともとバックエンドアプリケーションをガリガリ書いてしかおらず、クラウドインフラの知識や技術はほとんど身につけていませんでした。ところが転職を機にそれらを曲がりなりにも習得していきDevOpsエンジニアとなった経緯をここに書きます。

Offers Q&A」は、プロダクト開発の知見が集まるQ&Aプラットフォームです。「副業は何から始めれば良い?」「本業と副業の割合をどうやってマネジメントしてる?」など、仕事に関することやスキル、あなたのキャリアの悩みを気軽に相談・回答してみましょう!

「Offers Q&A」でさっそく質問・回答してみる!

元々どんなキャリアを積んできたのか

ソーシャルゲーム業界のバックエンドエンジニアがキャリアの始まりでした。

アプリケーションレベルでの要件定義〜設計〜実装〜テスト〜運用まではまるっと担当していたのですが、当時勤めていた会社はインフラチームと開発チームの分業が進んでいたことがあり、インフラまで手を出すことはありませんでした。

書いたコードを既に用意されたサーバに撒く」までが仕事で、せいぜいcapistranoの設定をググりながら書く程度で、ざっくり下記のようなエンジニアでした。

  • アプリケーションは書ける
  • Linuxオペレーションはできる
  • インフラ構築する経験,知識が無い

転職を機にいろんなことをやらなければならなくなった

そこから現在勤めているノハナに転職しました。

中小あるあるですが、エンジニア組織自体が分業できるほど大きくは無い事情もあって、そこでのバックエンドエンジニアの仕事は「サーバーっぽいこと全部」という感じでした。

歴史的経緯でノハナはいろんな言語(Ruby,Perl,Node.js,Go etc..)を使っていたり、AWS,GCPのマルチクラウド構成だったりします。

物理フォトブックをアプリ上で購入してもらって届けるというサービスなので、システムだけで完結するわけではなく印刷工場との連携やイレギュラーケースを含めると複雑な状態遷移になっており、ビジネスロジックの情報量もなかなかのものです。

入社時のスキルとのギャップ

前述の通り、前職ではバックエンドアプリケーションしか書いてなかったので、GCP,AWSの知識がほとんどありませんでした。学習するにしてもGCP,AWSは色んなリソースが存在してるので、どれから手をつけていいのか当初は全くわかりませんでした。

サービスのアーキテクチャの説明を受けたところで最初の方は何から覚えていけばいいのかサッパリでした。

このギャップを少しでも早く埋めるために、GCP チュートリアル 初心者などで検索して片っ端からチュートリアルをこなしていきました。その時はCouceraUdemyの存在を知らず、ひたすら公式チュートリアルをやっていた記憶があります。

当時知っていたら間違いなくそれらのサブスクをやっていたと思います。

皆さんご存知だとは思うんですが、GCP,AWSともに初期クレジットや無料枠があるので、学習にお金がかかることはありませんでした。

優先して学習したリソース

その当時僕が優先して覚えたのは下記のリソースです。

  • GCP
    • IAM
    • GCE
    • GKE
    • GAE(SE,FE), CloufFunction
    • LoadBalancer
    • GCS
  • AWS
    • IAM
    • EC2
    • ElasticBeanstalk
    • S3
    • CloudFront

最低限上記リソースをデプロイできるようになれば、なんらかのwebサービスを全世界に向けてリリースすることが(原理的には)できるようになります。(クラウドのオペレーションはpermissionが無いと何もすることができないので、IAMを初期段階で取り組んだのは良かったと思います。)

土日、妻に「午前中は僕が子供を見るから午後は勉強させてくれ」と約束をして、PCを持ち込める図書館に篭って学習していました。その甲斐もあってか職場で「なんで未経験だったのにそこまでわかるんですか?」って褒めてもらいました。「いや〜そんなことないっすよ〜」ととぼけてた記憶があります。

プライベートの時間を学習に充てることは賛否両論あると思いますが、スキルのギャップがあるなら仕事以外でもキャッチアップに勤しむべきかなあと思います。

最初に任された大きな仕事

ある程度仕事に慣れてきた頃に任された大きな仕事がAWS環境からGCP環境へのサービス移行です。

これはAWS ElasticBeanstalkにある稼働中のサービスをGKEにリアーキテクチャするというものです。

詳細についてはブログを見ていただきたいのですが、会社でもKubernetesを導入するのは初で、GKE自体もプレビュー版の機能があったりと途上段階だったこともあり、いろんな試行錯誤をしながら作業を進めました。

当時CTOやGoogle SupportやGCPの開発支援の方々に聞きまくりながら協力してもらいながら進めていき、安定稼働まで持っていくことができました。こういった大きなタスクだけでなく、小さな課題を見つけては片手間で少しずつ解決していくことを継続しました。

そういった業績を認めてもらい社内表彰もしてもらうなど、少しずつ社内的な信頼も得ていけたと思います。現在では、会社の人事的な変化もありテックリードという立場をいただくことになりました。

システムの課題が見えてくるようになった

社内での経験+技術がともなってくると今度はサービスのシステム的な課題が見えてくるようになってきました。

その一方で、ちょっと前までは課題はプログラムで解決するという思考だったんですが、手数が増えることで、開発手法の標準化や教育など直接技術とは関係ない方法も織り交ぜて解決策を考えるなど、俯瞰した視点でのアプローチが可能になったと思います。

自分自身の課題も見えてきた

割と場当たり的に必要な技術だけつまみ食いしてきたので、単純なwebサービスを作るのに必要なクラウドのリソース以外(機械学習系,ビッグデータ系など)も含めて体系的にわかってるかというとそうでもないです。

技術導入のスピードや選定根拠の説得力を考えると、やはり体系的な知識は経験よりも価値があると思います。それを課題に感じ、最近はGoogle Platform Cloud Architectureを取るなど資格試験を通じて体系的に学ぶということにも取り組んでいます。

まとめ

課外活動として技術をキャッチアップしていくことは、社内外での市場価値を上げる点で武器になると思います。

スキルが身につくと見えてくるものが変わってきます。場当たり的なキャッチアップでは限界があるので体系的な知識には価値があります。月並みな意見ではあるんですが、僕と同じようなパターンの方の助けになればと思います。

Offers Q&A」は、プロダクト開発の知見が集まるQ&Aプラットフォームです。

「副業は何から始めれば良い?」「本業と副業の割合をどうやってマネジメントしてる?」など、仕事に関することやスキル、あなたのキャリアの悩みを気軽に相談・回答してみましょう!



この記事をシェア

関連記事


副業・フリーランス

プログラミング

インタビュー

人材のミスマッチは「トライアル採用」で防ぐ!エンジニア組織こそ副業人材を活用するべき理由とは【対談記事】

依然、採用倍率が高い状態の続くエンジニア市場。“超”売り手市場において、採用活動に課題を抱えている企業が増える中、シンプルフォーム株式会社では優秀な人材を採用するために「トライアル採用(副業転職...

Offers MGRで開発組織の偏りを数値化!タスク管理やアサイン方法などの課題が明確になりました。

社会課題解決に取り組む企業と学生をつなぐプラットフォーム「エシカル就活」を運営するアレスグッド。2020年に設立された同社のプロダクトは、気候変動や廃棄物問題、ジェンダー不平等、貧困格差などの注...

SREが副業から正社員へ!今後はOffersMGRで開発組織のパフォーマンスを改善していきたい。

「日本発」の分析基盤向けデータ統合自動化サービス「trocco®(トロッコ)」を展開する株式会社primeNumber。大手企業・メガベンチャーをはじめとした各社から多くの引き合いがあり、導入社...

副業転職でAndroidアプリエンジニアの採用に成功。わずか1ヶ月で相互理解を深められた背景とは

500万ダウンロードを突破した英単語アプリ「mikan」を運営する株式会社mikanでは、さらなるグロースに向けてアプリ開発エンジニアをはじめとした採用に注力している。そんな同社では正社員化の前...

デザイン

お金

採用・組織