Upgrade to Pro — share decks privately, control downloads, hide ads and more …

コードを書く隙間を見つけて生きていく技術/Findy 思考の現在地

コードを書く隙間を見つけて生きていく技術/Findy 思考の現在地

先達エンジニアに学ぶ 思考の現在地 Online Conference
の発表資料です
https://findy-code.io/events/v7KebEabaBDzh?fr=event_20240416

FUJIWARA Shunichiro

April 16, 2024
Tweet

More Decks by FUJIWARA Shunichiro

Other Decks in Technology

Transcript

  1. OSS 代表作 ecspresso 730 Amazon ECS デプロイツール github.com/kayac/ecspresso 2017〜 ECSサービスとタスク定義の管理(IaC)/デプロイを行うツール

    lambroll 309 AWS Lambda デプロイツール github.com/fujiwara/lambroll 2019〜 Lambda関数(とFunctionURL)の管理(IaC)/デプロイを行うツール 今ではどちらも国内で多くの企業で使われているツールに成長したが 元々は自分用に(仕事で)使うために作ったもの
  2. コードを書いていたら大人になっていた 1985年(10歳) MSXを買ってもらう 中学・高校 マイコンBASICマガジン世代 打ち込んだり投稿したり 1994年 大学進学 情報工学科へ 1998年(23歳)

    就職してWeb業界へ 当時はインフラもバックエンドもフロントも区別がなかったのでなんでも書いた 2011年(35歳) カヤックに転職(2社目) この時点で25年、物心ついてからコードを書いてない時期はほぼない 2014年(49歳) 今でもほぼ毎日なんらかのコードは書いている このまま老人になりたい
  3. SRE という仕事 SRE = Site Reliability Engineering (サイトを安定させるためにはなんでもやる) なんでも =

    インフラの構築構成、CI/CD、監視や可観測性 DBのクエリ改善、チューニング、アプリケーションコードの問題調査、レビュー 各種EoL対応、オンコール… つい細切れ・リアクティブな仕事になりがち リアクティブとプロアクティブを適切にバランスを取りたい リアクティブ = 自分じゃないところから降ってくる仕事 プロアクティブ = 自分が主導権を持てる仕事
  4. たとえば HashiCorp Terraform, Vault, Consul, Vagrant, Packer など大物ソフトウェアは有名だが それらに組み込まれている小さい部品も単体OSSになっている go-retryablehttp

    自動リトライとexponential backoff付きHTTPクライアント golang-lru インメモリのLRU Cacheライブラリ go-version SemVerの解析ライブラリ 小さくて使い勝手が良い道具を自分らで作って公開している
  5. 自分で設計したシステムをメンテする経験 システムをシンプルに作ってシンプルに保つ力は経験で得るしかない ひとつのプロダクトを… 1. 設計して 2. 実装して 3. テストして 4.

    リリースして 5. 導入して / 既存プロダクトと組み合わせて 6. issue対応やバグfixをして 7. (寿命を終えるところまで) 面倒を見る 大きなシステム、ビジネスのメインプロジェクトでこの経験を積むのは難しい
  6. Year GitHub Events Graph 2012 115 息子誕生 2013 151 2014

    495 2015 393 寝かしつけに消耗 毎日寝かしつけに2時間掛かるので自宅では何もできない時期
  7. Year GitHub Events Graph 2016 392 2017 639 ecspresso 開発開始(11月)

    2018 590 2019 732 息子小学校入学 イベント・勉強会参加 休日は年2回だけ(YAPC, ISUCON) 平日夜、少しコードが書けるようになってきた
  8. Year GitHub Events Graph 2020 1,070 コロナ禍 2021 1,043 2022

    1,593 2023 1,459 朝 のため平日夜は早寝する(のでコードは書かない) コロナ禍で外に飲みに行かなくなった → 金曜夜に しながらOSS開発するように 土日も多少は余裕ができるように
  9. fujiwara-ware いろいろ 全部 「仕事中に困ったこと」 を解決するために書いた(ので半分仕事、半分趣味) cfft CloudFront FunctionsのテストとCloudFront KVSの操作を便利にするやつ ecspresso

    Amazon ECSデプロイツール lambroll AWS Lambdaデプロイツール ecsta Amazon ECSのタスク操作を便利にできるツール tracer ECSタスクの一生を全部まとめてみるやつ
  10. 自分が育ててもらった ◦◦-ware 沢山あるけど、たとえば kazuho-ware 奥一穂(@kazuho)さん Q4M, h2o, Starlet, Server-Stater... kazeburo-ware

    長野雅広(@kazeburo)さん GrowthForecast, Proclet, Log::Minimal... djb-ware Daniel J. Bernstein.さん qmail, daemontools, djbdns, setlock... これらを実際に使って仕事をして、思想、設計、実装… いろいろな面で育ててもらった感がある