「自分」をまるごと活かす!私が“CRE”というキャリアを選んだ理由/devsumi2018-cre

 「自分」をまるごと活かす!私が“CRE”というキャリアを選んだ理由/devsumi2018-cre

Developers Summit 2018 での登壇資料です。

Dffbff07156358d0b83f728a3b3b0b8c?s=128

Daisuke Inoue

February 16, 2018
Tweet

Transcript

  1. 3.

    ࣗݾ঺հ • 井上⼤輔 • a-know / @a_know • 株式会社はてな シニアエンジニア

    • Mackerelチーム CRE • CRE = Customer Reliability Engineer • 略歴 • システムエンジニア:約6年 • Webアプリケーションエンジニア:約5年 • CRE:約1年半 〜 現在
  2. 7.

    $ cat /proc/meminfo MemTotal: 1015472 kB MemFree: 81576 kB MemAvailable:

    82920 kB Buffers: 0 kB Cached: 94076 kB SwapCached: 27000 kB Active: 419108 kB Inactive: 391240 kB Active(anon): 359752 kB Inactive(anon): 366444 kB Active(file): 59356 kB Inactive(file): 24796 kB Unevictable: 0 kB Mlocked: 0 kB SwapTotal: 2097148 kB SwapFree: 1857868 kB Dirty: 32 kB Writeback: 0 kB AnonPages: 708588 kB Mapped: 23396 kB Shmem: 9924 kB Slab: 79900 kB SReclaimable: 31160 kB SUnreclaim: 48740 kB KernelStack: 5920 kB PageTables: 10372 kB NFS_Unstable: 0 kB Bounce: 0 kB WritebackTmp: 0 kB CommitLimit: 2604884 kB Committed_AS: 1375884 kB VmallocTotal: 34359738367 kB VmallocUsed: 10772 kB VmallocChunk: 34359709948 kB HardwareCorrupted: 0 kB AnonHugePages: 92160 kB HugePages_Total: 0 HugePages_Free: 0 HugePages_Rsvd: 0 HugePages_Surp: 0 Hugepagesize: 2048 kB DirectMap4k: 90112 kB DirectMap2M: 958464 kB 公式エージェントソフトウェア (mackerel-agent)
  3. 9.

    $3&ɾݱࡏͷओͳۀ຿ • テクニカルサポート • 様々な環境を監視する⽅法について • エージェントの出⼒するエラーの調査・回答 • etc. ERROR

    <command> Error while updating host specs: API error. status: 403, msg: api request failed WARNING <command> Failed to post metrics value (will retry): API error. status: 403, msg: api request failed INFO <main> Starting mackerel-agent version:0.48.1, rev:f71d19b, apibase:https://api.mackerelio.com WARNING <command> API error. status: 403, msg: status code is not 200 command.Prepare failed: failed to prepare host: failed to find this host on mackerel (You may want to delete file "/var/lib/mackerel-agent/id" to register this host to an another organization): API error. status: 403, msg: status code is not 200 ※エラーログの⼀例
  4. 11.

    $3&ɾݱࡏͷओͳۀ຿ • セールス(顧客活動) • 導⼊検討中のお客様 • 概要説明・活⽤事例・発展的な応⽤例の解説 • 既にご利⽤のお客様 •

    ユーザーヒアリング・アップデート内容の解説 • ※ 右の写真はイメージです • スーツを着たことは⼀度もありません ※イメージです
  5. 14.

    $3&ʢ $VTUPNFS3FMJBCJMJUZ&OHJOFFSʣ • 各⼈の得意領域で役割分担して取り組む • 技術のバックグラウンドが重要な職種 • コードが読める、書けることはさることながら • カーネル・システムパフォーマンスの仕組みなどについての理解

    • トレンドの技術に対するアンテナの⾼さも必要 • ⼈に伝える、教えるために・⾃分⾃⾝の理解度が重要 • CREのミッション:お客様のプロダクトに対する信頼を築くこと
  6. 19.

    ʮࣗ෼ʯͱ͸ʁ ʙ ࢲͷ৔߹ • 『株式会社はてな Mackerelチーム CRE』という “⾃分” • ⽣まれて今までの過程で、いろんなことを体験してきた

    “⾃分” • 3年ほど前に結婚し、毎⽇楽しく過ごしている “⾃分” • 将来、実現したいと思っていることがある “⾃分”
  7. 36.

    ೖࣾ೥໨ɾӡ໋ͷຊͱͷग़ձ͍ • 「へんな会社」のつくり⽅ • 近藤淳也 著, 翔泳社 • 2006年刊⾏ •

    はてな(2005年当時)について、創業者 である近藤が記した本 • そこで紹介されていた「取り組み」に、 私はとてつもない衝撃を受けました
  8. 39.

    ೖࣾ೥໨ɾӡ໋ͷຊͱͷग़ձ͍ • そのどれもが今までに⾒たことも聞いたこともないもの • そして、今、⾃分がいるところにもないもの • ⼀番近い感情としては “嫉妬” だったかもしれません •

    「こんなふうにプログラミングを仕事にしているなんて、ずるい! 」 • そしてすぐに、次の感情が。 • 「もしかしたら、⾃分もこんな仕事の仕⽅ができるかもしれない!」 • 「そうなりたい!!」
  9. 40.

    キャリア やりたい・なりたい・憧れ 好き・できる ・プログラミングスキル(COBOL, Java) ・詳細設計〜実装〜単体テスト〜システムテスト の実務経験 ・実装リーダー担当経験 ・対外折衝経験 ・⾃分で開発したものを、多くの⼈に使ってもらいたい

    ・はてなに⼊りたい(そこで実践されているようなサービス開発を⾃分もやってみたい) ・書道や珠算など ・バドミントン ・HTML, CGI の利⽤ ・インターネット ・画像処理や機械学習の概念の理解 ・⼈に何かを教えることの経験
  10. 41.

    ͸ͯͳʹೖΔͨΊʹ • 今の仕事に取り組みつつ、はてなに⼊るための努⼒もスタート • ⾃分について多⾓的に知ってもらえるように......! • ブログを書き始めてみたり • 地元技術コミュニティで登壇・発表してみたり •

    ⾃分の実⼒を⽰せるようななにかをプログラミングで作ってみたり • まずはひたすら “写経” • 出来たものにアレンジを加えて、オリジナルなアプリケーションに。
  11. 44.

    キャリア やりたい・なりたい・憧れ 好き・できる ・プログラミングスキル(COBOL, Java) ・要件定義〜基本設計〜詳細設計〜実装〜単体テスト〜システムテスト の実務経験 ・実装リーダー・プロジェクトリーダー担当経験 ・対外折衝経験 ・⾃分で開発したものを、多くの⼈に使ってもらいたい

    ・はてなに⼊りたい ・書道や珠算など ・バドミントン ・ブログの更新 ・HTML, CGI の利⽤ ・インターネット ・画像処理や機械学習の概念の理解 ・⼈に何かを教えることの経験 ・Java GUI アプリケーション開発 ・GAE を⽤いたWebアプリケーション開発の経験 ・登壇、⼈前で話すこと
  12. 47.

    キャリア やりたい・なりたい・憧れ 好き・できる ・プログラミングスキル(COBOL, Java) ・要件定義〜基本設計〜詳細設計〜実装〜単体テスト〜システムテスト の実務経験 ・実装リーダー・プロジェクトリーダー担当経験 ・対外折衝経験 ・⾃分で開発したものを、多くの⼈に使ってもらいたい

    ・はてなに⼊りたい ・書道や珠算など ・バドミントン ・ブログの更新 ・HTML, CGI の利⽤ ・インターネット ・画像処理や機械学習の概念の理解 ・⼈に何かを教えることの経験 ・Java GUI アプリケーション開発 ・GAE を⽤いたWebアプリケーション開発の経験 ・登壇、⼈前で話すこと ・初対⾯の⼈と話すこと
  13. 48.

    ࣾ໨ͰͷΩϟϦΞΛελʔτ • From : 地元・岡⼭のSI企業 • To : 渋⾕のWeb 企業・

    Java / Google App Engine による開発 • 社員数名、正真正銘のド・ベンチャー企業 • Webアプリケーション開発に関する技術・知識を習得できる⽇々 • ベンチャー独特のスピード感、成果にコミットすることの重要性も • 地元の良さ・素晴らしさを再認識 • とあるハッカソンイベントに参加し、優勝。
  14. 50.

    キャリア やりたい・なりたい・憧れ 好き・できる ・プログラミングスキル(COBOL, Java) ・要件定義〜基本設計〜詳細設計〜実装〜単体テスト〜システムテスト の実務経験 ・実装リーダー・プロジェクトリーダー担当経験 ・GAE を⽤いたWebアプリケーション開発の経験

    ・対外折衝経験 ・⾃分で開発したものを、多くの⼈に使ってもらいたい ・地元・岡⼭が好き ・はてなに⼊りたい ・書道や珠算など ・バドミントン ・ブログの更新 ・HTML, CGI の利⽤ ・インターネット ・画像処理や機械学習の概念の理解 ・⼈に何かを教えることの経験 ・Java GUI アプリケーション開発 ・ハッカソンイベントでの優勝体験 ・登壇、⼈前で話すこと ・初対⾯の⼈と話すこと
  15. 52.

    ౓໨ͷస৬ɾࣾ໨ • 開発⾔語は Ruby に • XP・アジャイル(スクラム)開発を取り⼊れた開発スタイル • カンバンによるタスク管理・可視化 •

    定期的なリリースと素早い改善の繰り返し • チームの中で伸び伸びと開発に取り組むことができた • ⼊社数ヶ⽉後にはチームリーダーも任せてもらえた
  16. 54.

    キャリア やりたい・なりたい・憧れ 好き・できる ・プログラミングスキル(COBOL, Java, Ruby) ・インフラ開発の初歩 ・要件定義〜基本設計〜詳細設計〜実装〜単体テスト〜システムテスト の実務経験 ・各種リーダー担当経験

    ・Webアプリケーション開発の経験 ・その他各種開発スキル活⽤経験(TDD, Infrastructure as Code など) ・対外折衝経験 ・⾃分で開発したものを、多くの⼈に使ってもらいたい ・地元・岡⼭が好き ・はてなに⼊りたい ・書道や珠算など ・バドミントン ・ブログの更新 ・HTML, CGI の利⽤ ・インターネット ・画像処理や機械学習の概念の理解 ・⼈に何かを教えることの経験 ・Java GUI アプリケーション開発 ・ハッカソンイベントでの優勝体験 ・登壇、⼈前で話すこと ・初対⾯の⼈と話すこと
  17. 56.
  18. 57.

    キャリア やりたい・なりたい・憧れ 好き・できる ・プログラミングスキル(COBOL, Java, Ruby) ・インフラ開発の初歩 ・要件定義〜基本設計〜詳細設計〜実装〜単体テスト〜システムテスト の実務経験 ・各種役割の担当経験(各種リーダー/スクラムマスター/新卒エンジニア受け⼊れ/採⽤活動)

    ・Webアプリケーション開発の経験 ・その他各種開発スキル活⽤経験(TDD, Infrastructure as Code など) ・対外折衝経験 ・⾃分で開発したものを、多くの⼈に使ってもらいたい ・地元・岡⼭が好き ・はてなに⼊りたい ・⾃分だからこそできることを仕事にしたい ・書道や珠算など ・バドミントン ・ブログの更新 ・HTML, CGI の利⽤ ・インターネット ・画像処理や機械学習の概念の理解 ・⼈に何かを教えることの経験 ・Java GUI アプリケーション開発 ・ハッカソンイベントでの優勝体験 ・登壇、⼈前で話すこと ・初対⾯の⼈と話すこと
  19. 58.

    ӡ໋ͷग़ձ͍ɾͦͷ̎ • ふと Mackerel 公式イベントに参加。 • セールスエンジニア職(CRE職の前⾝)の存在を知る • 「はてなに⼊りたい」という気持ちは依然として持っていた •

    「エンジニアではあり続けたいけど、開発以外でも貢献することに 興味がある⾃分にも合っていそう」 • “はてなのセールスエンジニア” である、という謎の安⼼感 • 応募。内定を獲得
  20. 61.

    • Mackerel 関連技術検証、テクニカルサポート • これまでのエンジニアとしての “⾃分” • プリセールス • これまでのエンジニアとしての

    “⾃分” • 初対⾯の⼈とも苦なく話せる“⾃分” • セミナーなどの実施 • これまでのエンジニアとしての “⾃分” • ⼈に何かを教えることの経験、登壇経験を持つ “⾃分” • 公式ブログや技術⽂書の執筆 • ブログ・⽂章を書くことが好きな “⾃分”
  21. 66.

    ৬Ҭͷ֦ுͱਂ۷Γ • 「他でもない、“はてな” のセールスエンジニアなんだから」 • 「“はてな” のセールスエンジニアなら、こんなこともやりそう」 • テクニカルサポートのクオリティの向上 •

    ポストセールスの積極実施 • 開発(プラグイン機能拡張など) • などなど • 新たなメンバーも加わり、その活動の幅はより多岐に渡った
  22. 69.

    l$3&zͷ஀ੜ • 晴れて、Customer Reliability Engineer (CRE) が誕⽣ • エンジニアリングを武器として、顧客の成⻑・満⾜度を向上 •

    それによるプロダクトのビジネス成⻑に貢献していく職種 • 多くのことが “キャリア” になった
  23. 70.

    キャリア やりたい・なりたい・憧れ 好き・できる ・プログラミングスキル(COBOL, Java, Ruby) ・インフラ開発・低レイヤー技術の初歩 ・要件定義〜基本設計〜詳細設計〜実装〜単体テスト〜システムテスト の実務経験 ・各種役割の担当経験(各種リーダー/スクラムマスター/新卒エンジニア受け⼊れ/採⽤活動)

    ・Webアプリケーション開発の経験 ・その他各種開発スキル活⽤経験(TDD, Infrastructure as Code など) ・対外折衝・営業経験 ・カスタマーサクセス ・技術広報活動 ・技術関連⽂書の執筆 ・⾃分で開発したものを、多くの⼈に使ってもらいたい ・地元・岡⼭が好き ・⾃分だからこそできることを仕事にしたい ・書道や珠算など ・バドミントン ・ブログの更新 ・HTML, CGI の利⽤ ・インターネット ・画像処理や機械学習の概念の理解 ・⼈に何かを教えることの経験 ・Java GUI アプリケーション開発 ・ハッカソンイベントでの優勝体験 ・登壇、⼈前で話すこと ・初対⾯の⼈と話すこと
  24. 77.

    ʮཉٻʯ • (名) スル 1. ほしがり求めること。願い求めること。 「−を満たす」 2. 〘⼼〙 ⽣活体の内部で⽣理的・⼼理的に必要なものが不⾜または

    ⽋乏しているとき、それを補うための⾏動を起こそうとする緊張 状態。動物や⼈間を⾏動にかりたてる原因となる。要求。 Weblio 辞書 - https://www.weblio.jp/content/%E6%AC%B2%E6%B1%82
  25. 83.
  26. 86.

    l౤ࢿzʹର͢Δͻͱͭͷߟ͑ํ • 「“⾃分の持つ能⼒や資質” はこれしかないんだ」と思い込むこと • ちょっともったいない? • ⾊んなことをやってみることを、 “無駄” ではなく

    “投資” と考えてみる • とはいえ、志向に合わないものを無理やりやる必要はない • 私にとって “マネージャーになる” という選択肢がそうであったように • “いろんなことを経験すること” に前向きになってもいいのかな? • いろんな経験を活かせる仕事はあるかもしれないし、 • 今後新しく出てくるかもしれない!
  27. 92.

    ޾ӡ͚ͩͬͨͩʁ • はてなにおける “セールスエンジニア” を “CRE” という職種に 昇華できたことを、私はとても誇りに思っています • いろんなバックグラウンドを持つ

    “エンジニア” が楽しく活躍で きるようなステージを増やしていきたい • 今後は「幸運」などではなく! • 「エンジニアを続けるか」「マネージメントの道に進むか」といった 少ない選択肢しかないことは理不尽
  28. 94.
  29. 97.

    ʮมΘΔ΋ͷ ʷ มΘΒͳ͍΋ͷʯࢲͷߟ͑ • 技術を磨くことに加えて、活かし⽅も、⼀緒に考えてみてもいいかも。 • 技術に “⾃分ならではのなにか” を掛け合わせることも、楽しく⽣きて いくためには⼤事そう

    • “欲求” を満たすために! • いろいろな “⾃分” を持つエンジニアの皆さんの経験、それを活かす ことができるステージを作っていくことも、私達の使命