スペースマーケットにジョインしてからの自分の技術スタックの変化を振り返る #SPACEMARKET
※この記事は スペースマーケットプロダクトチーム Advent Calendar 2019 の
12月25日 の記事です。
メリークリスマス!!
みなさま、令和最初のクリスマスをいかがお過ごしでしょうか?
「令和最初」という謳い文句の力はすごいもので
どんな日でも "スペシャル" になります。
竹内まりやさんの歌でそんな感じの歌がありましたね!
さてさて、改めまして・・・
はじめまして!
スペースマーケットでエンジニアをやっている藤田と申します。
普段はインフラを中心としたプロダクト全体の技術的な課題の改善などの業務を中心に行っています。
本記事ではスペースマーケットに約一年前にジョインしたあるエンジニアが
「スペースマーケットで一年間開発をしていく中で
どのように技術スタックが変化してきたか?」
を振り返りたいと思います。
本記事を通してスペースマーケットの技術スタックやエンジニアの働き方や環境の片鱗をお見せできたら幸いです!
1. スペースマーケットへのジョイン前(~2018/11)
そもそものジョインのきっかけが Wantedly で弊社 Tech Lead の小林 から声をかけてもらったことでした。
その際の Wantedly に記載した自分の技術スキルがこちら↓
弊社で採用している Graphql, Ruby on Rails, Typescript, React といった技術はスキルには入っていません。
(辛うじて Node.js/Javascript, Vue.js といった js の経験が多少あるぐらいで、業務ではほとんど使ったことがなかったです)
一方で資格・認定試験の方はこちら↓
そうです。露骨な AWS 推しです笑
どちらかというとコーディグスキルよりも
クラウドやインフラ、ネットワークといった部分で
value を発揮するエンジニアです。
web 開発はやったことあるのですが
フロントエンド・バックエンドでモダンなフレームワークを使うような「いまどきの web 開発」は未経験でした。
まとめると・・・
「AWS 大好き!インフラ構築とかは任せて!(でも、web のフロントエンドとバックエンドは正直あんまり分かんないかも)」エンジニア
でした
2. ジョイン後すぐ(2018/11 ~ 2018/12)
ジョイン後しばらくは、自分の持ち合わせているスキルを使って
スペースマーケットの CI/CD の課題解決に取り組みました。
当時を振り返ったブログはこちら↓
CI/CD の構築自体は CodePipeline の経験があったので新しいことはなかったのですが、上記の仕組みを Terraform でコード化することに挑戦しました。
上手く作れた仕組みをコード化してテンプレートにする
↓
コード化されたテンプレートを使って安全に横展開
という流れで、Infrastructure As Code のメリットを享受して
CodePipeline をシステム別・環境別に量産しました。
スペースマーケットの開発では日々繰り返し CI/CD を回しながら開発を進めています。つまり、怒涛の CodePipeline 実行が行われているのです。
もはや、「開発者が CodePipeline を回しているのか、CodePipeline に開発者が回されているのか」が分からないほどです。
とにかく
藤田は terraform を使った Infrastructure as Code を習得した!
3. 決済・決済・決済(2019/01 ~ 2019/04)
スペースマーケットに少し慣れ始めた頃
SPACEMARKET EVENT のプロダクトのリニューアル PJ にアサインされ
新規追加になる 決済機能、入金機能の実装を担当することとなりました。
このプロジェクトは自分にとってはかなりチャレンジングなものでした。
・開発対象となるバックエンドのフレームワークが未経験の Ruby on Rails であること
・開発対象となるバックエンドを REST ではなく、未経験の GraphQL で構築することになったこと
・決済 SaaS として採用していた Stripe の仕様を把握しながら、有効活用できる設計にする必要があったこと
これらが重なり、当時は模索しながら何度も手戻りしたため
組織目線では「非効率に開発をしてしまったなぁ」と反省です。
ただ、一方では私個人目線では実際の PJ の中で Ruby on Rails, GraphQL のスキルを習得できたという点で大変重要な PJ でした。
また、こちらの PJ で採用した Stripe に関して
ユーザーグループのカンファレンスに登壇する機会までいただきました。
登壇時の記事はこちら↓
Ruby on Rails も GraphQL もまだまだ「使いこなせている」というレベルではないと思いますが、ここは思い切って
藤田は Ruby on Rails を使ったバックエンド開発 を習得した!
藤田は GraphQL を使った API 開発 を習得した!
藤田は Stripe の Connect Account の実装 を習得した!
4. 検索と Typescript と SEO と(2019/05 ~ 2019/06)
まだ入社半年経っていません笑
もう十分濃い経験をさせていただいています。
スペースマーケットの開発の醍醐味というか、スタートアップの開発の醍醐味というか・・・
常にチャレンジングで達成感のある課題や試練が待ち受けている環境は成長にはもってこいですね!
さてさて、次はスペースマーケットの検索と SEO にまつわる大規模なリニューアルの開発メンバーにアサインされました。
検索系のシステムが Typescript で実装されていたので
またもや(ほぼ)未経験の言語への挑戦です。
ただ、C# のような静的型付け言語の経験のおかげか、Typescript はあまり戸惑わずに楽しみながら案件を進めることができました!
(最近でも一番楽しいのは Typescript 書いてる時かもしれません)
また、この PJ ではメインテーマである SEO に対する理解が求められました。
はっきりとした正解のない世界で仮説を立てながら
SEO 向上のための設計や実装を検討していくのが、とても難しくチャレンジングでした。
僅かばかりではありますが「SEO のなんたるや」を理解できた気がします。
つまり
藤田は Typescript を使ったバックエンド開発 を習得した!
藤田は SEO へのエンジニアリング的アプローチ を(ちょっと)習得した!
5. いろいろやった夏(2019/07~2019/09)
この時期は上記までの大規模案件とは少し性質の違う案件をやっていました。
また、チーム体制も「スクラム開発」を基本としたチームとなり
・デイリースクラム
・スプリントゴール
・振り返り
などのアジャイル的なプラクティスにチームで取り組み始めました。
チームメンバーの特性やそれぞれが抱えている課題感などを振り返り、
チームに一番フィットした形にスクラムを作っていく過程がとてもクリエイティブで楽しかったです。
案件もスプリント単位で小規模な案件が多くなり
スペースマーケットの技術スタックに慣れてきたこともあり
技術スキルに関してもそんなに大きな変化は訪れませんでした。
とはいえ、小規模ならではの挑戦もありました。
(記事のボリュームも大きくなってきたので箇条書きで・・・)
・フロントエンドの小規模な改修で React・Redux の挑戦
・SEO の続きで sitemap 生成ジョブのチューニング
・社内のワーキンググループ活動の一環で swift で iOS アプリ開発
つまりつまり
藤田は React・Redux を使ったフロントエンド開発 を(ちょっと)習得した!
藤田は swift を使った iOS アプリ開発 を(それなりに)習得した!
6. やっぱりクラウド・インフラ屋(2019/10~2019/12)
紆余曲折ありましたが
現在はどちらかというとクラウドやインフラといった「技術基盤」の課題解決を行うチームに所属しています。
技術基盤の課題・・・
最近は専ら「マイクロサービス」ですね。
私と同じチームの西尾が弊社のマイクロサービスへの取り組みに関する記事を書いています。
かなり濃厚な記事となっていますので
是非気になる方はチェックしてみてください。
一方、私は「適切なクラウドリソースの管理」「マルチクラウド」といった課題に取り組んでいます。
・AWS アカウント内にある不要なリソースの整理
・AWS アカウントの分離
といった AWS という1つのクラウドサービス上で完結するものから
AWS・GCP のマルチクラウドでのプロダクト稼働のためのインフラ構築などを行なっています。
とはいえ、こちらは全部現在取り組み中のものです。
GCP という新たなクラウドベンダーのサービスや仕組みを理解して
現在稼働中のプロダクトを実現させる必要があります。
クラウド・インフラといった慣れ親しんだ分野で
また新しいチャレンジが待っていました。
つまり、来年には
藤田は GCP を使ったバックエンドインフラ構築 を習得した!
藤田は GCP を使ったフロントエンドインフラ構築 を習得した!
と言えるようになるわけですね!(予定)
7. さいごに
2018/11 の入社から現在に至るまでの私のスペースマーケットでの開発の経験とそれによるスキルセットの変化についてご紹介しました。
来年は「AWS ソリューションアーキテクトプロフェッショナル合格者が GCP Professional Cloud Architect に合格した話」みたいな記事が書けると良いなと思います。
その際はスペースマーケットのエンジニアのマガジンに記事を投稿しますので是非ご一読いただければと思います!
エンジニアのマガジンはこちら↓
他にもデザイナーのマガジン、マーケターのマガジンもありますので、是非チェックしてみてください!
それでは少し気が早いですが、みなさま良いお年を!
この記事が気に入ったらサポートをしてみませんか?