見出し画像

カンムに入って1ヶ月経った

今の会社に転職して1ヶ月経った。まだ何も成してないが、生きている。
この1ヶ月を雑に振り返ってつらつら書いていく。

初日から今日まで、ずっと富山からフルリモートでやっている。カンムでは働き方がかなり自由で、開発機器もM1 Max Macbookという化け物を支給され、快適に仕事ができている。

初日〜2週間ほどは、サービスの概要について知るオンボーディングや簡単な開発タスクをこなしていた。担当するのはPoolという、リリースして1ヶ月という出来立てのサービス。これがとてもおもしろい。サービスを取り巻く決済・投資の知識や、Visaと連携してのオーソリティ処理など、決済システムならではの特殊な技術構成にワクワクしながら日々が過ぎて行った。

カンムは1ヶ月に1回、Kanmu Tech Dayという「全部署テクノロジーを使ってプロセスを効率化、もしくは楽しいことをする」という取り組みをしている。このことがきっかけで、開発体験をアップするためにGo製のツールを2つ書いた。

一つはdecimalnoassignという静的解析ツール。Poolでは固定少数点数計算ライブラリとしてgithub.com/shopspring/decimal  パッケージを使っており、それをサポートするツール。これをCIに組み込んで、コードミスで金額計算が合わなくなる…といった事態を防ぐことを期待して作った。

もう一つは、Goのテストコードを一気に並列実行に対応させるtparagenというソースコードジェネレータツール。

https://github.com/sho-hata/tparagen

Goのテストの実行時間は、そのままではテスト量に伴い線形に増加していってしまう。パッケージ毎のテストはCPUのコア数に応じて並列・並行実行されるよう最適化されるのだが、パッケージ内のテストは最適化されない。そこで、ガッと並列実行に対応させておくことで、CI/CD時の細々とした時間の短縮をしようと考えた。現代はマルチスレッド時代である。
まだ対応しないといけないケースがあったりしてβ版の位置付けだが、前職時代にあると便利だったな…というツールを作ることができた。
まぁこちらはデータベースと接続するテストの存在があったりして、そのままではプロジェクトに組み込めなかったのだが、なんとかしようと思う。

あとは初の月末・月初処理対応をやったりした。全銀フォーマット対応の入金依頼データを生成する処理をかなりガッツリ書いた。byte変換がうまくいかなかったり、CSVの拡張子をしているが中身はplaintextのファイルと格闘するなど髄分ヘビーだったが、メンバーの助けもあり結果的には無事に月を跨ぐことができた。金融ドメイン頻出の、固定長フォーマットと最初の顔合わせである。

シリアライズフォーマットについてほんわか談義


業務の振り返りはこんな感じで、チームについて。

まず、役員を含めたBiz・Dev全員が一騎当千を体現している。攻殻機動隊の公安9課みたいな感じ。それもみんな草薙素子。
Bizのメンバーは全員SQLを書いてRedashにダッシュボードを作り、施策・分析も全て一人でこなす。Devのメンバーは全員歴戦の決済システム開発マンや、テックリード経験者・著名OSSを開発しているなど実力者揃い。COO(役員もバリバリの開発者)をはじめとした開発者が作った便利OSSがごろごろ転がっている。
自分はどのような色を出していけば良いのだろうか…

そして、会社全体としてSQL・DBテーブルがBiz・Devの共通言語というところが強い。スパルタンSQLという社内イベントがあり、これでみんな強くなっている。普通の会社ではBizとDevの意思疎通が難しい問題があるが、共通言語がSQLという事実によって、コミュニケーションにかかるロスが限りなく少なくなっていると思う。SQL強くならねば。

というわけで、かなり面白い環境で毎日楽しく開発している。
まだ自分は何も成していないが、今日は美味しいものを食べにいこう。


この記事が気に入ったらサポートをしてみませんか?