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.5k
生活発表@大江戸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
270
バス因子が自分で バス因子を脱するための方法
sinamon129
26
13k
ファッションを扱うサービスのために、Elasticsearchのユーザー辞書とシノニム辞書を作った話
sinamon129
14
7.3k
フリルのキーワード検索の精度改善
sinamon129
9
5.2k
Other Decks in Programming
See All in Programming
ネストしたdata classの面倒な更新にさようなら!Lensを作って理解するArrowのOpticsの世界
shiita0903
1
180
モテるデスク環境
mozumasu
3
1.4k
AIのバカさ加減に怒る前にやっておくこと
blueeventhorizon
0
130
スマホから Youtube Shortsを見られないようにする
lemolatoon
27
34k
Introduce Hono CLI
yusukebe
6
3.3k
React Nativeならぬ"Vue Native"が実現するかも?_新世代マルチプラットフォーム開発フレームワークのLynxとLynxのVue.js対応を追ってみよう_Vue Lynx
yut0naga1_fa
2
1.9k
SidekiqでAIに商品説明を生成させてみた
akinko_0915
0
110
他言語経験者が Golangci-lint を最初のコーディングメンターにした話 / How Golangci-lint Became My First Coding Mentor: A Story from a Polyglot Programmer
uma31
0
480
理論と実務のギャップを超える
eycjur
0
200
What Spring Developers Should Know About Jakarta EE
ivargrimstad
0
640
kiroとCodexで最高のSpec駆動開発を!!数時間で web3ネイティブなミニゲームを作ってみたよ!
mashharuki
0
1k
SwiftDataを使って10万件のデータを読み書きする
akidon0000
0
250
Featured
See All Featured
Side Projects
sachag
455
43k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
116
20k
Stop Working from a Prison Cell
hatefulcrawdad
272
21k
A Tale of Four Properties
chriscoyier
161
23k
Code Reviewing Like a Champion
maltzj
526
40k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
253
22k
Building Adaptive Systems
keathley
44
2.8k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
285
14k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
23
1.5k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
3.7k
Git: the NoSQL Database
bkeepers
PRO
431
66k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
1.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に ⾏こう!