
2021年の仕事の振り返り
今年もログを残しておく。(カバー画像は左利きのエレンより。)
前回:
# 良い一年だったか?
一年前と比べて格段にスキルアップし、また事業が動き始めた感覚もあり、良い一年だった。
毎年の振り返りの度に、「そろそろWebエンジニアとしての成長は鈍化するだろうか?」と考えたりもするのだが、実際は鈍化せず、むしろ成長できているように思う。去年の自分がとても未熟に感じたり、一昨年の自分とは全くレベルが違うと感じたりと、良い成長ができている。
他の職業だとなかなかこれほど青天井に成長できるイメージは個人的になく、良い職業につけたなと思う。
これを書いててふと思ったが、毎年の良い一年かどうかを測る指標が無意識に「成長したかどうか」になっていた。何歳になっても何かしら成長し続けられたらいいなと思う。
# どんな仕事をしたか
友人とやっているスタートアップが去年末からアクセルを踏むフェイズになったため、その1社に集中してコミットした。
開発メンバーは自分一人で、開発関連の全てのタスク(フロントエンド/サーバーサイド/インフラの開発・運用はもちろん、デザイン、仕様決定なども含む)を一人で行った。時期によっては週7稼働したり、ほぼ正社員のように働いていた。
ちなみにこんなのを作っている。表向きは営業組織向けのSaaS、裏側の技術的な側面から見るとELT+BI+アプリ開発をノーコード・シームレスに達成できる技術基盤を作っている。(興味ある人、お話しましょう!)
ここ数年フリーランスのWebエンジニアとして活動する中で、「普通の」Webサービスを開発するくらいであれば、何も迷うことなく高速にクオリティ高く開発できるようになってきており、それだけスキルが成熟してきた。
しかし今やっている開発については「本当に開発できるんだろうか…?」とこの一年間は毎日のように自信がなくなるくらいの難易度の開発ばかりで、一つ大きな壁を乗り越えたらまた次の壁という様相であり、今まで培ってきたスキルを120%総動員し続ける一年間だった。
仕事の報酬は仕事というか、より大きく難しい壁に立ち向かい続けることで成長できるというかなんというか、今までの集大成かつ更に複雑な開発をこなす力がついた一年という感じだった。
実際ずっと一人でやっているので、本当に成長できてるんだろうかという気持ちもありつつ、外部の某偉い人からは「普通数人で1年で開発するようなことを数ヶ月でやってるね」と言われたり、知り合いに一人で作っている事を言うと驚かれたり(というか引かれたり)、まあまあなものは開発できているとは思う。
以下、もう少し具体的に振り返ってみる。
## サーバーサイドTypeScript、GraphQL、Reactの習熟
もともとはRails+Vue.js+GAEでプロトタイプとなるサービスを作っていたが、本格的にサービス開発を始めるのにあたって、今年はサーバーサイドTypeScript(Apollo Server)+React.js+Renderの技術スタックに完全に移行した。
Rails,Vue.jsともに今でも好きな技術であり、要件次第で今でも使うであろう技術スタックだが、いかんせん複雑なサービスを作るにあたっては型の恩恵がどうしても欲しく、また近年TypeScriptでのWebバックエンド開発の足回りがだいぶ整ってきた印象があり(特にApolloとPrisma)、乗り換えた。
去年末の時点では、ReactもTypeScriptも雰囲気で書けるくらいの習熟度だったが、今年はひたすらコードを書き続けたおかげで、それなりに自信を持って開発できるくらいのスキルになった。
新しい言語、FWを覚えられて良い一年だった。
こちらに使ってる技術を詳しくまとめているので、詳しく知りたい方はどうぞ。
## 設計力がついた
今作っているものがかなり複雑なので、サーバーサイド、フロントエンド、インフラ、どれについても設計で悩むことが多く、力がついた一年だった。
「成長のために大切なのはインプット・アウトプット・レビューの3要素」と常々言っているのだが、この観点でいうと、
インプット:関連サービスやOSSを調査して設計を学ぶ
アウトプット:ひたすらに開発
レビュー:(セルフレビューになってしまうが)運用を回していて、微妙だと感じた点を修正
というサイクルを繰り返したので、かなり成長できたと思う。
このサイクルを良い感じに回せたのは、型の恩恵のおかげで大規模なリファクタリングを気軽にできたためであり、TypeScriptに乗り換えた判断はよかったと思う。
今年一年で大きな機能を2つほど作っているが、ある程度設計が固まったらまずお試しで作ってみて、1ヶ月ほどして事業的にも技術的にも知見が溜まったらほぼ作り直して、そして1年後に同様に作り直して…というような変遷を辿っている。特にスタートアップの開発において、完璧な設計などありえないので、どんどん作って事業を進め、そしてPDCAを回してコードも作り直す、というサイクルを回せてよかった。
## Modern Data Stackのトレンド
開発しているサービスの半分がELT+BI関連の機能なので、今年はこの辺の話題をよくウォッチしていた。以下のブログによくまとまっているので、興味がある人は読んでみるとよい。
簡単にまとめると、単にデータの収集や加工・可視化を行うことはもはや各種マネージドサービスで簡単にできることであり、次の関心はデータガバナンスだとかいった「よりよいデータ基盤」を作ることに向いている。
そしてこの流れの1つとして、dbtのようなELT(≠ETL)のTのレイヤだったり、LookMLのようなセマンティックレイヤだったり、より宣言的でモジュール化された手法を使うという解決がトレンドとなっている。
この流れはフロントエンドにおけるReactの台頭だったり、インフラにおけるIaC/k8sの流れだったりと近しいものを感じている。
# 来年について
社会人になってから(というかそれ以前から)ハードワークし続ける生活を送っているが、それは自分にとって楽しいものの、仕事以外のことに割く時間ももっと増やすべきかとここ数年感じたりしている。
フリーランスになってありがたいことに十分な報酬ももらえているので、週3労働くらいでのんびりと人生を楽しむのもありなんだろう。
しかしまだもう少し、自分の力を出し切れていないという気持ちがあり、それをやりきることが自分が自分らしくいることな気がしており、この気持ちに折り合いがつくまではしばらくひたすら仕事するんだろうなと悟ってきた。

もちろん仕事以外も大事なので、そちらも意識して時間をとるようにしつつ、もうしばらく仕事に打ち込もうと思う。
ひとまず今の会社を大きくできるように頑張ります。We're hiring!
気軽にクリエイターの支援と、記事のオススメができます!