Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
生活発表@大江戸Ruby会議07
Search
sinamon129
September 16, 2018
Programming
2
4k
生活発表@大江戸Ruby会議07
大江戸Ruby会議07で生活発表したスライドです
sinamon129
September 16, 2018
Tweet
Share
More Decks by sinamon129
See All by sinamon129
ガチスタートアップ1人目のバックエンドエンジニアのリアルな戦略と奮闘 #railsdm2019 #railsdm2019b @sinamon129
sinamon129
14
6.3k
システム障害との向き合い方 @sinamon129 #tokyogirlsrb
sinamon129
22
27k
よしなの話
sinamon129
1
230
バス因子が自分で バス因子を脱するための方法
sinamon129
26
12k
ファッションを扱うサービスのために、Elasticsearchのユーザー辞書とシノニム辞書を作った話
sinamon129
14
7k
フリルのキーワード検索の精度改善
sinamon129
9
5.1k
Other Decks in Programming
See All in Programming
Macとオーディオ再生 2024/11/02
yusukeito
0
370
Contemporary Test Cases
maaretp
0
130
Amazon Bedrock Agentsを用いてアプリ開発してみた!
har1101
0
330
Nurturing OpenJDK distribution: Eclipse Temurin Success History and plan
ivargrimstad
0
870
Compose 1.7のTextFieldはPOBox Plusで日本語変換できない
tomoya0x00
0
190
Jakarta EE meets AI
ivargrimstad
0
580
シールドクラスをはじめよう / Getting Started with Sealed Classes
mackey0225
4
640
距離関数を極める! / SESSIONS 2024
gam0022
0
280
AWS Lambdaから始まった Serverlessの「熱」とキャリアパス / It started with AWS Lambda Serverless “fever” and career path
seike460
PRO
1
250
型付き API リクエストを実現するいくつかの手法とその選択 / Typed API Request
euxn23
8
2.2k
TypeScriptでライブラリとの依存を限定的にする方法
tutinoko
2
660
3 Effective Rules for Using Signals in Angular
manfredsteyer
PRO
0
110
Featured
See All Featured
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
16
2.1k
Building Flexible Design Systems
yeseniaperezcruz
327
38k
For a Future-Friendly Web
brad_frost
175
9.4k
The Art of Programming - Codeland 2020
erikaheidi
52
13k
Music & Morning Musume
bryan
46
6.2k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
109
49k
Raft: Consensus for Rubyists
vanstee
136
6.6k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
26
1.4k
Documentation Writing (for coders)
carmenintech
65
4.4k
The Invisible Side of Design
smashingmag
298
50k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
26
2.1k
The Cost Of JavaScript in 2023
addyosmani
45
6.7k
Transcript
⽣活発表 @sinamon129
⾃⼰紹介 RiLi, inc. Chief Engineer RailsGirls Tokyo 5-9th coach
7th organizer ͠ͳΜ @sinamon129
バス因⼦、転職する
Rubyコミュニティ との出会い
私とRubyコミュニティとの出会い • Rails Girlsのコーチに応募 • 知り合いとくにいない • 社会⼈2年⽬、Ruby/Railsな会社に戻ってきた時 • 「⼥性エンジニアが少ないことに対する違和感」
• プログラミング初めての⼈になら教えられる? • 勉強にもなりそうだし
豪華すぎるコーチ陣 • 顔合わせに⾏ったらなんか強そうな⼈がいっぱいいる • コミッタ・コントリビューター • 本書いてる • RubyはN年前から使ってます •
結構Asakusa.rbの界隈の⼈多い • 初回参加時のオーガナイザーは@youchanさん
飲みに⾏ってるのに混じった • RailsGirlsは2⽇開催 • 1⽇⽬終了後に、@amatsudaさんが飲みに⾏く⼈ を募っていた • @emorimaさん・@yuki24さん・@yotii23さん • Rubyコミュニティについて知る
• 後⽇、kaminariのリポジトリをみてびびった
ところで Asakusa.rbはつよそう
なんで強そうか • Asakusa.rbに対するイメージ • Rubyつくってたりgemつくってたり、何かに コントリビュートしてたり、その辺りの深く て濃い話をしている • ⾃分とは次元が違う(理想的) •
今⽇発表するのもめっちゃびびってる
尊敬・かっこいい
今⽇はそういうかっこいい ⼈たちがたくさんいるので
強くないRubyistによる ⽣活発表
⽣活発表 3本⽴て♬ エンジニアやるぞ のきっかけ 好きなことで、⽣きていく そうだ、Aasakusa.rbに⾏こう!
エンジニアやるぞ の きっかけ
⼤学⽣のころのはなし • 3年⽣ つくばに住んでいました • プログラミングはちょっと(授業・サークル) • インターンでチーム開発ちょっとかじった • 知⼈が⼿伝ってたサービスを⼿伝うことに •
暇だし、おもしろそうだった • メディア+ログインなしのユーザー投稿
初期リリース(夏) • 企画(1⼈)開発3⼈(みんな学⽣) • 最初の分担 • Aさん:サーバサイド • Bさん(知り合い):フロント •
Bさんの担当部分をお⼿伝い • サーバ直編集(悲劇の上書き合戦)
少しメディアに取り上げられたり • 需要期が数ヶ⽉先にある • サーバ直編集(git未使⽤)・⽣PHP • 書き直すことが決まる • サーバサイド:私とBさん •
フロントエンド:Aさん • CakePHPのドキュメントを舐めるように⾒てなんとか書く • 初めての分厚めフレームワーク
LoadAverageがこんなに⾼いわけが… • 12⽉、リリース • さくらVPSの2Gサーバ(たしか) • ⾒れない・レスポンスが遅い • 習いたてほやほやのtopコマンド •
「やばい、攻撃されてる!!!!!」 • ただの⾼負荷 • DB同梱・DBにindexなし
砲撃予告 • 某W•Sに出るらしい • うち、テレビないんだけど… • サーバを8G(当時の最⼤スペック)のに「⽴て直し」 • DB同梱() •
放映⽇【前⽇】に徹夜で設定 • 当⽇は朝から東京に出て、就活の⾯接x2
徹夜で⼤事な設定は危険 • 「お名前.comのページが⾒える」っていわれる • そういえば… • お名前.comでネームサーバの設定を「初期設定に戻す」を 押した記憶がなくもない • 当時の予想できる状況
• 設定中に何を思ったのか初期設定に戻すをおす->設定で きたと思う(古いサーバにつながったまま) • ⾯接と⾯接の間にもう⼀回ファミレスで設定
いざ、テレビに出るぞ • GoogleAnalyticsとサーバにsshして待つ • GAのリアルタイムがいきなり1万とかになる • !!!サーバが⼀瞬で死ぬ!!!
None
サーバってどうやったら落とさないで済むの • AWSにすればいいと聞いて • 2回⽬の需要期は、フルスクラッチで書き直して AWS • 普通に落とした • 結局⼤学卒業までサーバを落とさずに済んだことは
なかった • 経験を積んでなんとでも落とさずに守り切りたい
いいこともたくさん • SNSからの流⼊が多く、ユーザーからのいい反応がみれた • サーバ落ちてるとサーバ担当しっかりしろって⾔われる • テレビ・まとめサイトなど流⼊経路ごとのアクセス傾向 • (コンテンツが良かったので)プログラム⾃体は複雑では なかったが、多くの⼈に使ってもらえた
• ⾯接にこの話したら⼤体どうにかなって楽だった←
この⼀連の流れから
エンジニアとしてもっとやりたい • 安定運⽤できるアプリケーションを作りたい • インフラ・設計・アプリケーション • とりあえず落とさない(機会損失悲しい) • 使ってもらってフィードバックが返ってくるのとてもう れしい
• 難しくなくても⼈に便利に使ってもらえる • みんなで作るの楽しい
余談 • 社会⼈になって安定稼働できるようになった • Railsでフルスクラッチで書き直し • インフラも設定しなおし • 当時⾜りなかったもの •
メトリクスを⾒て考えて改善すること • (その他沢⼭あるけど)
何気なしにやったことが ⼈⽣に⼤きな影響になることが たまにあるから⾯⽩い
好きなことで、 ⽣きていく
最近Twitterで • 勉強とか育つとか • エンジニアはこうすべきみたいなのが乱⽴ • すきにやればいいやん
⾃分はこういう考えで こういうことやってきた
前提(私のことを知らない⼈への⽂脈提供) • 得意なこと • コミットメント(当事者意識) • 苦⼿なこと • 緊急じゃないことをやること •
抽象度が⾼いこと • 別ドメインのコンテキスト切り替え
好きなことで ⽣きてる
弊社(RiLi)について
学⽣時代から • 洋服や⼥性向けメディアが好き • 「⽬指すはプリ機」 • ユーザーはギークじゃない • 技術より体験を推している •
技術が詰まっている
職歴? • 事業会社 • エンジニアとして⼒をつける • エンジニアが事業企画できる • フリマアプリ(⼥性向け->ファッション->オールジャンル) •
エンジニアとして⼒をつける • ファッション・⼥性向け • メディア&EC(now) • ファッション・⼥性向け&⽬指すところ
好きな事業領域 だから 夢中にできた
検索改善 • 検索ログデータの集計レポートを勝⼿に上げてた • 検索改善チームが⽴ち上がった • KPIが⾒えるダッシュボードをRailsで作る • 独⾃辞書作成・ロジック変更 •
Elasticsearch ・ searchkick • このネタで2つぐらい登壇 -> 現職社⻑との遭遇
検索改善からの • Elasticsearchサーバの⾼負荷で荒ぶるのと戦う • 専任のインフラエンジニア不在の世界線 • 突然の死によるサーバ⽴て直し多発 • Elasticsearchについて情報を収集するように
深夜メンテ・負荷対策・バグ退治 • サービス愛 • 安定して使ってもらいたい気持ち • 深夜メンテへの憧れからのメンテスタメン化 • 問題の切り分け⽅を学ぶ •
とりあえず数問題(負荷・バグ)と当たる • 1番にバグ原因を特定する競争(脳内)
⼤変なことを乗り越えることは⾎と⾁に • イレギュラーを知ることで実装時に考慮できる • 実装範囲外のコードリーディング • サーバ・ライブラリ等の挙動の把握
勉強しようってやるのは苦⼿なので • 興味があることを掘り下げる・やりたいと宣⾔する • 需要と供給のマッチする部分 • 緊急度が⾼いしやらないとサービスに損害が出るの で逃げられない状況を必死にやる • バージョンアップ・⼤型改修等の⾃分の⼤変に⾒え
ることをやる • メンバーになる->慣れたら主導で進める
今楽しいのは… • 趣味でみてるものを誰がどのように作ってるのか⾒れる • メディアに出てこない部分 • 好きなもののデータが⾝の回りに落ちてる • どうやって調理しようかな •
会社の⼈が作るものが好き!! • ⾃分には作れないものを作れる⼈に囲まれてる • 私はみんなが得意じゃないところで⼒になる
好きなことを仕事に するのはいいぞ!
None
そうだ、Aasakusa.rb に⾏こう!
近況
社内で1⼈のバックエンドエンジニア まあ⾊々経験したし 昔よりはどうにかなるんちゃう?
転職前直近⼀年ぐらい • 仕様を⼝から吐くマン • 仕様をまとめ • 既存のロジックに何かを付け⾜す • コードレビュー •
バグ直す • パフォーマンス周り
転職後 • システム設計 • Rails newからサーバデプロイまで • 久々のインフラ(初めてのDocker・k8s) • フロントエンドがスムーズに開発できる環境を
整える(初めてのwebpack・vue.js)
だいぶん変わった
今必要なこと • どこを守り・どこを攻め(投資)するか • しがらみはあまりない • スピードを出したい • できるだけ後で後悔する設計にはしたくない •
やったことないことにチャレンジしたい • 事業拡⼤時に遭遇しそうなことを考えながら
緊急度の低いことへの投資の重要性 • 技術わかってないと選択できない • 事業のジャンル的にエンジニア採⽤苦労しそう • 戦略的技術広報 • エンジニアにとって魅⼒的な状態を意識する •
実装もドライブしたい • 最初ちょっと⼤変だけどあとで空気にしたい
絶賛 • Wordpressで作られているメディアをサービス 拡⼤のためにRailsでフルリニューアル中 • Ruby on Rails 5.2.1 •
ActiveStorage • Vue.js (webpack without webpacker) • GKE(k8s)
⽕曜⽇にAsakusa.rbに⾏ったら… • RailsGirlsの話したり、スライドの相談したり • みんな相談したりもくもくしたりしてた • 緊急度低いけど解決したいネタが結構あるので もくもくしに⾏きたい • ブログにしたり、ネタもありそうなのでgem
とかコミットに挑戦したい
Asakusa.rbに ⾏こう!