stefafafan の fa は3つです

"すてにゃん" こと id:stefafafan のブログです

Road to SRE NEXT@福岡に参加してきたのと、LT発表しました #srenext

Mackerel Drink Up 出張版@福岡に参加してきた #mackerelio - stefafafan の fa は3つです に続いて、翌日福岡で開催されたRoad to SRE NEXT@福岡に参加しました。

sre-lounge.connpass.com

Road to SRE NEXT とは?

元々SRE NEXTという東京で開催されている大きめのイベントがありますが(自分はまだ参加したことはありません)、東京にとどまらず地方のSREコミュニティも活性化したいというものだそうです。
blog.sre-next.dev

「Road to SRE NEXT」は、SREの普及とコミュニティの活性化を目的としたイベントシリーズです。このイベントは、SRE NEXT 2024の運営メンバーによって計画されています。イベントの主な目的は、地方におけるSREコミュニティの発掘と支援、SREの普及、およびSRE NEXT 東京開催への参加を促進することにあります。これにより、地方の技術者がSREとしてのキャリアを発展させるためのネットワーク構築の機会となればと考えています。また、新たな出会いを通じて、参加者同士が互いに学び合い、刺激を受ける環境を創出することも目標の一つと考えています。

Road to SRE NEXTを開催します! - SRE NEXT Staff Blog

そして今回の福岡開催がその最初の回で、今後京都、仙台、広島、の開催を予定しているそうです。

発表の感想

GMOペパボさんの発表、面白かったです。
speakerdeck.com

全然自分がやったことないような仕事をしているなと思いながら聞いていました。13営業日で最初のリリースをするための工夫や、オンプレミスのデータセンターのサーバを使っている理由など興味深かったです。「ハードウェアの違いでバグを踏んだけどKernelをアップデートしたら障害が解消した」みたいな、ローレベルなこと今時あまり意識しなくなってるので面白かった。

はてなの発表は結構知ってること多かったので懐かしいなと思ってみていましたが、はてなを経験したことない人にとっては歴史を知れてよかったのかなと思いました。各社のこういう歴史の話伺ってみたいですね。
speakerdeck.com

自分のLTについて

今回私はSREではないですが、SRE自体には少なからず興味は持っていたのと、LT枠が空いていたので参加することにしました。正直何話そうかちょっと悩みましたが、Observabilityって結局何だったんだっけという疑問をはっきりしたくなって話すことにしました。

LT資料を作る前に一旦オブザーバビリティ・エンジニアリングという本を読んで(結局読み終える前に当日迎えてしまったけど……)、そこからポイントを抽出して資料を作ることにしました。

何だかんだそれなりによくまとまった資料になったんじゃないかなと思います。
speakerdeck.com

一方で、自分が発表する少し前にはてなブックマークやXでサイバーエージェントさんのObservabilityに関するすごい資料があがってたので、「これ上位互換じゃん」と思いつつも、福岡で私の発表聞いた人が興味を持つ橋渡しができたらならまあいいかなと思ったり!私も以下の資料あとでちゃんと読もうと思いました。
speakerdeck.com

Road to SRE NEXTありがとう!

色んな話がきけて、会場の公式懇親会もそのあと何軒か続く二次会三次会でもいろんな方のSREに対する思いや、会社でSREingを広めたいんだけどみたいな悩みが聞けて楽しかったです。こういう感じで日本各所でつながりを作ってくれるのは尊い流れだなと思いました!ありがとうございました。

Mackerel Drink Up 出張版@福岡に参加してきた #mackerelio

先日福岡でMackerel Drink Up出張版に参加してきたので感想記事を書きます!
mackerelio.connpass.com

すてにゃんとMackerelの関係

私は新卒で入った会社が株式会社はてなで、最初に配属されたのがMackerelチームでした。大体2015年から2017年頃に在籍していたので、Mackerelがまだ今ほどの知名度を持つ前の頃を何となく知っています(以下の記事によるとMackerelは2014年にリリースされたとのこと、こんなかっこいいページあったんだ)。

ja.mackerel.io

当時からMackerelはコミュニティを大事にしていたので、Mackerel Meetup や Drink Up を定期的に開催して、開発チームと直接対話ができる機会を多く設けていました。とても懐かしいです(そのあと私はマンガチームに異動したり、カケハシへ転職したりして今に至ります)。

福岡は実は私の地元なので、このたび出張版が福岡で開催されると聞いてとても嬉しかったです。Mackerelとヌーラボさんといえば、2014年頃に導入事例記事が上がっていることも認識していたのですごく古くから繋がりがあってこうして10年経過しても一緒にイベントやっているのはすごいなと思ったり。

mackerel.io

当日の発表の感想

ヌーラボさんの「信頼性向上のためのTypetalkの障害対策の取り組み」という発表がとても面白かったです。障害対応フロー周りの整備がかなりしっかりされていて素朴に「すごいな」と思いました。ただ障害対応演習をやるだけでなく、いくつかの段階に分解して「障害時のコミュニケーションの改善にフォーカスした演習」「デプロイ後に切り戻しするためのRevertの演習」「実際に発生した過去の障害を題材にした演習」など色々紹介されていて私も参加したくなりました。

その上で手順書(Backlogに手順書があるところさすがちゃんとドッグフーディングしてるんだなと思いつつ)も障害直後に限らず、定期的なスパンでちゃんと見直しされているというのも尊いですね。

はてなの発表もたまたま障害や障害対応演習の話になってたので、当日は障害対応周りの話題がとても盛り上がりました。パネルディスカッションでは「いつこういった障害対応フォーマットが整備されるのか」とか「障害対応が好きな人と苦手な人の違いってなんだろう」みたいな話が出てきたりして面白かったです。

現職にも障害対応のためのフォーマットがあることは認識しているけど、まだ自分自身は障害を経験していないので、今後何か適用できることがあれば参考にしたいなと思ったりしました!

二次会

ところでヌーラボさんのオフィス近くにあった「まるたんや」美味しかったです。お通しで肉が出てきて体験もよかった。

『ソフトウェアエンジニアのキャリアパスが大体わかった気になる本』という同人誌を執筆して技術書典オンラインマーケットへ出展した #技術書典

今回初めて個人サークルとして技術書典に本を出すことにしました。以下のURLから500円で購入できます。
techbookfest.org

同人誌を出すに至る経緯

私は元々ブログに自分の考えをアウトプットしたり、勉強会で発表することをある程度得意としてきましたが、一から同人誌を作るという経験がありませんでした。技術書典については前職はてなにいた頃に、Hatena Tech Bookへ寄稿するという経験はありましたが、一冊丸々書くことなんてできるのだろうか?という思いからチャレンジしてみました。

テーマとしては、直近自分が書いたブログや考えてたことで組織周りのこと(特にエンジニアのキャリアについて)が書きやすいかなと思い、その辺りの内容を改めて整理し直すことにしました。

blog.stenyan.jp

blog.stenyan.jp

blog.stenyan.jp

blog.stenyan.jp

実務経験としては、前職でテックリードスクラムマスターしか経験していないのでそれ以外の役割についての実際はわかりませんが、現時点での自分の考えをまとめるのも十分価値があるのかもしれないと思って書いてみることにしました。

初めての同人誌の執筆で大変だったこと、面白かったことなど

今回オンラインのみの出展を選んだため、PDFさえ生成できればOKでした。Hatena Tech Bookの頃は id:kmuto さんが Re:VIEW の執筆環境を整備してくれた思い出があり、自分でもできるのではないかと利用してみました。上手くマークアップしていくと「本」っぽい形式になっていってとてもテンションが上がってよかったです。

内容については、最初のうちは「ほぼブログ記事書いているような気持ち」ではありましたが、ちゃんとした本のような構成や文章にするのに結構苦労しました。ある程度読みやすくしておきたかったので、一度書いたあとに何周か読み直しながら調整していきました。ChatGPT 4oにも校正を頼んだりしてとても便利にAIを活用しました。

恐らく同人誌の本当に大変な部分は印刷して部数を管理してサークル出展するところだと思いますが、今回そこはスキップしたので全然余裕はありました。もう一度オンライン限定で出展するのはできるイメージがありますが、オフライン出展は知見を全然持ち合わせていないので自信がないです。ただいずれどこかのタイミングでやってみようかなと思ったりしています。

そういえば表紙も自分で用意することに今回したのですが、原稿がギリギリまでやっていたこともあり余裕が少なかったです。それでも、Canvaを使ったらいい感じのデザインができそうとネット上の評判を見ていたのでそれを使ってシンプルめなものを用意することができました。

最後に目次を紹介しておきます。

目次

  • 第 I部 ソフトウェアエンジニアの仕事って何だっけ?
    • 第 1章 コードを書くだけがソフトウェアエンジニアじゃない!
    • 第 2章 「すごいエンジニア」とはなんだろう
      • 2.1 ソフトウェアエンジニアにはいろいろな「すごさ」がある
  • 第 II部 会社員として求められていること
    • 第 3章 事業への貢献
      • 3.1 会社員は事業への貢献を求められている
      • 3.2 事業への貢献とは
    • 第 4章 プロダクトのディスカバリーとデリバリー
    • 第 5章 「エンジニアリングマネージャーの 4象限」
  • 第 III部 「ソフトウェアエンジニア」には様々なロールが存在する
    • 第 6章 領域と範囲と責任
      • 6.1 領域
      • 6.2 範囲
      • 6.3 責任
    • 第 7章 テックリード
    • 第 8章 エンジニアリングマネージャー
      • 8.1 エンジニアリングマネージャーの領域、範囲、責任
        • 8.1.1 領域
        • 8.1.2 範囲
        • 8.1.3 責任
      • マネージャーは人を管理する?
    • 第 9章 スタッフエンジニア
      • 9.1 スタッフエンジニアとは
      • 9.2 スタッフエンジニアの領域、範囲、責任
        • 9.2.1 領域
        • 9.2.2 範囲
        • 9.2.3 責任
      • スタッフエンジニアはピープルマネジメントをしなくてよいのか?
    • 第 10章 CTO
      • 10.1 CTOの領域、範囲、責任
        • 10.1.1 領域
        • 10.1.2 範囲
        • 10.1.3 責任
      • CTOは偉いのか?
  • 第 IV部 キャリアパスを考える
    • 第 11章 どういう風にしてキャリアを考えるか
      • 11.1 やれること、やりたいこと、求められていることの3つの軸を意識する
    • 第 12章 自分の理想なキャリアに向かうためには
      • 12.1 理想とのギャップを埋めるためのプランを立てよう
      • 12.2 身近なエンジニアに相談しよう
  • 終わりに

『フロントエンド開発のためのセキュリティ入門』を読んだ

以前から気になっていた表題の本を読み終えた。

割とタイトル通りの内容で、代表的なWebアプリケーションの脆弱性 (XSSCSRF、クリックジャッキングなど*1)をそもそもどういうものなのかという紹介から対策についてわかりやすく解説されていた。ところどころハンズオン形式で実際に手を動かして脆弱性を体感し、対策の実装を入れるところまであって丁寧でした。

Webアプリケーションエンジニアとして働いてきた自分としてはわりと知ってる内容だなとササっと読んでいましたが、細かい部分で知らないこともあった(例えばDOMPurifyやSanitizer APIが紹介されていたけど自分はこのへんキャッチアップできてなかった)のでよかった。

github.com

developer.mozilla.org

フロントエンド開発のためのというタイトルになっているために、サーバサイド開発がメインだったりすると若干「自分は読まなくていいのかな」感が出てきそうな気がするけど、内容としては最初に述べたように代表的なWebアプリケーションの脆弱性をいくつか取り上げているので、Webアプリケーション開発に携わっていれば十分読む価値があると思いました。確かに、サーバサイド側の脆弱性対策はスコープ外でしたが、それについては他の本などで追加で学ぶと良さそう。

これからセキュリティについて知りたいWeb系エンジニア(新卒など)にまず読んでもらう本として、とても読みやすくわかりやすいのでおすすめできるかと思いました。

*1:OWASP Top 10が参照されていますが、全てカバーできているわけではなく、一部だけピックアップされています

TSKaigi 2024 に参加してきた #TSKaigi

こちらのイベントに参加したので感想をブログに書きます。
tskaigi.org

セッション

いくつかのセッションを聞いたり廊下に出て人と話したりしていました。セッションの中で印象に残ったものをいくつか軽く感想を書きます。

Keynote: What's New in TypeScript

初っ端からDaniel Rosenwasserさんが発表されていてすごい!と素朴に思いました。主にTypeScriptの新機能についてVS Codeでサンプルコードを出しながら紹介という感じでした。英語での発表でしたが日本語翻訳の文字も出ていて親切でした(ただ私は会場の後ろのほうにいたので字はあまりみえませんでしたが)。
devblogs.microsoft.com

Regular Expression Syntax Checking なんてものがあるのがすごいなと印象に残りました。

MicrosoftのDevBlogにこういう情報が載ってるなら追うべきだなと感じて、早速RSSフィードを個人Slackに流すことにしました。

フロントエンドもバックエンドもインフラも… 全てをTypeScriptで統一したらこうなった!

JSで書いていた経験から、TSになったらこんなに嬉しいことが!という話を最初されていて丁寧な発表だなと思ってみていましたが、途中から全部TSでやってます!Hono使ってます!Codespaces!って話になってめちゃくちゃモダンな構成でいい意味で意表を突かれました(?)

本題とはずれますが紹介されていた会社のハンドブックにテックリード研修とかが載っていて面白いなと思ったりしてみていました。
engineer.toggle.co.jp

TypeScript 関数型バックエンド開発のリアル

伊藤直也さんの発表、立ち見でみていたので全然パソコンでメモは取れなかったですが、Railway Oriented Programming というキーワードが印象に残りました。

Domain Modeling Made Functional という本も若干気になりましたが、積読本が無限にあるので読むとしても今すぐではないかな..と思ったり。

複雑なビジネスルールに挑む:正確性と効率性を両立するfp-tsのチーム活用術

実は私が4月から加入したチームのテックリードによる発表で応援もかねて聴講しました。課題の背景の紹介が丁寧でわかりやすくてよかった。

fp-ts というか、関数やエラーの合成ができるとこういう風にいいよね、みたいな感じだったのでこの前の伊藤直也さんの話と繋がるところがあると感じた。

余談ですがカケハシ入社前に僕も fp-ts に関するLTを申し込んでいました。TSKaigiが開催されている頃には入社してバリバリ fp-ts を使ってLTできるまでにはなっているであろうと見込んで応募していたけどそちらは落選してテックリードの話が通ったので結果オーライとなってよかった。

ハードウェアを動かすTypeScriptの世界

タイムテーブル的に他のトラックが人が沢山集まっていそうだったので、自分の知らない世界を聞くのも兼ねて聴講してみた。ハードウェアプログラミングは定型化されていないところを様々な選択肢やアイデアを考えて課題を解消するという面白さがあるみたいな話がされていて、とてもおもしろそうだなと思った。

確かにC言語でハードウェアプログラミングに入るよりは、自分の慣れ親しんだ言語(TS Kaigiの人ならTSとか)を使って入門するのは良さそう。

Denoで作る快適な “as Code” プラットフォーム

Shisho Cloudというプロダクトで、ユーザがGraphQLスキーマとTSを書いてカスタマイズできるというのはいいなと思ったり、「TS実行基盤はDenoベースのRust製サーバー」というエンジニアリングとして単純に楽しそうなことしてるな、いいなって思ったりした。DenoもRustも詳しくないので何もわからないが..

会場やブース

Openingやキーノートの時は一時的だけどトラック1と休憩室の間の仕切りが外されていて広くスペースが使えてよかった。懇親会のときもそうかな?「個人スポンサー優先席」みたいな概念があるのも面白かったですね。

自分の今所属している株式会社カケハシはコーヒースポンサーをしていたので、コーヒーブース周辺に自分もよくいました。3杯くらい飲んだ、美味しかった。ものをもらうのも嬉しいけどこういう飲み物食べ物系も嬉しい。

一点あるとしたら、トラック1と2/3で階が別れていたので若干行き来しづらかったのと、廊下がオープンスペース感があって少し長居しづらいかもというのはありました。でもスポンサーブースの近くにソファーがいくつかあったので疲れた時に休憩できて助かりました。

サイト (nitpick)

サイトのセッションのリンクとかが https://tskaigi.org/talks/drosenwasser みたいな感じになっていて、欲を言えば document.title にセッション名が入っていてほしいとか、来年以降2025年に同じ人が再び登壇する場合どういうURLの構成になるんだろうかとか細かいことを思ったりした。

全体的に楽しかった、ありがとうございました!

セッションも全部興味深かったし、色んな人と交流できて楽しい会でした!オフライン参加できてよかったです。また似たようなイベントがあったら参加して今度は登壇したいですね!