This is the memorandom for me and “X” developers in the world.
Fullstack Web App with Turborepo
English version is only available now....
The First Year of Engineering Manager
メルペイに入社して 8 月で丸 3 年経った。そして 2020 年 10 月からは Engineering Manager (= EM) をやっていてもうすぐ 1 年になる。「EM って何やっているの?」とよく聞かれるし、自分もやる前は正直そう思っていた。「コードを書かなくなることへの恐れ」もあったが、色々と見えてきたこともある。この 1 年間を振り返ってみる。 現職における EM の定義 会社によって EM の定義は異なると思う。メルペイにおける EM 定義は下記の通り。 役職ではなく役割 (EM に限らず Manager は役割) 戦略・業務・チームをマネジメントして成果創出をする 主に Who, Where, How に責任を持つ 縦軸 Project に対して、横断的に関わる (下図参照) 期待値は Engineering Ladder 1 の [Engineering Manager Skills] に記載がある。他にも Manager 全般の定義もあるがここでは割愛する。 私は Frontend チームの EM。2021 年 8 月現在、総勢 14 名が在籍しているチームで、EM は私を含め 2 人、業務委託+インターンの方も在籍している。私は 5,6 人を直属のレポートラインとして見ている。 EM の中にも色々なタイプの人がいる。EM 兼 TL2 としてプロジェクトに入ってガッツリコードを書く人、チームマネジメントやプロジェクトマネジメントに比重が大きい人、など様々だ。...
2021年2月の振り返り
英語 キク英文法の2周目 先月から引き続き キク英文法 の2周目をやっている。2周目は使われている文法を使って自分が日常で使うであろう文章で例文を作ってそれをインプットするのを繰り返している。何度かネイティブに添削してもらったところ「文法的にはあっているけど、ちょっと違和感がある」という指摘をもらっている。少しずつニュアンスも正していきたい。 100回繰り返すアレ 英語は100回フレーズを練習して始めて自分の言葉となる というのをここ数日、実験的に試している。映画や本で1回フレーズに出会っただけで実際の会話では使えない、というのは言うまでもなく事実で、実際に使うためのインプット方法として100回繰り返すというのが紹介されている。実際は100回繰り返さなくても実際に使えるレベルになっている気がする。Design Principles of Vue 3.0 by Evan You を使っている。普段使うであろうフレーズが使われていることや、標準的な American English であること、内容が大部分わかっていることを重視した。 英語の漫画を読む 内容を知っている、かつ説明が多いマンガということで Death Note の英語版を読んでみている。文字が全部大文字なのがとても読みづらい。 面白い翻訳。漢字で書かれている箇所全部差し替えするのは大変そうではあるが...😇 カラー: 日本語版 モノクロ: 英語版 pic.twitter.com/WZXDYsgvb2 — tanakaworld 🧢 (@_tanakaworld) February 12, 2021 衣食住 nosh は続いているが、2週間に10セットが消費しきれず1度スキップした iHerb で日用品を買うようになった。マグネシウムが経皮吸収できる(らしい)Life-flo, ピュアマグネシウムフレーク を試してみている。 本・娯楽 本 ワールドトリガー (アニメの続きが気になりすぎて16巻から最新巻までを一気にみた) 七つの大罪 (34巻まで買っていて、それ以降を放置していた。やっと全巻購入した) ブルーピリオド9巻 今際の国のアリス (Netflix 実写の続きと思われる8巻以降を購入した。これも続きが気になりすぎた案件。) 映画・アニメ ワールドトリガー (連載中の最新まで追いついた) ハイキュー!! (シーズン4の途中) 岸辺露伴は動かない ジェミニマン 他 ゼルダ無双:2人同時プレイでき、妻と一緒に遊んでいる 桃鉄:時々やっている Among Us: やりはじめたが、まだ良くわかっていないレベル 雑感 2/28 今日、確定申告を完了させた(かったが、電子申告は時間と曜日が決まっていて提出できなかった😇普段は書面郵送で手続きしていて、電子申告は今回が初) ...
2021年1月の振り返り
英語 会社の開発業務や 1on1 を英語でやっていて、英語で困ることは少なくなってきた。CRFR に準拠している EF SET や会社独自の英語テストなどの結果を踏まえると自分のレベルは B2 Upper Intermediate くらい。 文法とニュアンスに課題感を感じている。 文法 話しているときに文法の誤りや迷いがあり、それを矯正するためにまずは文法を一通りやりなおすことにした。今月はひとまず キク英文法 を1周学習した。 この本は会話で使える文法の 9 割くらいを網羅しているという評判は実感としても正しかった。下記の動画を参考にした。 英文法を「完璧」にする勉強法~キク英文法を使って TOEIC満点・英検1級・IELTS8.5 【1冊だけで】文法を完璧にする本【2ヶ月で文法攻略】 2月はこの本を何回か繰り返して、完璧に近づけていく。ネイティブからすると「フォーマル過ぎる」「文語的」と指摘もらった点もあったので、よりナチュラルな表現もキャッチアップする。 ニュアンス 英語独習法を読んで、学習方法を見直す必要があると思わされた。英語で業務できているが、文法的には合っていてもニュアンスが違うケースが多々ある。まずは通じるところを目指していたのでそれでもよかったが、より効率的に業務をするために改善が必要と感じている。 stand.fm を始めた https://stand.fm/channels/5fd41adcdd3aea937b5cebcf 妻と雑談しそれを stand.fm に垂れ流すのを始めてみた。週1回程度、そのときに考えていることを雑に話している。コロナが流行してからお互い一緒の空間にいる時間は増えたが、お互いのやっていることや、思っていることを話す機会が少ないと感じていた。意識的に機会をつくること、Public に公開することで適度な緊張感と継続性を保つことを目的としている。 音声メディアは専ら聴く専門だった。マイクや収録環境を整えたり、ガッツリ編集したりといったことが大変そうと感じていたからだ。しかし実際やってみるとそこまで大変ではなかった(話している時間が短いのと、内容・音質ともにそこまでこだわっているわけではないからかも)。現在は、iPhone の Voice Memos アプリで収録し、stand.fm にアップロードするという流れでやっている。 衣食住 冷蔵庫を新調し、容量が 3 倍ほどになった nosh を試した マットレスを 高反発マットレス「モットン」 に買い替えた 本・娯楽 1兆ドルコーチ――シリコンバレーのレジェンド ビル・キャンベルの成功の教え 英語独習法 チェンソーマン (10巻で完結したと早とちりしていた。11巻を待っている) (Reading) HIGH OUTPUT MANAGEMENT...
Renovate と Cypress でパッケージ更新とリリースを完全自動化する
https://tanaka.world/ のパッケージ更新とリリースを自動化した。パッケージ更新時に CI のジョブが全て成功したら master に自動マージし、本番リリースされるようにしている。 例: リリース時のワークフロー Renovate (Package Update) Renovate GitHub App - Renovate からリポジトリを選択して設定する。 Cypress (E2E) Cypress 手動でやっていた動作確認を Cypress で自動化した。各ページごとにざっくりテストしている。(テストコード) Cypress のテストコードも TypeScript で記述する。Cypress の型定義ファイルを読み込むと、アプリケーション側の Jest の型定義と競合するため tsconfig.cypress.json を別途追加している。 GitHub Actions (CI/CD) Merge 前に実行する用と、リリース用の2つのワークフローがある。 before-merge.yml は、Lint, Unit Test, Build, E2E Test を実行し、release.yml はそれに加えて Deploy を実行する。両者の違いは実行の起点となる branch と Deploy の有無だけなので、YAML インポート的なことがやりたいが、公式にはそのような仕組みは存在しないようだ。冗長だが一旦同じ内容を記述している。 大枠の処理は次の通り。 lint-test-build ジョブで生成されたアプリケーションビルド対して、E2E テストを実行 対象ブラウザは最低限 chrome, firefox, edge、それぞれ並列で実行される テストに失敗したら、スクリーンショットと動画をアップロード (release.yml の場合) テスト済みのビルドをデプロイ test-e2e: needs: lint-test-build strategy: matrix: node-version: [ 14....