Slide 1

Slide 1 text

⽣活発表 @sinamon129

Slide 2

Slide 2 text

⾃⼰紹介 RiLi, inc. Chief Engineer RailsGirls Tokyo 5-9th coach          7th organizer ͠ͳ΋Μ @sinamon129

Slide 3

Slide 3 text

バス因⼦、転職する

Slide 4

Slide 4 text

Rubyコミュニティ との出会い

Slide 5

Slide 5 text

私とRubyコミュニティとの出会い • Rails Girlsのコーチに応募 • 知り合いとくにいない • 社会⼈2年⽬、Ruby/Railsな会社に戻ってきた時 • 「⼥性エンジニアが少ないことに対する違和感」 • プログラミング初めての⼈になら教えられる? • 勉強にもなりそうだし

Slide 6

Slide 6 text

豪華すぎるコーチ陣 • 顔合わせに⾏ったらなんか強そうな⼈がいっぱいいる • コミッタ・コントリビューター • 本書いてる • RubyはN年前から使ってます • 結構Asakusa.rbの界隈の⼈多い • 初回参加時のオーガナイザーは@youchanさん

Slide 7

Slide 7 text

飲みに⾏ってるのに混じった • RailsGirlsは2⽇開催 • 1⽇⽬終了後に、@amatsudaさんが飲みに⾏く⼈ を募っていた • @emorimaさん・@yuki24さん・@yotii23さん • Rubyコミュニティについて知る • 後⽇、kaminariのリポジトリをみてびびった

Slide 8

Slide 8 text

ところで Asakusa.rbはつよそう

Slide 9

Slide 9 text

なんで強そうか • Asakusa.rbに対するイメージ • Rubyつくってたりgemつくってたり、何かに コントリビュートしてたり、その辺りの深く て濃い話をしている • ⾃分とは次元が違う(理想的) • 今⽇発表するのもめっちゃびびってる

Slide 10

Slide 10 text

尊敬・かっこいい

Slide 11

Slide 11 text

今⽇はそういうかっこいい ⼈たちがたくさんいるので

Slide 12

Slide 12 text

強くないRubyistによる ⽣活発表

Slide 13

Slide 13 text

⽣活発表 3本⽴て♬ エンジニアやるぞ のきっかけ 好きなことで、⽣きていく そうだ、Aasakusa.rbに⾏こう!

Slide 14

Slide 14 text

エンジニアやるぞ の きっかけ

Slide 15

Slide 15 text

⼤学⽣のころのはなし • 3年⽣ つくばに住んでいました • プログラミングはちょっと(授業・サークル) • インターンでチーム開発ちょっとかじった • 知⼈が⼿伝ってたサービスを⼿伝うことに • 暇だし、おもしろそうだった • メディア+ログインなしのユーザー投稿

Slide 16

Slide 16 text

初期リリース(夏) • 企画(1⼈)開発3⼈(みんな学⽣) • 最初の分担 • Aさん:サーバサイド • Bさん(知り合い):フロント • Bさんの担当部分をお⼿伝い • サーバ直編集(悲劇の上書き合戦)

Slide 17

Slide 17 text

少しメディアに取り上げられたり • 需要期が数ヶ⽉先にある • サーバ直編集(git未使⽤)・⽣PHP • 書き直すことが決まる • サーバサイド:私とBさん • フロントエンド:Aさん • CakePHPのドキュメントを舐めるように⾒てなんとか書く • 初めての分厚めフレームワーク

Slide 18

Slide 18 text

LoadAverageがこんなに⾼いわけが… • 12⽉、リリース • さくらVPSの2Gサーバ(たしか) • ⾒れない・レスポンスが遅い • 習いたてほやほやのtopコマンド • 「やばい、攻撃されてる!!!!!」 • ただの⾼負荷 • DB同梱・DBにindexなし

Slide 19

Slide 19 text

砲撃予告 • 某W●Sに出るらしい • うち、テレビないんだけど… • サーバを8G(当時の最⼤スペック)のに「⽴て直し」 • DB同梱() • 放映⽇【前⽇】に徹夜で設定 • 当⽇は朝から東京に出て、就活の⾯接x2

Slide 20

Slide 20 text

徹夜で⼤事な設定は危険 • 「お名前.comのページが⾒える」っていわれる • そういえば… • お名前.comでネームサーバの設定を「初期設定に戻す」を 押した記憶がなくもない • 当時の予想できる状況 • 設定中に何を思ったのか初期設定に戻すをおす->設定で きたと思う(古いサーバにつながったまま) • ⾯接と⾯接の間にもう⼀回ファミレスで設定

Slide 21

Slide 21 text

いざ、テレビに出るぞ • GoogleAnalyticsとサーバにsshして待つ • GAのリアルタイムがいきなり1万とかになる • !!!サーバが⼀瞬で死ぬ!!!

Slide 22

Slide 22 text

No content

Slide 23

Slide 23 text

サーバってどうやったら落とさないで済むの • AWSにすればいいと聞いて • 2回⽬の需要期は、フルスクラッチで書き直して AWS • 普通に落とした • 結局⼤学卒業までサーバを落とさずに済んだことは なかった • 経験を積んでなんとでも落とさずに守り切りたい

Slide 24

Slide 24 text

いいこともたくさん • SNSからの流⼊が多く、ユーザーからのいい反応がみれた • サーバ落ちてるとサーバ担当しっかりしろって⾔われる • テレビ・まとめサイトなど流⼊経路ごとのアクセス傾向 • (コンテンツが良かったので)プログラム⾃体は複雑では なかったが、多くの⼈に使ってもらえた • ⾯接にこの話したら⼤体どうにかなって楽だった←

Slide 25

Slide 25 text

この⼀連の流れから

Slide 26

Slide 26 text

エンジニアとしてもっとやりたい • 安定運⽤できるアプリケーションを作りたい • インフラ・設計・アプリケーション • とりあえず落とさない(機会損失悲しい) • 使ってもらってフィードバックが返ってくるのとてもう れしい • 難しくなくても⼈に便利に使ってもらえる • みんなで作るの楽しい

Slide 27

Slide 27 text

余談 • 社会⼈になって安定稼働できるようになった • Railsでフルスクラッチで書き直し • インフラも設定しなおし • 当時⾜りなかったもの • メトリクスを⾒て考えて改善すること • (その他沢⼭あるけど)

Slide 28

Slide 28 text

何気なしにやったことが ⼈⽣に⼤きな影響になることが たまにあるから⾯⽩い

Slide 29

Slide 29 text

好きなことで、 ⽣きていく

Slide 30

Slide 30 text

最近Twitterで • 勉強とか育つとか • エンジニアはこうすべきみたいなのが乱⽴ • すきにやればいいやん

Slide 31

Slide 31 text

⾃分はこういう考えで こういうことやってきた

Slide 32

Slide 32 text

前提(私のことを知らない⼈への⽂脈提供) • 得意なこと • コミットメント(当事者意識) • 苦⼿なこと • 緊急じゃないことをやること • 抽象度が⾼いこと • 別ドメインのコンテキスト切り替え

Slide 33

Slide 33 text

好きなことで ⽣きてる

Slide 34

Slide 34 text

弊社(RiLi)について

Slide 35

Slide 35 text

学⽣時代から • 洋服や⼥性向けメディアが好き • 「⽬指すはプリ機」 • ユーザーはギークじゃない • 技術より体験を推している • 技術が詰まっている

Slide 36

Slide 36 text

職歴? • 事業会社 • エンジニアとして⼒をつける • エンジニアが事業企画できる • フリマアプリ(⼥性向け->ファッション->オールジャンル) • エンジニアとして⼒をつける • ファッション・⼥性向け • メディア&EC(now) • ファッション・⼥性向け&⽬指すところ

Slide 37

Slide 37 text

好きな事業領域 だから 夢中にできた

Slide 38

Slide 38 text

検索改善 • 検索ログデータの集計レポートを勝⼿に上げてた • 検索改善チームが⽴ち上がった • KPIが⾒えるダッシュボードをRailsで作る • 独⾃辞書作成・ロジック変更 • Elasticsearch ・ searchkick • このネタで2つぐらい登壇 -> 現職社⻑との遭遇

Slide 39

Slide 39 text

検索改善からの • Elasticsearchサーバの⾼負荷で荒ぶるのと戦う • 専任のインフラエンジニア不在の世界線 • 突然の死によるサーバ⽴て直し多発 • Elasticsearchについて情報を収集するように

Slide 40

Slide 40 text

深夜メンテ・負荷対策・バグ退治 • サービス愛 • 安定して使ってもらいたい気持ち • 深夜メンテへの憧れからのメンテスタメン化 • 問題の切り分け⽅を学ぶ • とりあえず数問題(負荷・バグ)と当たる • 1番にバグ原因を特定する競争(脳内)

Slide 41

Slide 41 text

⼤変なことを乗り越えることは⾎と⾁に • イレギュラーを知ることで実装時に考慮できる • 実装範囲外のコードリーディング • サーバ・ライブラリ等の挙動の把握

Slide 42

Slide 42 text

勉強しようってやるのは苦⼿なので • 興味があることを掘り下げる・やりたいと宣⾔する • 需要と供給のマッチする部分 • 緊急度が⾼いしやらないとサービスに損害が出るの で逃げられない状況を必死にやる • バージョンアップ・⼤型改修等の⾃分の⼤変に⾒え ることをやる • メンバーになる->慣れたら主導で進める

Slide 43

Slide 43 text

今楽しいのは… • 趣味でみてるものを誰がどのように作ってるのか⾒れる • メディアに出てこない部分 • 好きなもののデータが⾝の回りに落ちてる • どうやって調理しようかな • 会社の⼈が作るものが好き!! • ⾃分には作れないものを作れる⼈に囲まれてる • 私はみんなが得意じゃないところで⼒になる

Slide 44

Slide 44 text

好きなことを仕事に するのはいいぞ!

Slide 45

Slide 45 text

No content

Slide 46

Slide 46 text

そうだ、Aasakusa.rb に⾏こう!

Slide 47

Slide 47 text

近況

Slide 48

Slide 48 text

社内で1⼈のバックエンドエンジニア まあ⾊々経験したし 昔よりはどうにかなるんちゃう?

Slide 49

Slide 49 text

転職前直近⼀年ぐらい • 仕様を⼝から吐くマン • 仕様をまとめ • 既存のロジックに何かを付け⾜す • コードレビュー • バグ直す • パフォーマンス周り

Slide 50

Slide 50 text

転職後 • システム設計 • Rails newからサーバデプロイまで • 久々のインフラ(初めてのDocker・k8s) • フロントエンドがスムーズに開発できる環境を 整える(初めてのwebpack・vue.js)

Slide 51

Slide 51 text

だいぶん変わった

Slide 52

Slide 52 text

今必要なこと • どこを守り・どこを攻め(投資)するか • しがらみはあまりない • スピードを出したい • できるだけ後で後悔する設計にはしたくない • やったことないことにチャレンジしたい • 事業拡⼤時に遭遇しそうなことを考えながら

Slide 53

Slide 53 text

緊急度の低いことへの投資の重要性 • 技術わかってないと選択できない • 事業のジャンル的にエンジニア採⽤苦労しそう • 戦略的技術広報 • エンジニアにとって魅⼒的な状態を意識する • 実装もドライブしたい • 最初ちょっと⼤変だけどあとで空気にしたい

Slide 54

Slide 54 text

絶賛 • Wordpressで作られているメディアをサービス 拡⼤のためにRailsでフルリニューアル中 • Ruby on Rails 5.2.1 • ActiveStorage • Vue.js (webpack without webpacker) • GKE(k8s)

Slide 55

Slide 55 text

⽕曜⽇にAsakusa.rbに⾏ったら… • RailsGirlsの話したり、スライドの相談したり • みんな相談したりもくもくしたりしてた • 緊急度低いけど解決したいネタが結構あるので もくもくしに⾏きたい • ブログにしたり、ネタもありそうなのでgem とかコミットに挑戦したい

Slide 56

Slide 56 text

Asakusa.rbに ⾏こう!