はぜにっき

日記です。(毎日更新ではない)

2020年振り返り

11月に緊急事態宣言以降の雑感を書いているので書かなくても良いかな...と思っていたけども、何となく書いておきたくなったので書く。

hazediary.hateblo.jp

hazediary.hateblo.jp

時系列

1月〜3月

緊急事態宣言前(3月半ばぐらいまで)は週4日出社、週1日在宅で仕事をしていた。
1月中は週4勤務をしていて、2月からフルタイムになったので改めて会社に慣れるようにちょっと意識していた記憶がある。
業務委託で初期リリースまで開発に入っていた https://crowdlinks.jp/ も無事リリースされ、本業に集中することになった。

本業では https://boxil.jp/ の売上ロジックをいじって整理するプロジェクトを開発チーム全体で行っていて、過去のコードをひたすら読んで挙動とデータの動きをドキュメントに記していた。
これによって2020年後半に打てる施策が広がったので、大変だったけどやって良かった。
個人としては仕様を読み解いたり、Railsのコードを読む時のコツみたいなものが何となく掴めた気がする。多分。

4月〜6月

緊急事態宣言によりフルリモートに。どうせすぐ元の生活には戻らなさそうだった(実際戻らなかった)ので、在宅での労働環境を整えることにした。

hazediary.hateblo.jp

リモート自体は昨年もやっていたので特に課題にはならなかったが、社会情勢というか、暗い雰囲気に当てられて精神的にやられ始め4月前半には睡眠障害が始まっていた。2ヶ月続いても治らなかったので6月に睡眠外来に行き、睡眠薬を飲む生活が始まる。

f:id:hazeblog:20201231185057p:plain

仕事ではでかい機能のリニューアルをチーム全体でやっていて、複数人で一つの作業をやっていく際の作業分担や、全体把握に苦しんでいた。
自分に向いている働き方、向いていない働き方を考えて、今後どうやって組織の中で成果を出していくかを整理していた。当時の結論としては少人数のチームで裁量を持って動くのが良さそうで、考えを汲んでくれたのか、7月からは実際に開発全体とは別チームとして単独or数名で動くことになる。

この頃は手が空いた時にReactを復習したり、Next.jsを追い始めたりして本業と違うことを意識的にやっていた気がする。

プライベートは緊急事態宣言前後もわりと楽しんでいて、Zoomで同僚と話しながら夜通し酒を飲んだり、自転車を買って走り回ったり、先輩からギターをいただいて練習したり、Twitterで猫の写真を漁ったり、自炊を再開したりしていた。

7月〜9月

6月末に睡眠薬を変えて以降、大きく睡眠が改善し元気になってきた。8月以降は睡眠薬を抜いてもそれなりに寝られるようになり、平和が訪れていた。

業務では7月中は一人+業務委託一名の実施単独チームとなり、 https://boxil.jp/mag/ のパフォーマンス改善が業務となった。
(最近よく燃えていたりする)Railsにおけるフロントエンドの課題を体感して、少しずつ移行・改善していく現実的なリファクタリングの考え方を理解した。
8月からはチームメンバが一名増えて、メンタリングやチームマネジメントを考えるようになる。レビューが大変だった記憶がある。この時入った同僚は立ち上がりがめちゃくちゃ早くて有り難かった。
9月末にはTypeScriptでLambdaを書いたりした。コロコロとやる仕事が変わったがスイッチングは問題無かった。

個人での学習では本を読んでいたことが多かった気がする。パーフェクトRailsリファクタリングなどの仕事と多少関係あるものを読んでいた。

プライベートは自転車を漕いだり、釣りに行ったり、我慢できなくなって温泉に行ったりした。温泉がめっちゃ好きなことに気付き、一人で感染に気をつけながら近場の温泉を彷徨うことになる。
在宅勤務になってからかなり太ったこともあり、9月からはジムに通い出す。11月に5kg痩せ目的は達成された。が、通っているジムが2021年1月に閉店することが決まり、それを知ってからは行っていない。

10月〜12月

本業はメンバ構成が変更されて、プログラマ・チームマネジメント・ディレクション/プロジェクトマネジメントと、仕事の範囲が結構広くなった。
いろんな方向に首を突っ込んだり臨機応変に動いたりするのは結構得意なことがわかったし、同期さえ取れれば、それがリモートの環境下でできることもわかった。
他部署連携やMTGが増えたことでコードと向き合う時間が減っているのが課題、来年はもう少し増やしたい。

また、10月から2月までとは別の会社で副業をするようになった。気分転換になって良いけど、負荷はそこそこ高いので来年もずっと続けていくかは考えようと思っている。

睡眠は10月後半から11月にかけて薬が必要になったが、12月に入ると回復した。根本原因はわからずじまいなので、もやっとしているが、このまま治ってくれるなら良いかな...

感染者数がまた増えてきたので、プライベートは少し予定を減らした。基本的な対策はした上で、感染したら「この日に会った人/行った場所が原因だろうな」という推測ができる程度のペースで人に会うようにした。それ以外の時間は飯を作っているか副業をしている。
年明けてからは人に会うのもやめないとな…医療やばそうだし…

プログラマとしての振り返り

技術者としての成長は正直年初に思っていたほどできていない。
昨年末から検討されていたバックエンドレイヤのサービス分割やリファクタリングはできなかったし、フロントエンド側の改善も理想とかなり遠いペースだし、そもそもコードを書いている時間も業務時間の2〜3割ぐらい。

プライベートではインプットはそれなりにしていたが、登壇や技術的な内容の執筆はほとんどしなかった。
新しく触ったのはGitHub ActionsとVercelぐらいかな。

来年は仕事・組織との向き合い方、プライベートの使い方、働き方全体を見直してどう進んでいくか、どうやっていくのかを考える年にしたい。

在宅勤務について

昨年から何となくわかっていたが、自分は、組織がリモートを前提に動いているのであれば(業務内容によっては異なることもあるが)在宅のほうが安定してパフォーマンスが出るし、精神的にも安定しやすい。
また、非同期でのコミュニケーションはドメインを理解した即戦力同士でないと大変になりやすいが、非同期とリモートは別の概念で、
同期(=コアタイムが被っている)かつリモートの体制は今の組織を見ていると一定数の組織でうまく回りそうだと感じる。

今後どういう情勢になるかはわからないが、もし数年後にCOVID-19や変異種が撲滅されて外出を問題なくできるようになっても、自分はリモートを起点とした働き方を続けるだろうし、自分はそういった組織にい続けることになると思う。

採用と広報 (2020年12月31日 23時30分追記)

完全に忘れてた。 一応新しくやったことなので追記しておく。

今年に入ってから採用活動に面接官として関わっていた。
採用面接は向いてなさそうで、ある程度聞かないといけないことが決まっていたり、流れが既に想定されている話をするのが面倒くさいと思ったり、単純に「採用するかしないか」を考えながら人とコミュニケーションを取るのがしんどいと思ったりするのが理由っぽい。

そういうわけで、「ちょっと面接官向いてなさそうですわ...」と言って面接の回数は減らしてもらった。
その代わりに、広報活動に力を入れた。

具体的にやったのは

辺り。あとエンジニアブログの運営サポートかな。

人と折り合いをつけたりするのが苦手な反面、話したいことを話すとか、イベントの運営とか司会とかは得意なようで、(運営が安定していない間はかなり工数を取れれたこと以外は)あんまり苦もなくやってこれた。
外から見て何が足りないか、みたいなことを考えたり、それを何とかする手段を提案したりできるのは自分の強みっぽい気がするので、来年も何かしらの形でやっていければと思う。

まとめ

全体的に消化不良ですが来年はすっきり終われるように頑張ります。

2020-11-08 コロナ禍の独身男性生活事情

なにこれ

備忘録も兼ねて、コロナ禍の独身男性(@haze_it_ac)の生活の様子を共有します。

inspired by [20201106] コロナ禍の独身男性生活事情 - HackMD

目次

f:id:hazeblog:20201108200024p:plain:w350

徳田祥 / 24歳
都内 1K 一人暮らし 独身男性

在宅環境を整備する

hazediary.hateblo.jp

自炊に飽きてコンビニ/Uber Eats/Potluck/Chompyになる

元々それなりに料理をする方だったんですが毎日してたら飽きました。
6月〜9月はほとんど自分で作らなくなっていた。

10月ぐらいから自炊とそれ以外で半々ぐらいで安定しています。

楽器をはじめる

エレキギターを社の人から頂いたのではじめた
一ヶ月半ぐらい毎日一時間以上弾いてたけど段々減ってて今は週に1〜2回触るぐらい。もう少しちゃんとやりたい

精神安定剤としての側面が結構ある 気を抜きながら弾けるほど上手くはないので

昨年ノリで買ったピアノも家にありますがほとんど弾いていません

太る

2020年2月: 59.8kg
2020年9月: 64.5kg

出社再開以降、社の人から「ぷりぷりになった」と言われるようになった。後述のジム通い+食事を減らすことで現在は60.5kgまで戻っている

自転車を買う / ジムに入る / ゴルフを再開する

自転車とゴルフは適度な運動、ジムは姿勢改善に役立っている。

ただしジムは2021年1月に閉店になる

睡眠障害になる

これが一番でかいトピック。

twitter.com

ゴールデンウィーク明けから睡眠が崩壊し業務影響が出始めたため、睡眠外来に通い始める。
睡眠薬をいくつか変えたりして2020年8~9月頃は一旦改善したが、10月に再発し精神科に。現在も服薬中。
精神的にはかなりストレスが掛かってるけど別に普通とのこと。

服薬履歴

6月10日~ ルネスタ
  - 寝付きは良くなったが2〜3時間で起きる
6月27日~ プロチゾラム
  - 寝るのに大体一時間掛かるが5時間程度寝られるようになった
7月16日~ デエビゴ 5mg
  - 日中も眠い、頭痛がかなり来る副作用により断念。プロチゾラムに戻る
8月〜9月 無し
  - 服薬を辞めても4時間以上は寝られるようになった+業務影響がだいぶ無くなったので一旦止める
10月22日~ ベルソムラ 20mg
  - 大体プロチゾラムと同じ効果。かつ朝10時には普通に活動できるようになったため引き続き服薬。11月後半ぐらいからは減らしていく予定

なお服薬中は禁酒する必要があり現在も禁酒中。しんどい。

副業をする

在宅になる前から未経験/学生のエンジニアの相談に乗ったり面談する副業はやっているが、もう一社副業を増やした。

本業ちょっとマンネリ化してきた
会社の近くに居続ける必要が本格的に無くなってきた(週1ぐらいの出社)ため、東京郊外or地元京都に引っ越すかマンションを買うことを検討。
それなりに資金が必要になるため、また業務外のProduction Codeをいじれるということもありコードを書く副業をやっている。

ただしやった分を旅行したりゴルフしたりしているので本来の目的である貯金はあんまり増えていない

マッチングアプリを始めたりやめたりするのを繰り返す

3月に登録して5月にやめて、6月に登録して8月に退会して、9月に登録して今ここ

これは別にコロナ禍だからというわけではないんだけど、動きづらくなったなあ、とは思う。
緊急事態宣言中にずっと一人でリモートワークをしていたが、寂しいのは寂しいけど結婚したくなることは無かったので少なくとも後5年ぐらいはしない気がする

まとめ / 感想 / その他

生活にはだいぶ慣れたけど、マスク付けて外出ないといけなかったり、行きたかったライブが無くなったり、常に頭の片隅にはウイルスのことを考えながら生きるのはしんどい

ユーンさんは部屋を片付けるようになったようだけど自分は特に変わらなかった。むしろ家に人が来る回数が減ったこともあり洗濯物を床に置いていることが増えた。

はやく広い家に住み着きたい欲求はかなり強くなった。引っ越したい。

Next.js v9.4 で追加されたIncremental Static Regenerationの挙動を調べた

ReactにSSRとかファイルシステムルーティングとか色んな機能が付いたフレームワークのNext.jsのv9.4で Incremental Static Regeneration (beta) という機能が追加されました。
betaなのでGAになる頃には挙動が変わっていたり機能が増えていたりしそうですが、一旦現状の動きを調べてみたのでメモっておきます。

Incremental Static Regenerationについて

mizchi.dev

mizchiさんのわかりやすい解説を貼っておきます。

三行でどういうものかを書くと、
初回アクセス時にServer Side Renderingをすると同時に、生成されたHTML, JS等が所定の箇所に保存(キャッシュ)され、
初回アクセスで生成されたタイミングから暫くの間はキャッシュされたデータを使いレスポンスがされて、
キャッシュが破棄されてからアクセスされたら再度SSRしつつキャッシュを行う
という仕組み。

で、Vercelにデプロイする場合はVercelのCDNにキャッシュが保管され、めちゃくちゃ速くレスポンスが返ってくる。
CDNからレスポンスが返ってくるということは、(SPA部分でサーバへリクエストを送るような部分は除いて)サーバへのリクエストが飛びません。

すげーー!弊社のメディアこれでリニューアルしたい!!
ということでちょっと気になったいくつかの挙動を実際に動かして試してみることにしました。

補足: 仕様についてはこちらで議論されています。

英語できないのめちゃくちゃしんどい

github.com

調べたこと

  1. Incremental SSG + SPA 構成の作り方
  2. Incremental SSG で生成されたCDN Cacheはコードをdeployし直したら吹っ飛ぶか
  3. 2.でキャッシュが吹っ飛ぶ場合、Incremental SSG とは関係のない部分のコード変更でも吹っ飛ぶか

1. Incremental SSG + SPA 構成の作り方

普通にIncremental SSGにReact.Componentでできたコンポーネントを設置すればOK

gist.github.com

2021.01.31 追記

正式リリースのタイミングかいつかはわからないけど、 unstable_revalidate オプションは revalidate オプションに名前が変わっていた。
最新のバージョンだと上のコードは動かないので注意。

追記ここまで

components/loading がReact.Componentでできたコンポーネントやっていることは全然ローディングじゃないけど。
コンポーネントJavaScriptも含めてキャッシュされるのでそれがブラウザ上で実行される動き。

生成される静的ファイルは .next/server/static/development/pages に置いてある。
ローカルだとIncremental Static RegenerationはされないのでHTML, CSSファイルは無いので確認はできない。

2. Incremental SSG で生成されたCDN Cacheはコードをdeployし直したら吹っ飛ぶか

A. 吹っ飛ぶ

一応確認した。
デプロイのタイミングで .next/ も全部デプロイされたコードに置き換えられるが、そのタイミングでSmartCDNのキャッシュも全部Purgeされるっぽい。
まあそうじゃなかったら旧バージョンのものが残り続けることになるのでよろしくない。

3. 2. でキャッシュが吹っ飛ぶ場合、Incremental SSG とは関係のない部分のコード変更でも吹っ飛ぶか

A. 吹っ飛ぶ

差分デプロイになってたりしないかな?って思ったけど違った。そうだよね。


調査に使ったコードは以下のリポジトリにあります。

github.com

デプロイ先はこっち
https://isr-and-spa-test-h9i09bkq9.now.sh/mag/1

実用を考えた際の課題

記事の更新をフックにその記事のキャッシュを消す、といった動作が現状できない

https://vercel.com/docs/v2/edge-network/frequently-asked-questionsvercel.com

所謂CloudflareでいうCustom Purgeの機能がなさそう。

How do I use Cloudflare over your CDN (disable it)?) の欄があるし、CDNをVercelじゃなくてCloudflareにすればいいのかも。でもそれだとIncremental SSGの意味が無いような。

デプロイ直後にサーバの負荷が跳ね上がる

デプロイと同時にキャッシュが飛ぶので、その後のリクエストがURLに一回ずつ全部サーバまで飛んでくるようになる。
SSRだとキャッシュされずに全部飛んでくるのでそれと比べたらだいぶ少ないけど。
キャッシュされていることを前提にサーバの台数を減らしていたりすると、デプロイするたびに負荷が上がって大変なことになる。

そういう意味で、デプロイが差分でできたりすると良いなと思った次第。まあこれは難しいよなあ


tech.smartcamp.co.jp

インフラレイヤにあんまり力を入れたくはないけど実現できることは増やしたいので、VercelのFrontend All-inっぽい作りはめちゃくちゃ好き。
なんか貢献できないかな、zeit/next.js のissueとかPRをもうちょっと読んでみようと思いました。

やりたいこと自体はCloudflare + Nuxt.js Universal Mode(をどっかに置く) でできるんだけど、こう、楽したい。

在宅勤務の主な装備を紹介しておきます

こんにちはこんにちは。みんな在宅で装備を揃えたかと思うんですが、こちらのデッキを紹介しておきます。
比較的安価で揃えられるものの中で、良さそうなやつを集めたのでお金があまり無い人の参考になれば。

合わせて読みたい

社での働き方 tech.smartcamp.co.jp

紹介

https://www.amazon.co.jp/gp/product/B071WJPTJNwww.amazon.co.jp

ガス式の昇降式デスクです。
今は売り切れてしまっているんですが、26,999円で購入しました。
同サイズの電気式の昇降式デスクよりはかなり安く、軽いです。
そんな頻繁にスタンディングにしないだろうし、持ち運びが楽で気楽に模様替えしたいのでガス式に。安かったからっていうのもあるけど...

大きさも見た目も使い勝手もかなり良いのでコスパ良しです。おすすめ。

ディスプレイ

会社のディスプレイを拝借して(許可を貰って)家で使っています。そんなに良いものではない。安いしもう一個買ってトリプルディスプレイにしても良いかもしれない。

モニタアーム

友人に教えてもらって買ったやつ。値段の割に妙に良い。
必要があればふたつモニタを付けられるというのは安心できます。

椅子

www.low-ya.com

会社で使っている椅子がかなり自分に合っていて、安いよ!と情シスが教えてくれたので購入。
アーロンチェアは前屈みっぽくなるんですが、これはちょっと後ろに倒れる感じ。長い間座っていても疲れないです。

フットレスト

椅子が後ろ向きで足に少し負担があるのでは?と思い、安かったので試しに購入したらめちゃくちゃ良かった。
会社用にも一つ買いました。本当におすすめ。

自転車漕ぎマシン

運動不足解消に。
朝に通勤時間と同じ時間、Twitterとかインターネットをしながら漕いでいます。あとMTG中。
負荷はちょっと弱いと思っていたんですが、長い時間漕ぎ続けているとわりとしんどくて、丁度良いみたいです。

マイク / オーディオインターフェイス

www.soundhouse.co.jp

https://www.amazon.co.jp/dp/B07YG4KVCF/www.amazon.co.jp

別にもう少し安いのでも良い気がします。
何ならオーディオインターフェイスとか買わずにYetiとか買うほうが楽です。

ただ机の上に普通に置くのはキーボード音や揺れの音が思いっきり入るのでマイクスタンドは安物で良いので買ったほうが良いです。
自分のマイクスタンドは何故か家にあったものを流用しました

机の背面にこれをふたつ横に並べています。
座ったときに上に置いたスピーカーがちょうど頭の高さになります。

スピーカー

www.soundhouse.co.jp

社の人におすすめを聞いたらこれになりました。


手札は以上です。対戦よろしくおねがいします。

TDD Workshop at SMARTCAMP 受けた

たのしかった、し、難しかった。
やった内容も公開して良いしtwitterとかブログとか書いてもいいよって仰っていたので書く

何やってたの

(事前にこれのどれかをローカルに持っておく)

github.com

午前中にこれ(ライブコーディング多め)を講演してもらい

speakerdeck.com

昼はこれをペアで解いた

Revenue Recognition · GitHub

gist.github.com

参加者の大半が自動テストを書いたことがある状態だったので、新作のお試し版になってちょっとラッキーだった(と思う)

演習でわかったこと

  • とりあえずModel作って < ApplicationRecord て書こうとした瞬間にRDBが存在しない世界であることに気付く
  • 俺たちはRuby on Rails(というかActiveRecord)の下で生きているんだなあ...
    • 「これってRubyの機能なんだっけ」っていうのを結構な回数言った
    • Rubyenumは無かった。enumでやろうとしたけどなくて配列にした(😇)
      • Moduleでやればよかった
  • 一回目が一番難しいし間違ったら手戻りがすごい
    • 変な焦り方をすると爆発するのは仕事と一緒。落ち着いて考える
  • 問題の大半が「どこにどう役割を持たせるか」なので、普段どこまでちゃんと設計してやっているかが如実にわかる
    • @haze-it は結構適当。あかん
    • デザインパターンは聞いたことがあってもまともに理解してないと使えない
  • Working Out Loudはスキルの一つ
  • それと同時に隣の人の話を聞くのも大事
  • ペアプロ普段からそこそこやっている気がするけどこの演習は意味わからん疲れ方するので前日はよく寝たほうが良い
    • 普段からそれぐらいの頭を使って仕事をしろっていう意味かもしれない...それはそう...

講演も演習も学べたことは多いけど、それをうまく仕事に持っていけるかどうかは別なので頑張りたい

週4勤務からフルタイムに勤務形態を変えることになりました

合わせて読みたい:

hazediary.hateblo.jp

報告: 時短正社員(週4勤務) -> 正社員(フルタイム) への転換

2020年2月から、スマートキャンプでの勤務形態を変更しフルタイム勤務になることになりました。

内部事情的な話もそこそこあるため詳細な理由は控えますが、少なくとも半年以上はフルタイム勤務になりそう。
今年の後半か2021年ぐらいからは週4に戻したい気持ちはあります。

週1+αの クラウドワークス社の新規事業開発室のお手伝い は副業として続ける予定。今後ともよろしくお願いします。

整理

時短勤務、副業・業務委託者の受け入れは、開発プロセスがそれに合っていないと相当しんどい。
仕様共有の仕組みや取り決め、開発フロー等、理由は色々あるがフルタイムの4/5分の成果は出せていない感覚が暫く続いていて消耗することが多かった。

よく心配にあがるコンテキストスイッチや副業のことが頭から抜けない、といったことについては大きな問題はなかった。
昼休憩中に副業のほうのレビューをするといったこともよくあったが、それが原因で本業に影響が出たりしたことは一度もなかったと思う。

何となく課題感というか、どうすれば解決するかはイメージがついているが、それを今の開発チームで構築してうまく運用していくには人と時間が足りない。 半年後ぐらいには安心して週4に戻してちゃんと成果を出し続けられるようにしていきたいので、仕組み作りと採用はちょっと力を入れていくつもり。

「分散システムデザインパターン ―コンテナを使ったスケーラブルなサービスの設計」読んだ

12月、予定の隙間の時間を使ってゆっくり読んだ。

どういう本だったか

コンテナへのデプロイを前提とした、システム設計のパターン本。
だが、コンテナ化されていなくても適用できるパターンや思想は多く、近代的な設計のシステムでなくても参考になる内容も多かった。
モノリシックなアプリケーションに機能を追加する際のパターンといったものもあり、一通りさらっと読んで頭の片隅に置いておくと良さそうな内容だった。

kubernetesを使ったハンズオンもあり、具体的な構築イメージが湧きやすくとても良かった。

あとkubernetesに限らず、バックエンドのシステム開発、インフラ、コンテナ周りの前提知識はそこそこ必要。パターン本だからそらそう

個人的な感想

hazediary.hateblo.jp

読む動機は、仕事で少しずつ分散システムの思想、考えを使ってアプリケーション改善をやっていくための前提知識の獲得、とっかかりのため。
思っていたよりずっと薄く、気軽に開いて気軽に読めて良かった。
MapReduceってなんだっけ...と調べ直したり、KubernetesのConfigMap オブジェクトって何???てなったりして、事前にもっと知っておくべきものがありそうな気もするが、一旦読んで良かったなと思う。

パターン本、デザパタとかDDDとかあまり読むのが得意じゃなかったけど、一旦気軽に読んでおいて、何か似たような形見たことあるなーって思ったら読み返せばいいか、ぐらいの気持ちで読むとさらっと行けるのかなと今回思った。厚さが全然違うっていうのもあるんだけど。

f:id:hazeblog:20200105225957p:plain
社Slackのtimesにメモを書いている様子

普段、本を読んでいる途中に書くメモをinkdropに書いているんだけど、試しにslackのthreadを使って書いてみたらとても良かった。
短くも長くも書けるし、何より気楽。あと参考のリンクを貼るとOGPが展開されて良い

次に読む本

同じ文脈で次に読もうとしている本。
分散システムのデータ周りを中心とした、今回の本よりもでかくて分厚い本です。がんばろう。

2019年振り返りと2020年にやろうとしていること

2019年に書いたエントリ

hazediary.hateblo.jp

これ含め20記事。去年よりかなり減った。「日記」ぽいエントリが減っただけな気がするからまあ良いかなあ。

大きめの出来事

hazediary.hateblo.jp

転職、同時に兼業を始めた

年初に立てていた目標を見る

hazediary.hateblo.jp

仕事 - Ruby on Rails + React

仕事が変わったのでReactから離れてしまったが、Vue, Nuxtは書いている。
中身までちゃんと理解しているかと言われるとそんなことはない。2018年末よりはだいぶコードも読んだり書いたりできるようになったはず。
とはいえまだまだな部分が多いので来年はもっとコードを書いていきたい。

技術だけではなく、サービス設計、組織などについても考えていきたい。

この辺は転職前後ぐらいからよく考えるようになった。
前職との差分とか、理想形を考えてそこの差を埋めるための動きみたいなことを意識してやっている。これからも継続して続けたい

hazediary.hateblo.jp

趣味えんじにありんぐ - プロダクト開発 / 利益

個人プロダクトは特に作ってない。
副業が0->1、数人で作っている規模感のため割と小さく早く作る、みたいなのは出来ている。
マネタイズはまだまだだなあ、個人でできる範囲も結構狭いんだなというのを今年はたくさん感じた気がするので、ここは考えが変わったかも。やれたらいいんだけど。

表に出る機会

4~5回ぐらいLTした気がする。
Advent Calendar辺りが去年はなかった取り組みだったかなあ。
他の人に見られる文章っていうのを多少気にするようになった。

健康

去年よりは確実に健康になった。めでたい。
年末に溶連菌にかかってしまったが、それ以外は1〜2回風邪を引いた程度なので全然良い。
睡眠不足は徹夜麻雀とかカラオケとか泥酔とかしなければあんまりならなくなった。

今後の選択肢を増やす

副業をやり始めたり、転職を考えたタイミングでそれなりに選択肢はあるなあと思った気がする。

海外で働きたい意欲は元々特になかったが最近は更になくなってきてしまい、国内指向が強くなった。
放送大学、籍はあるんですが単位もそこまで取れていない。来年続けるか少し悩んでいる...

振り返り

仕事について

転職
今年も転職をした。
3回転職をしているけど、する理由も毎回違うし仕方ないというか、今のところ後悔はしていないし説明もできるから良いかなと思っている。

副業
本業と副業、両方をやっている体制は個人的にはとても楽しいし、本業だとあまり触れない方面の技術(Firebaseとか)が触れててとても勉強になっている。

ただ、副業で学んだことを本業で活かせているかというとそうでもないなあというのが最近ちょっと考え事になっていて、まだ自分の勉強のためにしか週4勤務ができていないので少し申し訳ない。
来年やっていくプロジェクトを考えていると、週4で本当になんとかなるかな、という不安もあったりするので、また少し後に振り返って考えてみようと思っている

長期スパンでのキャリアについてはまだわからない。数年は振り子みたいな形でエンジニアリングをやりつつ、飛び込むタイミングがあれば別のことをしつつ、みたいな感じになりそう。

仕事以外

ダイビングをやった。かなり楽しいけどお金が飛ぶ。
ゴルフを再開した。かなり楽しいけどお金が飛ぶ。ダイビングほどではない。
麻雀を会社でやるようになった。お金は飛ばないけど時間が飛んでいく。

彼女はいません。よろしくおねがいします。

来年やろうとしていること

Developerとして

来年はちゃんとエンジニアリングというか、技術をちゃんと付けたいなと思っている。
小手先でなんとかする、とかが多いほうだと思っていて、土台になる部分がまだ出来てはいないなあとよく感じるし、危機感も多少ある。
後述する通り、しばらくはバックエンドをやっていくのでそこにちゃんと集中できるように動いていきたい

本業

hazediary.hateblo.jp

にも書いているが、リファクタリング・サービス分割に関わっていくことになりそうなのでその辺りの知識習得と技術をやっていく、と思う。
急いで分散システムや設計の本を読んでいる。1〜2月ぐらいで読み切りたい&なんとなく理解したい。

プロダクトもそこそこでかいし負債もまあまああるので、既存のコード理解とかドメインロジックを理解した上で理想形を考えていく、というのをやる予定。
がんばりたい

副業

引き続き。
プログラマとしての成果を出した上で、本業だとすぐ出来なさそうな技術とか方針を習得するお気持ちは持ち続けたい。のと、前述の通りに本業にどうやったら還元できるかも考えつつ。

イベント・カンファレンス運営

Builderscon tokyo 2020 のスタッフになった のでやっていく。

スマートキャンプの勉強会にも結構かかわることになった。外から見た会社とか色々意識しながら施策を試していきたい。

アウトプット

コードで出せることはコードで、文章に起こすべきこと、言葉でちゃんと伝えないといけないことの使い分けを意識してやっていきたい。
考えや方針を文書で説明できるスキルはそれなりにあるっぽいので、うまく使っていく。

全体的に、無理して先のことを考えようとするとうまく行かない気がしているので、現状とあるべき理想のイメージだけを意識して動いていきたいねって思った。
プライベートは体調を崩さない程度に遊んで、温泉とかいっぱい入って良い感じにやりたい。

来年もよろしくお願いします。🙏

2019年12月振り返り

年末ですね。

前回

hazediary.hateblo.jp

業務

本業

BOXIL

ボクシルSaaS - 法人向けSaaSの比較・検索サイト

BOXILの開発を引き続き。少しずつ機能を覚えてきているんですが、こんな画面あるんだ...が毎週のように出てきます。すごい。 Railsあんまりちゃんと理解せずに書いているなあと毎回思うので、Rails Guideを読み直したり現場Railsを一通りやったりしようと思っている。

tech.smartcamp.co.jp

平成Ruby会議でBOXILの課題について話してきました。
来年はスライドに書いてある リファクタリング・分割大作戦をやっていく予定です。大変。一緒にやってくれる人を募集しています。

tech.smartcamp.co.jp

アドベントカレンダーをやっておりまして、自分は上記のスポンサーをした話と、オンボーディングのお話を書きました。

smartcamp.connpass.com

あと、弊社主催のイベントの運営手伝いとLTを。

前月からやっているドキュメントツール移行は無事成功しそうです。Kibelaめっちゃ良い。

副業

Firestore, Nuxtがそこそこ慣れてきました。良かった良かった。
LPを改修したりレスポンシブの対応で苦しんだりしてCSSもだんだんまともに書けるようになってきた気がします。多分。

読んだ本

読んでいる途中。12/31までに読み終わる予定。
次に現場Railsを流し読みする。

イベント

Firebase Meetup #15 Cloud Functions Day - connpass
【PLAID × ラクスル】Vue.js for 2020 - connpass
に参加した。

B2B SaaSエンジニアMeetup - Sharing Issues #2 - connpass
平成Ruby会議01@株式会社ドリコム - connpass
でLTをした。

ブログ

仕事をする上で気をつけていることを整理してみる - はぜにっき
エンジニアチームで行っているオンボーディングを紹介するよ - SMARTCAMP Engineer Blog
平成Ruby会議 01 にドリンクスポンサーとして参加しました - SMARTCAMP Engineer Blog
スマートキャンプ、TechBowlのAdvent Calendarで書いた。会社のブログで書くのちょっと力むから大変だった。

業務外

  • 忘年会等々でかなり飲んだ。人生で一番か二番目ぐらいに飲んだ月だったかもしれない。
  • 徹夜麻雀をした。
  • 徹夜カラオケをした。
  • 自宅が職場の酔っぱらい達の宿になり始めた。まずい。

  • 社内SlackでNon Engineer達にtimesを流行らせた

  • 溶連菌にかかった。

38.9°まで上がって筋肉痛がありめちゃくちゃふらついたので絶対インフルエンザだと思ったら違った。

  • 歳を取った

寿司を握りました。

先月の「来月やりたいこと」の振り返り

  • CSSと仲良くなる
    • => まずまず
  • GCPのサービス諸々を触る
    • => あんまり触れてない。時間を作る
  • Vue, Nuxtの設計を考える
    • => まずまず
  • 年末年始にやることを考える、何かする
    • => 本を読むことにした
  • 手を動かす
    • => Vueは適度に書いてたけどRailsはあんまり書けてない
  • 鍋をたくさん食べる。野菜をたくさん入れる
    • => 三日に一回ぐらい食べてるから良さそう
  • クリスマスは慎ましく生活する
    • => クリスマスイブの夜は麻雀をしました

来月やりたいこと

  • 積本の消化
  • RubyRailsの読み書きを増やす
  • ウイスキーを嗜めるようになる
  • 副業先プロダクトのリリース
  • 温泉に入る
  • 食洗機の設置

仕事をする上で気をつけていることを整理してみる

なにこれ

qiita.com

【Mentor Ver.】TechTrain Advent Calendar 2019 の9日目のエントリです。
前回は @fkske_pro さんの アウトプットスキルを加速させる越境学習のススメ でした。


目次


はじめましての人ははじめまして。

はぜ という名前でインターネットをしています。スマートキャンプという、全然キャンプと関係のないWeb事業をしている会社で働いています。
TechTrainのメンターには同僚に誘われて、先月なったばかりです。よろしくおねがいします。

仕事をする上で気をつけていること

現在4社目なんですが、普通に働いていたり、転職をしたり、副業をしてみたりしていく中で、"これは意識してやろう"、と決めていることがいくつかあります。
それらがもしかしたら人のためになるかもなあ、と思ったのでその紹介をゆるくやっていくことにします。

意識してやろうとしていること

  1. 自己開示
  2. 正直であること、わからないことはわからないと言う
  3. 立場と視点を気にする
  4. ちょっとだけ無理をする

です。

1. 自己開示

入社した時、チームが変わったとき、そういったときに自己紹介は嫌というほどやると思いますが、それ以外でも積極的に自分のことを話すことを心掛けています。

自分がどういう考えで物事を決めているのか、考えているのか、仕事をやっている上でどこを気にかけたか、どこができなくて後悔したか、半年後どうなっていたいか...
1on1でマネージャには伝えても、チームメンバには伝えていなかったりしませんか。

どうしてやるのか

私は特にですが、隣で働いている人がどう考えて、どう思って仕事をしているのかが気になります。
また、一緒に作業をしている人が何を得意としていて、何が苦手かが気になります。

それを知っていることで、 「このタスクは自分よりこの人のほうが得意だから、一緒にやって教えてもらう」 とか、
「この作業はあの人があんまり好きじゃないって言っていた。自分は結構好きだから代わりにやってもらおう!」 とか、そういう動きができたりします。

それは相手のことを知らないとできません。自分のことを知ってもらい、適切な判断を取り合っていけたら良いなあと思ってやっています。

どうやるのか

やり方はいくらでもありますが、自分は可能な限り文章化するようにしています。
自社だとKibelaという情報共有ツールを使っており、そこに色々書きなぐっています。

入社した直後に自分の経歴とか会社でやりたいこと、今後どうなりたいか、仕事以外で何やっているか、趣味とかを書いた自己紹介を投稿したり、
こういうこと全社でやったほうが良くない?と思ったら提案する文章を書いたり、
よく聞かれることをまとめて書いたりしています。

f:id:hazeblog:20191208142849p:plain
現職には週休3日の時短正社員として入社していて、休みの日なにしてんの?とよく聞かれるので書いた

※社内のあだ名文化により、 とってぃ と呼ばれています。まだ慣れません。

.

それとは別に、金曜の夜に週報を書いています。

f:id:hazeblog:20191208143503p:plain
週報は前職で書いている人がいて真似しました

週報を書くことでチームメンバに今自分がやっていることを共有したり、自分の頭の整理をしたり、タスクが溢れていないか確認したり、といったことが毎週できます。
あとちゃんと書いていると半期評価とかのタイミングでこれを読むだけで大体何してきたかがすぐわかって便利。おすすめです。

(あとは当然、対面でのコミュニケーションもたくさんします。)

2. 正直であること、わからないことはわからないと言う

そのまんまです。

どうしてやるのか

1.自己開示 と被るのですが、正しく人に自分の状況、知識を伝えないと誤解されて大変です。
自分ですぐ調べられる範囲であれば、調べればわかるから大丈夫、と伝えれば大丈夫だと思いますが、そうでない場合は自分でなんとかするしかなくなります。大変です。

どうやるのか

「初心者なので...」とかの前置きをせずに、「わからん!!!」と自信を持って言うと良いです。
むしろ先に「こことここがわからんから事前に教えてくれ、どっかに書いてあるなら文献をくれ」みたいな感じで言うと大体教えてくれます。

業界全体に薄く 自分で調べられないとエンジニアではない みたいな雰囲気がある気がしますが、3年ぐらい仕事をしていてもわからないことは無限にあるし、自分の触ったことのない技術はわからなくて当然です。
自分で数分調べてみて、あと10分かけてもわからなさそうなら軽く聞いたほうが良いと思います。仕事中は特に。

人に説明してもらうより自分でコードを読んだり調べて納得したほうが理解が深まりやすい(はず)なので、自分で調べてなんとかする力は並行して身につけていきましょう。

(自分は考え込んで時間を無にしがちなので、仕事中は意識してすぐ聞くようにしています...)

3. 立場と視点を気にする

いわゆる視座の話です。
(自分が今マネージャならメンバであるこの人にはこう動いてほしいな) みたいな考え方をしたり、
(自分がこう動いているけど、事業部全体で言うと今これやるよりこっちを進めたほうが良いんじゃないかな?提案してみるか) みたいな動き方をすることです。

どうしてやるのか

ざっくり言うと組織のパフォーマンスの最適化のためです。
状況によって "一メンバに徹したほうが良い" ときもあれば、 "チーム外のことまで手を広げたほうが良い" ときもあります。

また 開発者として働いていて、相手が何を求めているかを考えなければならないタイミングは多いです。

どうやるのか

一番良いのは経験してみることだと思います。
マネージャになってみる、チームリーダとして動いてみる、CSの仕事を手伝ってみる、などなど。

rfushimi.hatenablog.jp

(個人的に参考にしている考え方です。)

難しければ当事者に話を聞いてみたり、ある程度想像で考えてみたり、という形になるかなと思います。
自分はよくPdMに1on1で 「先週はこういう目線でこう動いてみたんですけど、あなたから見てどうでしたか?」と聞いています。

4. デフォルトはちょっとだけ無理をする、疲れたらちょっとだけ手を抜く

どうしてやるのか

まだ開発者としてはまだまだ下っ端(だと思う)なこともあり、技術者としての成長速度はもっと上げたいと思っていて、
とはいえ無茶をしすぎて身体を壊したり精神的に疲労するのも嫌なので、適度に難しいことに挑戦しよう、という意識からです。

どうやるのか

定期的に自分の状態を振り返る運用をしています。
部屋の散らかり度合い、気持ちの浮き沈み、一人で酒を飲んだ量、実施したタスクの数や質、スケジュールの空き具合、など。

めっちゃバリバリ仕事ができていると思っていても実はこなしたタスク自体は小さかったり、一週間で部屋が異常に汚くなっていたり、妙に気分が落ちたりしたら次の週は意識して手を抜くようにしています。
体調が悪い(実際こういうときは大体悪い)と言って有給を唐突に入れて一日ゆっくりしてみたり、早めに帰って近場の温泉に行ったり、外食したりすると良いです。

どうしても無理をしないといけなくなる瞬間はあるっちゃあるんですが、一人一日休んだところで事業が死ぬようになることはそうないです。まあ役職がついたり経営者とか取締になってくるとそうも行かなくなるんでしょうが...

疲れてきたらチームに共有して、ちょっと来週はやる仕事減らすと思います、みたいなことを言ったりすると多少は気を使ってくれると思います。たぶん。
逆にチームメンバがつらいって言ってきたら助けてあげる ぐらいのことはやってあげると良いでしょう。徳を積むのも大事です。

最後に

そんなことを考えながら仕事をしています。(できていないときもたくさんあります。)

Engineerと言っても根本的には会社に属して業務に従事する以上はビジネスマンなので、コードを書く、ものを作るだけではうまく行かないことが多いです。
色んな人と協力しながらプロダクトを、サービスを作ることを楽しみつつ、仕事ができると良いですね。

これからソフトウェアエンジニアとなる、なったばかりの、あるいはまた別の誰かの参考になればと思います。

次回は @umikawat さんの 次世代のエンジニアを目指す人に伝えたいこと(IT業界を15年経験してみて) です。おたのしみに。

qiita.com