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.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.6k
システム障害との向き合い方 @sinamon129 #tokyogirlsrb
sinamon129
23
28k
よしなの話
sinamon129
1
260
バス因子が自分で バス因子を脱するための方法
sinamon129
26
13k
ファッションを扱うサービスのために、Elasticsearchのユーザー辞書とシノニム辞書を作った話
sinamon129
14
7.3k
フリルのキーワード検索の精度改善
sinamon129
9
5.2k
Other Decks in Programming
See All in Programming
プロポーザル駆動学習 / Proposal-Driven Learning
mackey0225
2
1.2k
Compose Multiplatform × AI で作る、次世代アプリ開発支援ツールの設計と実装
thagikura
0
130
速いWebフレームワークを作る
yusukebe
5
1.7k
Zendeskのチケットを Amazon Bedrockで 解析した
ryokosuge
3
290
私の後悔をAWS DMSで解決した話
hiramax
4
210
CloudflareのChat Agent Starter Kitで簡単!AIチャットボット構築
syumai
2
470
Updates on MLS on Ruby (and maybe more)
sylph01
1
180
時間軸から考えるTerraformを使う理由と留意点
fufuhu
15
4.6k
Deep Dive into Kotlin Flow
jmatsu
1
300
モバイルアプリからWebへの横展開を加速した話_Claude_Code_実践術.pdf
kazuyasakamoto
0
320
旅行プランAIエージェント開発の裏側
ippo012
2
890
MCPで実現するAIエージェント駆動のNext.jsアプリデバッグ手法
nyatinte
7
1.1k
Featured
See All Featured
Why You Should Never Use an ORM
jnunemaker
PRO
59
9.5k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
252
21k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.1k
Thoughts on Productivity
jonyablonski
70
4.8k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
61k
Building Applications with DynamoDB
mza
96
6.6k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
50k
Code Review Best Practice
trishagee
70
19k
Gamification - CAS2011
davidbonilla
81
5.4k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
139
34k
Building a Modern Day E-commerce SEO Strategy
aleyda
43
7.6k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
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に ⾏こう!