やったこと
実装編
- バルクロードツール Medjed の大枠は昨年度に作ったので機能拡張を行っていた
- BigQuey のデータを HDFS に取り込むフロー (HDFSのデータをBigQueryに入れるフローは昨年度に実装)
- BigQuery の RECORD, REPEATED 対応
- BigQuery の Partitioned Table 対応
- SQL-like な WHERE 構文を自前で解析してフィルタリングする機能の追加
- データベース to データベースにおいて、スキーマを自動定義する機能の実装
- etc, etc
- レポーティングツール Argus の安定運用に向けての改修
- スレッドモデルである sidekiq では、すべてのジョブが1つのプロセスで動くために、特定のジョブ(スレッド)のみ落とすことが難しかった。Graceful shutdown するためにはすべてのジョブが終わるのを待つ必要があった。プロセスモデルな resque に移行して特定のジョブ(プロセス)のみを落とすなどして安定運用しやすくした。また、その際にCoWを効かせてメモリの使用量を節約できるような仕組みを作った。
- cron に仕込んでいる処理を冗長化して安定運用できるような仕組みを作った
- etc, etc
- データ駆動ワークフローツール(ミドルウェア) Triglav のコンセプト提案、設計、開発と本番投入
- AWSに加えてGCPを導入
- AWSにはあるがGCPにはないサービスをどうするか、APIがバグってる、機能がまだないなどで苦労 ...
- 部内ルール(自分で策定)に即したオペレーションを実施するための補助ツール開発やツール導入
- AI案件の増加にともなうGPUサーバを使った機械学習基盤の整備
- nvidia driver、cuda, cudnn, chainer, nvidia-docker
- GPUサーバのオンデマンドオートスケール(+ スポットインスタンス)
コミット数 (社内 + github.com)
教育編
- TL (チームリーダーではなく Tech Lead と読ませたいお年頃)として、チームメンバのコードのレビューや指示、進捗管理
- 部内で Sandi Metz 本の輪読会を開催
OSS編
- 業務上関係のある embulk、vertica、bigquery sdk 周りでのコミットメント。
- 自作のgemは15個かそれ以上は追加しているはず。自作gemは全体で100個を超えた。
- コミッタを勤める Fluentd, Rubyへのコミットメントはあまりできなかった。
社外露出
- 会社の社員インタビューページで露出
- DeNA Technology Conference と Developers Summit 2017 での発表
- 私生活が忙しいのもあって、その他の小さい勉強会で話すことは今年はあまりやらなかった。
- TechCon と DevSumi は直接採用にもつながったようで、費用対効果が大きくて良かった。
できるようになったこと
昨年度はビッグデータ初心者だったのでインプットが非常に多かったが、今年度はビッグデータも2年目になってインプットが少なくなってしまった気がする。
- BigQueryに詳しくなった
- GCPを使うようになった
- GPUサーバを使うようになった
- Swaggerを使ってみた
- SystemTapを使ってCoWを追ったりできるようになった
- BYACC/JとJFlexを使ってJavaで構文解析できるようになった
圧倒的コーディング速度
アプリケーションを書く時に、実装方法を何パターンか思いついて、どの設計が良いのか悩む、というのはよくあると思う。設計段階では良いと思っていたが、実装してみたら複雑で、保守性を考えるとその方式を採用したくないなんてこともあるし、どの実装が速いのかについては、実装してみて性能比較をしてみないとわからないこともある。
この問題に対処するために、3年ぐらい前から身につけようと目標にしていた能力があり、それが「圧倒的コーディング速度」である。「圧倒的コーディング速度」があれば、設計で悩んだらとにかく実装してみて一番良いやつを選ぶ、というアプローチを取ってもたいして時間のロスにならない。 腕力で解決するアプローチ。
この能力が実用に足るレベルで身についてきたように感じる。実際に、設計で悩んだら複数パターンを素早く実装して評価してみるアプローチで何度か問題を解決したし、それがたいした時間のロスにならなかった。
私生活の変化
- 子供二人目が生まれた。私生活の忙しさが2倍に増えた
🎉
感想
業務としての成果は出したが、ウェブ業界も4年を過ぎたからか、ウェブの大きな進展がないからか、あまり技術的な刺激がなくなってきている感がある。 が、今年の5月からは技術的にもドメイン的にも新しいことにTryできそうなので、また頑張っていきます。