初めてのいい感じにスピードアップコンテスト(ISUCON10参加)

ISUCON10に参加した

以前、先輩社員がISUCONに参加しているのをみて
「なんか面白そう」と思っていたので

今回初めてISUCONに参加してきた。

isucon.net

yothio(僕)とAdacchi3(同期)とTommy(後輩)の3人で

みんな初めてなこともあり藁にもすがる思いで「チームビギナーズラックに全振り」というチーム名で参加した

役割とかその他

インフラはyothio
アプリとデータベースはAdacchi3とTommyという役割で進め

デプロイ関連は「本番反映お願い」という言葉がブロードキャストされたら

yothioの作業キューに割り込み処理として、git pull → 依存関係解決 → サービスの再起動というタスクが実行されるようになっている

最初の1時間でやったこと

ISUCONの過去問を2回ほどかいつまんで実施して、容量を把握し

もう2回を実践と同じくらいの時間確保して実施し、当日のトレーニング、流れの確認などを行った

そのため最初の1時間で誰が何をするかは決まっていたのはやはりよかった

自分の作業としては - sshでの接続確認 - 予め作成しておいたGithubリポジトリをリモードリポジトリに設定 - 初期ベンチの実行 - 参考実装切り替え

などの実際にインスタンスに入って作業を行うことをメインとした

f:id:shiotyan317:20200919013107p:plain
ISUCON練習時のHACKMDに記載した振り返り

ISUCON全部通して

結果的にやった作業としては - APサーバを unicorn → puma - botを弾く対応(未完全) - 1台LB兼DB, 2台AP構成 - mysql.confの変更 - ログ出力の削除(終盤)

競技中の最大スコアは 830程で
終了後の目安スコアは776と自分含むメンバーが初めてながらも健闘できたのはよかった

ただ、個人的な心残りは

mysqlのread-write構成にする途中で時間が来てしまったので出来なかった事
(これやれてればもう少しスコア上がったんだろう)

社内勉強会でもmysqlレプリケーションを取り上げていた事もあったので
そこをしっかり復習しておけば出来たんだろうと思っているのが心残りです(悔しい

ISUCONの感想としては

「難しい、焦る、上手いこと行かない」けれどそれを超えるほどの「楽しい、やったった感」があった。

特に自分は業務でインフラ関連を触り始めたのが5月くらいなので
そこから模擬戦の環境を自分で構築したり、参考となる記事を漁ったりというところが
前出来なかった事ができるようになったと感じたのでとても良い経験となった。

2019年を振り返って,2020年について

2019年を振り返って

昨年は色々あったのでGoogleカレンダーを見たり、過去のツイートを見ながら出来事を簡易にまとめてみました

時系列

  • 1月
    • 内定者アルバイト
    • OSC展示
    • 卒業制作
  • 2月
    • 卒業制作発表
    • droidkaigi2019参加
  • 3月
    • 名古屋へ引っ越し
  • 4・5月
    • 研修
  • 6月
    • 大阪勤務
    • React, TypeScriptについて触れる
  • 8月
    • Gatsby.jsについて触れる
  • 9月
    • 会社のイベントで登壇
  • 10月
    • 卒業制作のメンバーと開発をし始める
  • 11月
    • フロントエンドカンファレンス2019参加
  • 12月

振り返ってみて

業務について

業務において後手後手に回ってしまっていたと感じた

普段通り開発はしているものの、その技術に対する勉強の優先度をあげる時期が遅すぎる

例で言うとサイトの速度改善を行うとして、2ヶ月で分析から実装まで行う際に

1ヶ月が過ぎた後に優先度をあげて勉強しようするといった様に

プライベートについて

プライベートの開発についてはどれも中途半端になってしまっていると感じた

Gatsby.js触って自分のサイトを作ろうとした時もドメインだけ取得して、中途半端になってしまっている

読みたい本だけ買って本が積まれている状態になっている

その他

仕事とプライベートの技術的な話を振り返ると悪い点だけを挙げたが

「一年前と比べて何ができる様になったか」を比べてみたら結構あったと感じた

  • Railsについて
    • 一般的なアプリケーションの保守・改善が行える
    • 問題なくテストを書ける
  • Reactについて
    • Reactを用いたアプリケーションを作成できる
  • AWSについて
    • EC2,Lamdaについて一般的に使用できる
  • Webサイトの速度改善について
    • 具体的なアプローチをいくつか把握している

2020年について

今年については、アウトプットを多くする年にしようと思う

メインはこの2つになると思う

  • 自分の意見をもっと言う
  • 業務で学んだことをtwitterではなく、はてブ、Qiitaなどに投稿する

なので気がついたら「あれ?最近よっち記事書いてる?」とか言ってくれると後押しになりますので

今年もよろしくお願いします

昨年ツイートしたギャグについて

アウトプットしないことが損なこと

関係ない話

昨日会社の技術的に尊敬する人と面談をしたり

今日は会社の自由受講の研修を受けてきたりと

エンジニアをやっているがコミュニケーションやマインドのような箇所に

重きを置いているなと自分で自分のことを思っている

そして会社はそういった面を尊重してくれてるのは恵まれていると感じる。

本編

面談したときの内容として

尊敬する人に追いつくために似たことを行おうと思い

  • どんなインプットをしているのか?
  • どんなアウトプットをしているのか?

の二つを今回の面談で聞こうと考えて挑んだ

結果としては、自分の予想を的中していたので自分が思っていることをそのまま行動に移せばよくなった

面談の際に「あなたはその尊敬する人に【インプット、アウトプット、知的好奇心】のどれで上回れると思うか」を問われた所

「インプットは上回れるが、アウトプットは難しい」と答えた所である。

なぜ、アウトプットは難しいと考えていたのか

アウトプットをする目的について考えた時に

「 自分のため 」であると考えた

例えばアウトプットすることによって

  • 技術証明になる
  • 指摘を受けたら間違いがわかるので成長する
  • 考えをまとめることができる

などが出てきた

ただ、現状アウトプットをしていないためその理由を考えた所

  • アウトプットするのは優秀な人だと思っている

となった。

この時点でアウトプットを行う側は自分のために行うけれど

優秀な人しかしてはいけないと固定概念ができている

これってとても矛盾していると気付かされたから

僕はアウトプットをすることにした。