将来、エンジニア志望の学生にとって、企業で働くエンジニアの“生の声”は、大きな刺激になるかと思います。「企業で働くとは?」「使っている技術は?」「どんなエンジニアがいるのか?」「働く環境は?」など、たくさんの疑問を解消するため、直接話を聞ける機会は、有意義ではないでしょうか。
そんな学生の悩みを解決するために、ミクシィグループでは、『Dive into mixi night!』と銘打ったエンジニアのLT(ライトニングトーク)を4ヶ月連続で開催。世界累計利用者数4,500万人を突破した「モンスターストライク」や、月間予約申し込み数が45万件を超える「minimo」など、ミクシィグループのサービスを作るエンジニアが様々な切り口で技術について語ります。
♯4では、「ISUCONに2年連続で通過するためのテクニック」や「新卒がモンスターストライクで初めて本番環境でメンテナンスに挑んだ話」など多岐に渡るLTを繰り広げました。
ISUCON本戦出場はそう簡単ではない
Webアプリの高速化を競う「ISUCON※1」本戦に2年出場した坂本は、「2年連続でISUCON予選通過するための技術」というお題でLTをスタート。
※1 http://isucon.net/お題となるWebサービスを決められたレギュレーションの中でチームで限界まで高速化を図るチューニングバトル
LT参加者に「予選参加の経験がある方」とアンケートをとったところ、予想以上に参加経験者が少なかったため、予選通過するためのテクニックやノウハウが少々話しづらい雰囲気に…。
気を取り直して「基本的にチーム戦のためSlackとGitHubの空リポジトリとHackmdがなどのツールがあると情報共有が捗るので便利」と説明。他にも、修正をすぐに反映して確認するためにログローテーションしてアプリを再起動するスクリプトやデプロイするコマンド、プロファイリングツールなどを準備しておくと効率的だそうです。
他のテクニックとして、「コードを見て、サービスが遅くなっている原因を見つけたとしても予測だけですぐに正そうとするのではなく、競技時間のロスに繋がる可能性があるため必ず計測しておくことが必要。また、自分が使用する言語に切り替えてベンチを取りながらその間にレギュレーションと実装をしっかり読み込む時間を確保すること。特に問題の意図、スコアの出し方などを1時間かけてでも理解するべきだ。それをチームで理解し作戦を立てて挑むことが鍵となる。あとは再起動検証を絶対に忘れてはいけない。」とテクニックを語りLTは終了しました。ちなみに、今年の結果は130位だったそうです。
坂本の登壇資料はコチラ
コードリーディングがどれだけ大事か
2018年4月に新卒社員として入社した本間が話すのは『新卒Customer Reliability Engineerの半年間』。CRE※2の具体的な業務内容やエンジニアとして成長していけるポイントについて話しました。
※2顧客信頼性エンジニアリング
「CREはゲーム、リアルイベント、ECサイトなど様々なカスタマーサポートに関わっており業務範囲が非常に広い。特にリポジトリがたくさんあるため、コードの必要な個所を素早く読み、実装を理解して、業務に移る必要がある。」と、コードリーディングの大切さについて説明しました。
コードリーディングの大切なポイントとしては「目的・ゴールを決める、クラスやメソッドなどの登場人物を洗い出す、目的・ゴールを忘れないように意識しておく。」と3つを指摘。「目的・ゴールを決める理由に、複雑なリポジトリやライブラリを読み進めると、終わりが見えなくなる可能性がある。必要な箇所のみを効率的に理解するために、ゴールを設定する必要がある。また、クラスやメソッドなどをざっくり把握することで、所要時間や工数などの見積もりが見えてくる。」とのこと。そして、「あるクラスを理解しようとすると、別のクラスを理解する必要が出てくるケースがあり、それが繰り返され無限に深みにハマってしまうことも想定される。だからこそ、目的・ゴールの意識が大事。」と、コードの記述と同様にコードリーディングがいかにエンジニアにとって大事であるか、入社して半年で学んだ内容をまとめていました。
本間の登壇資料はコチラ
技術書典で出典する書籍執筆の裏話
※#1でも登壇した松原のLTは、「ダイレクトマーケティング入門」と一見エンジニアから想定しにくいテーマ。よくよく聞くと「10月8日に開催される技術書のみのイベント『技術書典5』で出典する書籍「XFLAG Tech Note」に執筆者として関わったので、是非来場してほしい。」と、本イベントの参加者にダイレクトに告知するものでした。
これには会場に来ていた参加者も「え?これで終わり?」と不思議そうでしたが、しっかり説明は続きます。
松原は、「組版システム『LaTeX』をRuby で実装されたプログラムを介して呼び出す書籍執筆支援システム『Re:VIEW』を使用してこの書籍の一部を執筆している。学生時代に腕を磨いた『LaTeX』力を社会人になって使う機会がきた上、CIで色々試して見たいと思った。」とのことで、自動ビルドしてPDFをSlackにポストしたり、静的検査の実行結果をGitHubへコメントしたりする仕組みを試したそうです※3。
※3ブログ
「みなさん、是非きてください。」と改めて告知をして、LTは終了しました。
松原の登壇資料はコチラ
「信頼」の意味を解釈する
最後は、「運用未経験の新卒がモンストのメンテに入るまでにやったこと」の題名で2018年4月に入社した神谷のLTです。
「大規模サービスのモンストは、信頼でできている。というのも、本番環境にアクセスできるため悪事を働こうと思えば、とんでもない損害を作り出すことだってできる。だからこそ『この人に任せておけば大丈夫』という信頼を得ることが大事。」と、サービスに関わるエンジニアの心構えの話からスタートしました。
「その信頼は、システムの理解や周りのスタッフとのコミュニケーションによって形成される。とはいえ、それは一朝一夕でできるものではないため、比較的簡単な仕事でも着実にコミットを継続しながら知見やノウハウを学び、周りの信頼を少しずつ得ていくことが大事だ。」とのこと。
また、「失敗すればユーザーのデータが消えてしまい、大変な迷惑をかけてしまう可能性があり、緊張感がある。大規模サービスのメンテナンスを任せてもらうまで、◯◯ができるようになったから、次は△△に挑戦するなど、順を追ってきた。これからも次のステップの業務にチャレンジできるように、一歩一歩着実に対応して成長していきたい。」と、時系列にチャレンジした案件の事例を紹介しながら、トークは終了しました。
神谷の登壇資料はコチラ
本音を聞き出す
LT終了後には、軽食とドリンクをお供に、エンジニア社員とフランクに交流できる懇親会を開催。今回も登壇者、参加者それぞれに気になる技術についてシールでアピールしてもらいました。
参加した学生の声をアンケートにとったところ、
嬉しいご意見をいただきました。
4回にわたりライトニングトークイベント『Dive into mixi night!』を開催してきました。今回でイベント自体は終了となりますが、また違う形での技術イベントやLTを開催できれば嬉しい限りです。
– – – – – – – – – ※※※ - – – – – – – – –
■ pick up! ■
【バグを見つけたら、潰してしまえ!「Bug Shooting Challenge」初開催!】
【創業者がインターネットサービス業界の”未来”を語る限定イベントを開催しました!】