B-Teck!

お仕事からゲームまで幅広く

【雑記】有給休暇の消化が終わろうとしている

7月から新しい職場で働き始めるので、そろそろ休暇の終わりが見えてきた。
残りの期間で仕事に向けて諸々整えていくことになるので、6/11から始まったこの15日間ほどの休暇を振り返っておこうと思う。

の前に。
前回の記事から過去の記事に飛んでほしいものリストから本を投げてくれた人へ
なかなか本が積み上がってるので少し先になるかもしれないですが、大切に読ませていただきます。ありがとうございます!

模様替え

最初の一週間のメインタスクはほぼこれだった。
現職でも若干のリモートワークはあったけど、次の職場は当面フルリモートワークなので、だましだましやってた部屋の環境を整える必要があった。
家具の配置も配線もすべて変更して、自室にエアコンを設置。
昨年の3月以来の大きな模様替えだったけど、だいぶ個人作業もしやすくなって満足。
すぐに使うMacの配線を優先した結果Win機の配線が出来てないので休み中に終わらせたい。
f:id:beatdjam:20210626171425p:plain

休養

最後の仕事が結構バタバタで無理していたので、たっぷり休養を入れた。
空き時間はただただ横になって眠るかぼんやりするかしか出来なくて、回復力の衰えを感じた。
仕事のことを思い出さなくなり、身体が動かせるようになってくるまで10日くらいかかってしまい、休暇の殆どの期間はこういう状態で過ごしてた。
タスクがある状態だと自分の健康状態や疲労を度外視してしまって、ついボロボロになるまでやってしまいがちなんだけど、そう無理ができる歳でもないなあと思ってしまった。

勉強

休暇に入る前は、休みの間も毎日勉強して圧倒的成長!とか思ってたけど、前述の通りひたすら横たわっていたので具体的な成果はなにもない。
毎日コミットは続けているんだけど、普通に動けなくてStreakが切れたのが悲しい。また積んでいきましょう。
とりあえず休み中に実践Scala入門は読破したい。
f:id:beatdjam:20210626171338p:plain

そんな感じで、休暇中はひたすらポッドキャストを聴いて過ごしてた。
【雑記】知識を得ることと世界への認知の解像度を上げること - B-Teck! で紹介したコテンラジオやだぶるばいせっぷすとは別に、教養系のポッドキャストを最近いくつか聴き始めたので貼っておく。

ポッドキャスト

  • そんない美術の時間 | そんないプロジェクト
    毎回1人のアーティストにフォーカスして、30分程度でその人生と代表作を紹介する番組。
    美術史については全然無知なので、人から歴史を知るきっかけになっていて楽しい。

  • ウェルビーイングってなんだろう? - 松本紹圭 × 藤代健介 | ポッドキャストランキング
    知人の紹介で聴き始めたポッドキャスト。
    まだ聴き始めたばかりなのでなんとも言えないけど、社会課題をどう考えるか・どう見るかの観点が面白いな〜と思いながら聴いてる。
    後述する超相対性理論が合う人はこっちも割と好きかもしれない。

  • 超相対性理論 - 超相対性理論 | ポッドキャストランキング
    コテンの深井さんがやっているので聴き始めた。
    第一回がかなりレベルが高いというか、高度な引用がポンポン出てきて難しくない!?と思ったけど、数回聴いてるとそのテンポが心地よくなってくる。
    パーソナリティの3人がそれぞれ結構違う視点から話題を発散させていくので聴いてて飽きが来ないのに学びがあって納得感もあるすごい番組だと思う。

  • ゆる言語学ラジオ
    英語と日本語を中心に、様々な言語についてゆるく語る番組。
    扱ってる内容は難しいんだけど、パーソナリティの二人の掛け合いで理解が進むので比較的ついていきやすい。
    文法系なんかはふわっとしか聴けてないけど…。
    すごい勢いで聴いている人が増えている注目コンテンツ。

なんか合うのがあったら聴いてみてください。

買ったもの

模様替えやらなんやらでいくつか買い物をしたのでメモしておく。

その他

娯楽的な部分では5月末にはじめたブラッドボーンをちまちまプレイしている。DLCも買ったので、クリアまでもう半月くらいはかかるかもしれない…。
SEKIROもセールだったので購入して、しばらくは遊ぶゲームに困らない感じ。
DualShock4が故障してる上に品薄で、いっそのことPS5争奪戦に参加するか悩む…BFの新作も出るし。
あとはポッドキャストを始めようか迷って、AudacityとかGaragebandで録音してみようと思ったけどうまく音が録れずに断念した。
そのうちやり始めるかもしれないので、知人をゲストに招いてお題を決めて雑談みたいなのをやりたい。
今まではなにかのトピックについて話す時ブログでやってたんだけど、対話や壁打ちによる深堀りみたいなのが最近面白そうだなと思っているので、うまく昇華できたらいいな。

【雑記】31歳になりました/転職します

31歳になりました

(昨年の記事)
【雑記】30歳になりました。 - B-Teck!

振り返り

といっても5/4が誕生日なので、31歳になってから既に1ヶ月が経っています。
ちょうど転職の選考を受けていたので、この辺が落ち着いたら書こうかなと思っていたら1ヶ月経ってしまいました。
昨年の誕生日は、負荷の高い仕事が終わるか終わらないかのタイミングでかなり疲弊していましたね…。
結局あのダメージから回復するのにほぼ1年かかってしまった気がします。
アレ以降もちょっとダウンしかけた場面もあったんですが、前回の教訓から学んでどうにか乗り越えられました。
早めにアラートを上げたり、ダメコンによって致命傷に至らないようにするなどの動きが出来たので少しは成長出来たのかなと。
30歳を迎えるにあたってキャリアとか人生について思い悩む時期が割とあったんですが、昨年末あたりにはだいぶ落ち着いてきた感があります。

技術

今年に入ってから急に業務では初めての技術に触れる機会が増えました。

  • Go
  • Python
  • Node.js
  • Vue.js (+TypeScript)

これまでの知識で多少ショートカットできるとはいえ、なかなかヘビーな体験でした…。
数が多くなってしまったのもあり、細かくそれぞれに踏み込むことが出来なかったのも少し残念です。
とはいえ、「仕事で触った」とは言えるようになったので、あとは伸ばしていくだけなのかなという気も。

転職

振り返りを書いてるとどうしても仕事の話になりそうなんですが、その辺は転職の話として書こうと思います。
この記事を書いている今日が最終出社日で、7月から次の会社で働きます。

仕事を辞めるに至ったきっかけ

(前回の転職記事)
【雑記】退職します - B-Teck!

  • 4月に長く携わっていたプロダクトから離れることになった
  • 全く新しいプロダクトに携わる中で、外も含めて視界を広げていいのではと思った
  • サーバーサイドを手広くやるという感じだったので、今後の自分のキャリアに悩んでいた
  • 技術をよりゴリゴリやっていける環境に身を置きたかった

という感じでした。
不満や不安によるネガティブな要因より、新しいことをやってみたくなったみたいな方が近いのかもしれないです。
実際、今でも現職も、人や文化も、プロダクトも大好きなんですよね。
前回の転職では早く辞めたい!という感じでしたが、今回は寂しいとか現実感ないな、という感覚が強いです。
他人事みたいですけど、「離れるのが残念」と思えるような会社で働けたことは、人生の中でもかなり良かったことなのかなと思います。

学んだこと

現職では、何も知らなかった自分にすごい速度でいろいろな知識や体験がインストールされました。
3年半しか働いていなかったんですが、体感では前職の数倍濃密な時間が過ごせたと思います。
主なものをピックアップするなら

  • サービス開発の難しさ・面白さ
    • 施策・改善のループを回して、より良いものを作っていくこと
    • 渾身の機能がふるわず悲しんだりすること
  • チームや組織の中での開発
    • 人は正論だけでは動かないということ
    • チームで協力してモノづくりをする感覚
    • コミュニケーションの難しさと大切さ
  • 学びの姿勢
    • 社内勉強会などでの登壇
    • 知的好奇心が旺盛な人たちとの交流
    • たくさんのコードを見て学ぶ機会があったこと

という感じでしょうか。
前職では一切なかった、裁量を持って技術とアーキテクチャを決められるというのが純粋に嬉しかったです。
入社半年の自分が、2018年当時あまり事例のなかったServer Side Kotlinの導入を進めさせてもらえたのは本当にすごかった。

転職活動

前回は転職エージェントを使ったんですが、今回は積極的に転職活動はしていませんでした。
LAPRAS(ラプラス) - じぶんの得意や実績を、瞬時に分析。 を利用して自分のポートフォリオを作りつつカジュアル面談を受けてみるといった感じです。

  • 4月中旬ごろにカジュアル面談を受け始める
  • GWを挟みながら選考を進め、5月末に内定(GW除いて正味3週間ほど?)
  • 半月ほど開発と引継ぎ業務を行い、今日に至る

異動したばかりなのもあり、持ち物が少なかったのもあって、思いの外スムーズに最終出社まで来たなぁという感じです。

次の仕事の話

次もサーバーサイドをメインにやりますが、主に触るのは初体験のScalaになりそうです。
というわけで、今必死に勉強しています。
それ以外にもフロントやDB、クラウドにも目を向ける余地がありそうなので、これまでの知識と合わせて、手を動かせる領域が増やせたらいいなと思っています。
Kotlinはひとまず趣味プロダクトで触っていく感じになりそうなんですが、今のところ一番好きな言語なので忘れないようにしていきたいです。

感想

次の職場はカジュアル面談から選考までオンラインで進み、入社後も当面はフルリモートでの勤務になりそうです。
現職でも週の半分がリモート勤務になっているのもあって、人と会わないままに決まり、毎日が過ぎていく感覚の中での転職なので、まだ現実に気持ちが追いついていないなと思ってます。
全然明日で最後って感じがしないんですよね。
有給消化期間でうまく自己をキャリブレーションしていかないとなという感じです。

おわり

主に転職の話になってしまいました。
まぁ人生において相当にインパクトのあるトピックなので当然といえば当然かも。
年末の振り返りとか、32歳になったときの記事で良い振り返りができるよううまく毎日を歩んでいきたいですね。

新しく繋ぐ縁やこれからも続いていく縁などあると思いますが、引き続き仲良くしてくれると嬉しいです。

【GAS】claspでTypeScriptを使ってユニットテストもする

前回からの続き
blog.beatdjam.com

claspはデフォルトでTypeScriptに対応していて、作成した.tsファイルを含んだ状態でpushすると自動でトランスパイルしてくれる。
せっかくなのでTypeScriptを導入した上でローカルでユニットテストを実行できるようにした。

claspのプロジェクトでTSを扱えるようにする

まず、GASの型情報を取得する。

$ npm i -S @types/google-apps-script

次に、tsconfig.json を作成する。

{
    "compilerOptions": {
        "lib": [
            "es2019"
        ],
        "experimentalDecorators": true,
        "esModuleInterop": true
    }
}

これで、ローカルで編集する際にGASの型情報を参照した上で、ES2019環境で書くことができるようになった。

ユニットテストを動くようにする

実体としては普通のTSのプロジェクトなので、普通にJestを導入する。

$ npm i jest @types/jest ts-jest -D

jset.config.js でテスト周りの設定をする。
今回は src 配下にファイルを置いているのでそのように指定した

module.exports = {
    "roots": [
        "<rootDir>/src"
    ],
    "testMatch": [
        "**/__tests__/**/*.+(ts|tsx|js)",
        "**/?(*.)+(spec|test).+(ts|tsx|js)"
    ],
    "transform": {
        "^.+\\.(ts|tsx)$": "ts-jest"
    },
}

あとはtestMatchにマッチするようなファイル名でテストを書いて実行してやれば良い。

$ npx jest

不要ファイルの除外

ここまでの手順で、管理する必要がなかったりGASに上げる必要のないファイルが出来たりする。
claspはgitのように .claspignore を設定することで任意のファイルを除外できる。
今回はこのように設定したが、拡張子がjsのファイルも残す場合は書き足す必要がある。

**/**
!src/*.ts
src/*.test.ts
!appsscript.json
coverage/*

一応 .gitignore もこんな感じにしてる

node_modules
.idea
coverage

注意点

一度GAS側に反映されたファイルは $ clasp pull するとjsになって落ちてくる。
TSで書く場合はGitで管理して、オンラインエディタ上で編集を行わないほうが良さそう。

まとめ

  • TS自体は書いて $ clasp push したら動く
  • ローカルで書くなら型情報入れる必要がある
  • ユニットテストとかは普通のTSのプロジェクトとして手元で入れれば良い
  • GAS側に一度反映したファイルはJSになるので注意

今回の作業に使ったリポジトリはこれです。
GitHub - beatdjam/anniversary-notifier