メルカリに入社して1年半くらい経ったのだけど、7月から1年近くいたチームから別のチームに移ることになった。
かなりドラスティックに組織を変えていく文化の中で1年間同じチームにいたのは社内でも稀有な経験だったこと、前職でも1年間同じチームにいたことはなかったことから自分にとって大きめの節目なので、転職するときの意志として強かった「自分の手で人に自慢できる機能を世に出したい」ということがどれくらいできたか勝手に振り返ってみる。
細々した機能から大きめの機能まであるけど全部語れないのでいくつかメモしておく。
試しに入社してから今日までにmergeされたPRの数を数えたら408個だった。土日含めて一日0.7個のPRをリリースしてる計算らしい。
EXTENDED BODY:
メルカリチャンネル
とにもかくにもこれが一番大きい機能であり、かけがえのない経験だった。
新規サービスで使ったことのない技術にチャレンジして、短い期間でリリースするという会社の中でもそう多くない機会をもらえた機能だったし、この1年間はずっとこの機能をどうよくするか頭を捻り続けてきた日々だった。
これを開発できてよかったのは、なんだかんだ大きくなったうちの会社の中で以下のようなサイクルを経験できたこと。
- タイトなリソースとスケジュールの中で新しい技術を使いこなしてリリースまでこぎつける
- リリースした機能をアプリケーション運用の幅を超えて面倒を見る
- エンジニアの立場からアプリの機能に意見したりアイディアを出して実現していく
- 短いイテレーションの中で勝ち筋を模索し、日々チームメンバーと一喜一憂する
こういう機能、当然リリースしたらはい終わり、ではなくてそこがスタート地点で、そこからどう這い上がるのかを考えるのが本当につら楽しかった。
機能出た!お客さまに使われ、ない!どう改善しよう!売上やばい!どう改善しよう!みたいなのを本当に2,3日サイクルでやっててカオスだった。
この後にメモる機能のほとんどはこのチームで作ったものです。
フォロー機能
いつからか、しれっとフォロー機能が追加されてると思いますがこの機能のバックエンドの実装は私がやりました。
実は日本で実装する前からUSメルカリでは実装されていたので「コード持ってきて終わりだろう」ぐらいの気持ちで3日くらいで見積もったらトラフィックやユーザ数の規模を考えると全くもって流用できないことがわかり、結局2週間くらいかけた機能でした。
この機能が印象深いのは「世に出したらたくさんのお客さまに使われてる」こと、かつメルカリチャンネルを大きく後押しする機能になったことです。
あとは設計で迷った時にSREチームに相談しにいったとき、気持ちいいくらいにスパンと答えを出してもらいいつか私もこんなエンジニアになりたいと心底思ったとともにこんな人と働ける今の環境に心底感謝したこともよく覚えてます。
APIのリアルISUCON
メルカリチャンネルのエンドポイントでmemcachedやDBへのアクセスが多すぎるAPIがいくつかあったのでその対策をしたのもとても楽しかった。
お客さまへの目に見える機能追加ではないけど、様々なmetricsやコードリーディングからちょこちょこ相談しつつコードを改善。
リリースした直後にNew RelicのResponse Timeががくんと下がってるのを見たときは本当に気持ちよかったです。
何回かやったうち、30msくらい早くなったときとかはたかだか30msかもしれないけどうちのトラフィック(ピーク時約56,000req/sec)に対してのこの改善はかなりでかいしエンジニアリングできてる、と感じられてよかった。
Reactで作られたページのバグ修正
Backendエンジニアでありながら3時間ぐらいコードとにらめっこして直したときはドヤ顔で退勤した。
難易度高すぎるバグ踏み抜いて両足吹き飛んでるしそれでもめげずにきちんと調査して修正してるので誰かまじで褒めて欲しいし頭なでてほしいし14万円欲しい
— きりん / kirin (@sota1235) December 7, 2017
その他いろいろ
いろいろもっとあるんだけどキリが無いのでこのへんにしておく。
次のQは本当にまた新しいチャレンジで日々自分の知識と経験の無さに打ちひしがれてるし勉強勉強勉強って感じだけどどうにか形にしてまたドヤ顔でポエム記事を書きたい。
各位これからもよろしくおねがいします。
※追記
Reactのバグ修正
だとReactライブラリの修正したみたいに捉えられるのですがそういうわけではないので少し言い回し変えました- 14万円の出どころどこだというコメント見かけたのですが知りたい方は
きりん 14万円
で調べてください
COMMENT: すごいですね!! 取り組んでる期間は関係ないよなって改めて感じました。 わたしもチャレンジします!