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
4.1k
生活発表@大江戸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.4k
システム障害との向き合い方 @sinamon129 #tokyogirlsrb
sinamon129
22
27k
よしなの話
sinamon129
1
230
バス因子が自分で バス因子を脱するための方法
sinamon129
26
12k
ファッションを扱うサービスのために、Elasticsearchのユーザー辞書とシノニム辞書を作った話
sinamon129
14
7.1k
フリルのキーワード検索の精度改善
sinamon129
9
5.1k
Other Decks in Programming
See All in Programming
今年のアップデートで振り返るCDKセキュリティのシフトレフト/2024-cdk-security-shift-left
tomoki10
0
200
アクターシステムに頼らずEvent Sourcingする方法について
j5ik2o
4
270
return文におけるstd::moveについて
onihusube
1
1.1k
fs2-io を試してたらバグを見つけて直した話
chencmd
0
230
20年もののレガシープロダクトに 0からPHPStanを入れるまで / phpcon2024
hirobe1999
0
480
今年一番支援させていただいたのは認証系サービスでした
satoshi256kbyte
1
250
「とりあえず動く」コードはよい、「読みやすい」コードはもっとよい / Code that 'just works' is good, but code that is 'readable' is even better.
mkmk884
3
360
nekko cloudにおけるProxmox VE利用事例
irumaru
3
430
Go の GC の不得意な部分を克服したい
taiyow
3
790
MCP with Cloudflare Workers
yusukebe
2
220
創造的活動から切り拓く新たなキャリア 好きから始めてみる夜勤オペレーターからSREへの転身
yjszk
1
130
バグを見つけた?それAppleに直してもらおう!
uetyo
0
180
Featured
See All Featured
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
251
21k
Intergalactic Javascript Robots from Outer Space
tanoku
270
27k
Build your cross-platform service in a week with App Engine
jlugia
229
18k
GitHub's CSS Performance
jonrohan
1030
460k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
2
290
Scaling GitHub
holman
458
140k
[RailsConf 2023] Rails as a piece of cake
palkan
53
5k
BBQ
matthewcrist
85
9.4k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
38
1.9k
The Invisible Side of Design
smashingmag
298
50k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
6
520
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
356
29k
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に ⾏こう!