はらへり日記

腹に弾丸

2018年の目標

去年

sota1235.hatenablog.com

進捗はこんなとこ。妥当。

  • データベーススペシャリスト/情報セキュリティスペシャリスト取得
    • 朝起きれないしそもそも勉強全然できなかった
    • 転職しちゃったし別軸で普段やらないことを勉強してたから興味が薄れてしまった感
  • PHPカンファレンストーク採択
    • 東京と福岡で登壇できた
  • ❌DDDに入門する
    • 必要性を感じられず入門せず
    • 少なくとも今の職場、今の局面では今の実力でこなせると思ってる
    • 必要になったら勉強する
  • ✅英語勉強する(最低でもカンファレンスでスムーズに質問できるレベルまで)
    • スムーズに質問はできると思う
    • し、練習すれば発表もできそう
  • ❌趣味で作ってる音楽再生アプリを完成させる
    • 全く手つけてない…
  • PHPのViewライブラリ作る
    • 仕事でも趣味でもWebアプリ全然触ってないしモチベーションがなかった

今年

テーマ

今年のテーマは2つある。

1つ目があらゆることに対してハードルを上げること。

転職してみんな自分より強いという環境に変わって気づいたのだけど、私は割といろんなことに対してハードルが低い。

例えば開発環境の快適さに求めるハードルとかサービスに求めるハードルとか生活に求めるハードルとか。

言い換えるとエンジニアの美徳を全然追い求められてない感が強いのでそのあたりは強く意識していきたい。5000兆円欲しい。

2つ目はインプットを今一度増やすこと。

一昨年までは実力不足もあったし自分自身のプレゼンスを上げたくてひたすら勉強してはアウトプットしてってサイクルを回してたんだけど2017年はあまりそういうことをしてなかった。

理由の1つとして前職では技術力の棍棒で社内で暴れる方針だったのに変わって今は技術の棍棒はみんな持ってるからみんなで何をどうよくしようかという感じで、インプットが必要なら仕事中にできたしあまり必死に勉強した記憶がない(その分技術以外のインプットはしていた)。

今年は今一度、というか今後もずっと走り続けるために改めてインプットを意識する年にしたい。目指せフルスタッッックエンジニァ。

TODO

  • 音楽再生アプリの完成
    • 今年こそ
    • 去年は趣味でほとんどプログラムを書けなかった
  • 技術書を12冊読む
    • 積読の中で重いやつがいっぱいある
  • TOEIC 800点
  • 海外カンファレンス登壇
    • 去年国内何個か登壇してしんどかったので数はあんまり目標にしない
    • 英語で発表したい

今年も

よろしくお願いします。

腰が痛くなった(現在進行系)話

この記事は

Darkアドベントカレンダー25日目の記事です。

adventar.org

ヒーローは遅れて登場するのです。

9割完成してた下書き吹っ飛んだのでもう箇条書きで許してください。

腰が痛い時系列

  • 2016年 夏 腰がしんどい
    • たまにひどいと靴下履くのがしんどいくらいしんどい
  • 2017年 9月 めちゃくちゃ重い荷物を持ち歩く
  • 翌日、目覚めると腰が曲がらない
    • 文字通り、曲がらない
    • なぜか右足も痛い
  • 今まではひどくても3日程度で治ったのに1週間経っても状況が改善しない
  • 泣く泣くお医者さんへ
    • 僕「腰が痛いんです」
    • 医者「レントゲン撮るかぁ」
    • 医者「レントゲン的には問題ないけどヤバそうだしMRI行ってきてちょ」
  • 大病院でMRI検査を受ける
    • 紹介状ありでも5000円程度
    • MRIやばい、お前の体を隅々まで調べてやるよ感が半端ない検査だった
  • MRI検査の結果が出る
    • 医者「ほら、ここわかる?」
    • 医者「めっちゃ椎間板出てるw」
    • 医者「椎間板ヘルニアだね」
    • 僕「どうすればいいですか?」
    • 医者「一ヶ月様子見だね、とりあえずコルセット注文しようか」
    • 医者「大丈夫、僕が若い頃なったときは何もしなくても治ったから」
    • 僕「んなアホな」
  • 腰の痛みは引いたが右足は痺れた状態のコルセット生活
    • 本当に、本当に痛い
    • 5分歩いたらもう歩けない
      • そのくせ1分立ち止まると平気になる、謎
      • 友達に足を引きずってるよと指摘されるくらいひどかった
  • 一ヶ月経ってだいぶマシに
    • とりあえず3時間くらいなら歩き回れる
    • でもまだ足を引きずってるように見えるときがあるらしい
  • 会社の飲み会でコルセットの話したら「かっこ悪くて女の子の前で裸になれないね」って指摘される
    • 確かにと思った
    • 脱ぐ時にマジックテープが「バリバリバリィィィ」っていうの笑っちゃう
  • 生活はできるものの若干右足に痺れが残っており、病院行かなきゃなぁと思ってるのが今

今後の方針

  • 治したい
    • といいつつ完治はしないという噂がある
    • とりあえず手術するとかいう事態にならないよう現状キープするための方法を調べる
    • 筋トレだろうなぁ…
  • 生活習慣の改善
    • いいベッド買う
    • いい椅子買う

言いたいこと

  • なってからじゃ遅い
    • 違和感出た時点で病院行こう
    • 私は1年近く放置してこうなった
  • コルセットめんどくさい
    • なんか、こう、コルセットをつけてるという事実に打ちのめされるときがある
    • 腰は大事にしよう

2017年振り返り

ちょびちょび振り返る

転職した

今年の1月、前職のアイスタイルからメルカリへと転職しました。

sota1235.hatenablog.com

明日で入社一年になるわけですが、本当に1年とは思えない濃い時間を過ごしました。

お仕事は以下の様なことをしてました。

自分の望む働き方やキャリアを考えての転職でしたが期待以上に自分のやりたいことができているのでとても満足です。

来年も引き続き死ぬ気で頑張りたい。

いろいろ発表した

今年は去年と比べると発表の回数は少なかったが大きめのイベントで登壇させてもらうことが多かった。

特に今年の目標にしていたPHPカンファレンストークでの採択が叶ってよかった。

どれも楽しかったけど、今年は「きりんさんですよね」と話しかけられることが多くてとても嬉しかった。

地の実力より多く見られてしまってるのではと感じてる場面も正直多いけどもっと精進していろんな人といろんな話ができるようになっていきたいですね。

一番嬉しかったのは東京Node学園2017で1日目のベストスピーカーになったことです。

発表する前は正直「V8のコンパイラーの話とかNode.jsの未来とか語れなくてごめんなさいごめんなさいごめんなさい」って気持ちだったので、新しい機構とかでなくても自分の経験に基いて発表してみると案外共鳴する人がいるんだなぁと肌で感じた。

あとちょっと特殊なケースで、Googleさんのイベントにゲスト登壇させていただいたりもした。

Firebase Developer Day - SPEAKERS

発表時間は短くて喋り慣れた内容だったけど、他社さんの顔に泥を塗ってはいけない気持ちで地味に一番緊張したかもしれない。

とりあえずこういう時に使えるいい感じのプロフィール写真を誰かに用意してもらおうと決意した。

副業した

昨年12月からちょうど今月までBoostnoteというOSSをやってるMAISIN&COという会社でお手伝いさせてもらってた。

boostnote.io

手伝い始めはエンジニアが私しかいない状態でデザインリニューアルをしたり、途中からフルスクラッチでWeb版の実装をしたりと、とてもいい経験をさせてもらった。

会社のフェーズが変わってきているので私は抜けますがコミットできるエンジニアを募集している&今入るととても技術的に面白いはずなのでElectronアプリをガッツリ組み上げたい人がいたらオススメです。(興味ある人いたら声かけてください)

英語を勉強しはじめた

勉強しはじめた。

sota1235.hatenablog.com

今までなんで全然英語勉強する気にならなかったのかの理由はとても単純で、やっぱ喋る機会がないと全然楽しくない。

逆に機会があると本当に楽しくなる。English Speakerのいる職場は本当におすすめしたい。

若いうちに一度、1人で英語圏の国に行って働きたいという想いが芽生えてたりするし、2週間くらい自力で旅行とかしたい。英語喋りたいマン。

その他

全体的に貯金をアウトプットする年だった。

技術的なインプットが加速した印象はあまり無くて、サービスがどうやったらよくなるのかを考えては実行しのサイクルを回しまくる1年だった。

何気なく会社のメイン活動リポジトリでマージされたPRを数えたら224個あった。

closeされたものも混ざってたりするが、弊社では1PRで1リリースなので年間200回前後リリースしてきたと思うとオソロシイ速さで走っていたんだなとしみじみする。

来年の目標は別途宣言するが、この勢いを保ったまま、インプットのメンタル面だけ今一度1年目くらいに戻して猛勉強していきたい。

来年も

今年もお世話になりました。

来年の何卒よろしくお願いします。

約1年、ゆるっと英語勉強してみての結果

この記事は

英語アドベントカレンダーの1日目の記事です。

adventar.org

(作ったのに存在忘れてましたすいません)

この記事はこんな人におすすめ

  • ゆるく英語勉強始めたい
  • 今全然英語できないけどいつかはやらなきゃいけないと思ってる

なぜおすすめか?私がちょうど一年前こんな感じだったからです。

続きを読む

SECCON2017 Online予選に参加した

参加した

会社の有志で集まってmerpoliceというチーム名で参加しました。 最終結果は1500pt, 総合125位でした。

2017.seccon.jp

WriteUp

自分が解けたものだけwrite upを書いておこうと思います

続きを読む

Firebase Dev Summitに行ってきた #FirebaseSummit

行ってきた

f:id:sota1235:20171105220724p:plain

firebase.google.com

今は会社でメルカリチャンネルというサービスのチームにいるのだが、そこでFirebaseを利用している。

その関係で出張として行かせてもらえることになった。ありがとうございます弊社。

技術関連は会社ブログに書くのでその他雑感だけ。

続きを読む

ISUCON7に出た #isucon

ISUCON7に参加しました

今年は前職の先輩と現職の先輩と組んで参加しました。

isucon.net

結果

f:id:sota1235:20171023011636p:plain

予選突破の20万台には遠く及ばず…

点数のブレが大きすぎてどの対策が効いたか全然わからなかったけど時系列でやったこととかやりたかったけど諦めたことをメモる。

タイムライン

私の担当はアプリケーションだった。

  • INDEX追加
    • (user.name)
    • (message.id, message.channel_id)
    • (haveread.user_id, haveread.channel_id)
  • SELECT *の撲滅
  • get_channel_list_infoの置き換え
    • 最終的に一箇所しか残らなかった
  • DBアクセスする前に結果返せるところは返す
    • DBアクセスした後にリクエストパラメータの有無チェックしてるようなロジックがちょいちょいあった
  • COUNT(*)COUNT(1)
  • チャンネルごとのメッセージ数カウントを専用テーブル用意して置き換え
    • 毎回COUNTせずにSELECTするだけでよくなった
    • 最初の段階で2番めに遅いクエリだったので手をつけた
  • php-fpmのチューニング
    • TCPやめてunix socketにしたり
    • 子プロセスを増やしたり
  • 使わないPHP extensionの削除
    • xdebug.so, お前のことやで
  • N+1をいくつか潰す

他のお二人には

とか諸々やってもらった。感謝…

やりたかったけどできなかった

  • /register, /loginページを静的コンテンツに
    • ロジック見ると分かるけどこの2つはPHPに捌かせる必要がない
    • HTMLの配置は一瞬だったけど優先度低かったので後回しにしたのと、nginxの設定でハマってやれなかった
  • キャッシュミドルウェアの追加
    • ログイン判定の度にselect * from userしてるのとか
    • 今回は削除更新が無かったので整合性の担保も難しくなかったはず…
  • メッセージ取得ロジック改善
  • 未読数カウントロジック修正
  • LIMIT, OFFSET殺す
  • php-fpmのさらなる調整
    • 時間無くてかなり雑に調整した
  • PHPMySQLのコネクション最適化

他にも色々アイディアはあって

  • DBサーバにもアプリを立てる
  • キャッシュ用サーバとアプリを分ける

なんて案もあったけどとにもかくにもボトルネック/iconsから他に移らなくて死んだ。

所感

とにもかくにも/iconsのリクエストを捌けて無くてしんどかった。

一番最初はDBが完全にサチっててその壁は一瞬で越えられたけどその後すぐに画像が死んでることが分かってなるほどという感じだった。

画像の脱DB化をしてもそこまでスループットが上がらず、なかなか苦しかった。

今回はそこを抜けたチームが10万の壁を越えていったのではという推測。

スギャブロエックスチームと同じ会場で解いてたので効いたところCache-Controlヘッダあたりをいじって2回目以降リクエストさせないようにしてたらしい。ぐぬぬ

一昨年、昨年参加して今年3回目だけど計測してボトルネック特定して確実に芽をつぶしていく力はついていると感じてて、それゆえに結構悔しい。

あとはぱっと直したコードにバグがあることが多くて結構時間を取られた。

今回はほぼ何も準備できなかったけど来年は手元で簡単にアプリが動かせるような環境を作る秘伝のタレを用意してそこでデバッグしたい。

とにかくですね

来年こそ100万円使って温泉行きたいです。