2021年 ソフトウェアエンジニアとしてできたことと振り返り

昨年に引き続き、備忘録として今年も振り返りを残そうと思う。前回の記事はこちら。

独立

今年起きた最も大きな変化として、3年お世話になったタイミーを退職しフリーランスとして独立したことがある。2021年の前半はかなりの時間悩んでいた。当時の経緯としてはこちらにまとめた。

現在4社で色々な立場で関わらせてもらっている。独立にあたった目的は何点かあるが、概ね満たすことができ楽しくやれていて、このトピックだけで結構書けそうなので別で記事にしようと思っている。この記事では技術的な取り組みについて記載していく。

触った技術

言語:TypeScript, Ruby, Go
フレームワーク:React, Next.js, Vue, Nuxt.js, Tailwind CSS, Rails
ミドルウェア・インフラ:Docker, AWS, Terraform
CI: GitHub Actions, CircleCI
概念的なもの: GraphQL, ElasticSearch, OpenAPI3

Webフロントエンド

昨年の振り返りで以下のように書いた。

2021年はNext.js + TypeScriptを業務で触る機運があり、自身としても今最も手に入れたい技術だと思っている。

https://note.com/mh4gf/n/n0831d457d2ee

結果的にTypeScriptは今年最も触った言語となった。タイミーでは業務では触ることができなかったのだが、今年の前半は趣味や勉強として素振りを続け、独立に伴い業務として大半の時間を充てることができた。

趣味として書いたコードはこんな感じ。

指定したRSSフィードをnotionのテーブルに同期するツール。GitHub Actionsのcronで動かしている。

これはIssueを解決する動くコードはできていて、forkしたコードを実プロジェクトに導入してはいるのだけど、予期しないデグレを起こしているのでPRとしては出せていない…解決したいなぁ

2020年までの業務はスタートアップがゆえに複雑なバックエンドロジックを書いて解決する課題に取り組むことが圧倒的に多く、UIはBootstrapなどであまり時間をかけずに解決することが多かったため、フロントエンド技術の知識が少ないことにコンプレックスを感じていた。
今は株式会社ビットジャーニーさんのkibelaのチームでリッチテキストエディタの開発を取り組んでいるのだが、業務で「UIやインタラクションとして表現できる形でのユーザー体験の向上」を目的に取り組むことができたのは非常にありがたい経験だった。MDNweb.devを読み込む機会が増え、今身につけたい知識をピンポイントで得られている気がする。
来年も引き続きやっていきたい。

株式会社リゾートワークスさんでもスポットで稼働しており、企画ページのコーディングを一人で担当したのも良い経験だった。Nuxt・Tailwind CSS・Vercelを使ってサクサクコーディングし、lighthouseの点数を上げる過程で多くのことを学んだ。


ReactやVueの環境にフロントエンドエンジニアとして放り込まれたとしても、取り急ぎキャッチアップしてタスクを進められる程度の自信はつき、昨年感じていたWebフロントエンドへのコンプレックスは解消できたかなと思っている。Web技術はまだまだ注力していきたい分野なので、引き続き来年も取り組んでいきたい。wasmやrustにも挑戦してみたい。

Ruby, Rails

今年は意図的に使う割合を減らしたが、今でも愛着があることには変わらない。個人開発のアプリケーションのバックエンドにRails APIモードを採用し、そこで新しい技術の素振りをしている。Rails7やRuby3.0の導入や、rbs・Steepの導入をしてみており、IssueやPRを出せる機会を窺っている。

Go

もう一つ稼働している株式会社アンチパターンさんのengineedのチームでGoでのバックエンドを開発している。Goは素朴な構文なので、ブランクがあってもすぐ読み書きができるのは素晴らしいなと思う。aws-sdk-goと戯れる機会が多かった。

バックエンドについてはRailsとGoどちらも開発チームに入って問題なく稼働できることが分かったので、今やりたいことである「色んな文化の会社で働いてみたい」において迷惑をかけずに済みそうだ。
Rails・Goのどちらかを重点的に取り組むなどは今は特に考えておらず、Webアプリケーションをフルサイクルに担当する前提で、興味のあるドメインや一緒に働いてみたい人などを軸に職を探し、結果的に使うことになった場合に来年は取り組んでいきたいと思っている。

CI

今年はGitHub Actionsをたくさん書いていた。「チーム全体の開発スピードを上げるためのDevOps」は自身にとって興味のあるトピックで、人間がやっている手間をどんどんCIに載せていった。
I18n-taskbundler-audit、FactoryBot.lintなどのlintの拡充、annotateoapi-codegenなどのコード生成ツールのdiffチェック、workflow_dispatchによる任意ブランチのステージング環境デプロイ、schemaspyStoryBookのビルドとホスティングなど。
基本的にはGitHub Actionsを利用するのだが、ビルドアーティファクトのホスティングはGitHub ActionsではできないのでCircleCIを使っている。
この辺りも数が増えてきたので記事としてまとめておきたいところ。

来年について

短期・長期でのキャリアについては常に考えてしまうタチで、この資料にまとめている。

将来的には企業に所属してプロダクトを伸ばしていきたい気持ちがあるが、あと1~2年はフリーランスとして企業活動から一歩線を引きつつ、学びたい技術にどっぷり浸かろうかなと考えている。学びたいことは多いので楽しい。
オープンソース活動をもっと増やしていきたいものの、今やっている「ライブラリの不具合を踏んだら解決を試みる」だけではあまり足りないなと思う…別のアプローチも考えていきたい。

来年もひたすらコードを書いていこうと思っています。頑張ります。
関わったみなさんは本当にお世話になりました。来年も何卒よろしくお願いします。
良いお年を!

この記事が参加している募集

この記事が気に入ったらサポートをしてみませんか?