こんにちは、開発部今年1月入社のHelpfeelエンジニアchubachiです。今は主に新機能のバックエンド実装を担当しています。フロントもたまに書きます。
今回は普段やっている仕事について紹介します。
普段の仕事の流れ
メインは新機能の開発です。週次のミーティングで開発スケジュールを引いており、基本的にはそれに遅れないように機能開発を進めています。
それ以外では
・障害対応
・障害までは行かないけど来たら要対応のAlert
・Sentryに新たなissueが来たらSlack通知が来るので、その初期調査と関係ありそうな人に連絡
・他部署から開発宛に来ている質問で自分でも対処できそうなもの
が来たらやっていく、という感じになっています。
チームメンバーの設計や実装時の試行錯誤も基本的にScrapbox上で行われているので、タスクの合間に新着に上がってきたページを見てコメントしたりしています。
自分が相談するときも試行錯誤中に書いておいたScrapboxを良い感じにまとめて、SlackにScrapboxのリンクを投下するとチームメンバーが見てシュッとコメントくれるのでとてもやりやすいですね。
メイン開発の合間にやっている取り組みの紹介
コードやScrapboxを見たり書いたりしているうちに、今こうなってるけどこうしたいな……というのが出てくるので見つけ次第scrapboxに書き溜めておきます。メインの開発の合間をぬってそういうタスクに取り組んでいます。
satisfiesを使いたいけどTypeScriptとbabelのversionが低い、うっかりfocused testにしたままマージしてしまったので今後はlintで防ぎたい、規模の大きいプロジェクトの取り込み処理が重いのでこの部分を高速化したい、などなど……
この手の喫緊の課題ではなく、実現すると嬉しいが優先度は高くないタスクにはなるべく時間を確保して取り組むようにしています。
優先度の高いタスクは今後も生まれては積まれ続け、優先度の高いタスクが捌けたらやろうと思っても永遠にその時は来ないので。
あとはもちろんですが導入したり変更すること自体が目的になったり自己満足になってしまわないよう、チーム会で共有してフィードバックを貰ってから取り掛かるようにしています。
今回はそういったタスクのうち、個人的にテーマにしていた速を高める取り組みのうち一番分かりやすい成果が出たものを1つ紹介します。
CircleCIでのCI実行速度を3倍にした
改善前も8分とそんなに遅い部類ではないと思いますが、障害発生したときにRevert CommitのCI待ちをしている時間が非常に長く感じられ、構成を改めて見たらもっと速くできそう!と思ったので取り組みました。
改善では特に目新しいことはしておらず、jobの適切な分割とjestを並列実行できるようにした形です。
CI全体が2分半で終わるようになり、小分けにしたjobに適切なresource_classを割り振れたのでコストも3/4になりました。
今後もCIは速ければ速いほどいい、という気持ちを胸に継続的な改善を行っていこうと思っています。
さいごに
Helpfeel社ではいろんなポジションのエンジニアを募集しています!ぜひご応募お待ちしています〜