2020-12-26

振り返り 2020 年

2020 年を振り返る。

2020 年は自分の人生の中でも全く予想のつかない年であったと同時に、停滞感を感ずる年でもあった。以下ダイジェスト。

  • 一人でサブシステム
  • COVID-19 流行からのフルリモートワーク
  • チームメンバのクビ
  • フラストレーションの多い下半期

一人でサブシステム

ほとんど偶然の流れでサーバーレスな ETL を一人で作る機会を得た。

すぐに作って初夏までにリリース的な感じのやつでやった。サービスの見込みが「ほんまにそんなにユーザとれんのか?おお?」的なきな臭い感じだったので極力維持費をかけないようにサーバーレスに。そしたら案の定、年末までほとんど利用されることなかったんでこの選択は我ながら良いとおもた。サブシステム単体の原価が 1 日 40 円程度とめちゃくちゃ安い、ものすごく利益率がいいので、使ってもらえれば儲かる。 結果的に Go on AWS Step Functions & AWS Lambda を組み合わせて作った。その際に Aurora Serverless やら Cognito やら使ったことないサービスを利用でけたこと、IaC 大前提でイチから権限の設計だったりできたのはかなりいい経験になったなーとおもとる。 というか今年のハイライトはここちゃうか...という気もしなくない。裁量という面においては。

もちろんヘマこいたところもいっぱいあるんやけど、それすら次に活かそうという気持ちになれるやつらでヒジョーにポジティブに考えれていた時期。

  • 運用用途で 1 日のデータ量の集計を Aurora Serverless に保持するようにしたが、これは結果的に要らなかった
    • DynamoDB にエントリを作っといて、後でからスクリプトなり最近増えた SQL のサポートで良かったんじゃないか、的な。そうすれば維持費ももっと抑えれた
  • Cognito むずすぎ
    • S3 へのアクセス制御を Cognito で行った。結果的にバケツへアクセスする一時クリデンシャルを作成する形にしたが、これはどうも OAuth2 仕様だと機器間認証を使うべきだったらしい。わからん
    • こんなの?Machine-to-machine authentication with Amazon Cognito | FAUN
    • あと秒間の initiate auth 上限がしょぼくて同時ログイン多いと使えない。AWS SA の方にも Auth0 にしとけって言われてしまう始末。とはいえ料金的にこっちのが安くて選んだ
  • Go の熟れてなかった感
    • 複数エンドポイント作るのにオレオレディレクトリ構造で作ったのでややこしい形に
    • JSON&ファイルストリーム操作がいまいち
      • aws-go-sdk で S3 から gzip された JSON 取り込むのにパイプを使ってうまく空間計算量を減らしたが、まだちょっとイケてない部分が残ってて極端にファイルサイズが大きいと死にうる。これをもっとうまくできたろうと思う
      • JSON のパースエラーを親切にする方法はこわかったので、次の経験で活かした
    • channel や独自の型は相性が良かったのか難なく。後のデスマーチプロジェクトでもそれが活きた
  • Aurora Serverless Data API の使いこなし
    • 接続時に最大 1 分くらい応答がないけど Data API ではタイムアウト時間を延ばせず(標準 50 秒くらい)、そのエラーハンドリングが下手くそだった。結果的にリリース後相当経ってからの対応になったが error 型でリトライ可能エラーとか切り分けた

COVID-19 流行からのフルリモートワーク

これは IT 系ならどこもそうだろうと思うが、ついにフルリモートワークになった。もともと子守で週に数回在宅勤務時間を設けていたが、フルリモートとなるとその労働体験は全く異なる。

通勤時間 2 時間がまるっとなくなった分かなり楽になったが、逆に駆けつけ 3 杯だったり、思考しながら歩いたりといった息抜きのタイミングがなくなった。家庭へのサポートの負担がより増えたことで読書や自習の時間も確保しにくく、それこそ自身の学びのスタイルを再構築する程度には追い詰められたのかなと思う。もちろん自走できるエンジニアにとしては労働体験は向上したのだけど。

半年以上フルリモートワークなのだけど、この状況に合わせた最良の方法は、まだ模索中。

少しずつ習慣化していたワークアウトは、こういった状況だと有無の効果がわかりやすかった(メンタル面の安定において)。でも引っ越し後機会を取れていなくバランスを崩している。

チームメンバのクビ

これは自身の労働体験では一番悪い出来事だった。1 年半ほどずっと同じチームメンバとして働いてきて、コンテキストの共有もできていたし、ようやくチーム開発が回りだすなという状況だったが、いなくなってしまった。優秀な方で、鼓を打てば響くがごとく(個人的には)よいチームワークやと感じていただけに非常に残念だったし、前職チームリーダ時代にメンバのおじさまエンジニアの年俸 150 万をふっとばしてしまった経験と同列くらいで、自分の至らなさを悔やみ続ける事件になった。 チーム開発がしたかったけど、これは当面できなくなってしまった。これが結局フラストレーションを溜め始める 1 要素になったのは間違いない。 その後を埋める形で?優秀なメンバを得れたのだけど、自律性といった意味では前任者が天才的だったのと、1 年半の間の積み重ねが灰燼に帰したこともあって傷心チックな状態は今も続いている。

その中で唯一救われたのは、件の方がエンジニアとしてのキャリアを見定めて次の活動をすでに始めている点。これだけは本当に良かった。幸多からんことを。

フラストレーションの多い下半期

チーム開発 ≒ わたしのなかではコラボレーションができない仕事というのは、自分の出力以上のものが期待できないのと同時に学びや気づきも自発的なもの以外にないという面白くない状態でであって、これが半年間の間続いたことで相当に気分が参ってしまった。この下半期の間続いていたデスマーチ的な案件も、参加メンバは多いのに情報連携の齟齬がこれでもかというくらいにあって、まあ色々疲れてしまった。件の方もこのプロジェクトに参加中にいなくなったにもかかわらず、開発者は補充されなかったのでけっきょくワイ一人で開発してたよーな気分。 この間にでかい会社のリクルータが面談の話を持ってきたので挑んでみたが、これまた全然だめだった。知識もメンタルも準備大事。

苛々する時期だったが、年の瀬には曲りなりにもアプリケーションは本番稼働し、面談で感じた自分の至らなさから改めて自身のエッセンシャルな選択肢を掘り起こす事ができたので、プラスマイナス 0 くらいの経験になったのではないか?とは思っている。 今振り返ると、ETL の失敗経験からこのデスマーチに取り組んだ改善点は相当数あって、そういった進歩を楽しめていなかった点でもわたし自身気分が落ちてたんやろなーというのが明らかや。

このデスマーチの裏では別の Fury Road が残ってて、年末年始も働くのだ。でも全然気持ちのしんどさが違う。

※デスマーチゝいうてるけど肉体的な労働負荷は全然大したことない。偏に 8 時間と少ししか働けない自身の限られた時間内でやるべきでないしょうもないことに時間を浪費してしまっていたり、そういったところがデスなマーチなのだ。アドレナリンジャンキーになれていたらもっと追い込んで働けたろうに。リモートワークではそこまで中毒できないんちゃうかな?

2020 年目標と成果

年初に以下の目標を羅列した。その結果は次の通り。惨憺たる結果。まず目標が多い、多すぎるわ。

  1. 家庭
    • ⭕️ 引越
      • 時期はかなりずれ込んだが完了
    • 🔺 親族
      • 半分完了的な形。およそ 5 年後に延期
  2. 仕事
    • ⭕️ リモートワーク
      • 意図せずフルリモート化した
    • 🔺 昇給
      • 源泉がまだだが年間 40~50 万 UP 程度で期待のとおりでなかった
    • ⭕️ リード的な活動
      • できていたが、件のメンバ離脱でちょっと空回り気味
  3. 自分のこと
    • ❌ 積ん読の消化
      • 無理すぎた
    • 🔺 OSS へのコントリビューション
      • おしい
        • ドキュメント修正やフォーマットだけの PR で 3 回だけ
        • Terminal Icons の Issue にコメントして助けたのが 1 回
    • ❌ 自作ツールの更新
      • ほぼなしか。TODO はあるけど
    • ❌ 音楽活動
      • これも全然できず。というか COVID-19 で無理んなった
      • 下期は忙しくて死ぬほどギターが下手くそになった
    • このブログを毎月更新する
      • 途中から落とした...

自分のことが後回しになるのは年を経るとよくあることやと思うけど、ちょっとひどい。 今年溜め込んだ知識というか、使い回せるスクリプトもあるので、年末年始の落ち着いた時期にそういう宝物を Gist にガンガン登録していこう。

おわり。