社員インタビュー Vol.15

HelloWorldから決済システム開発までの軌跡。駆け抜けた3年間

田中 悠 / Backend Engineer

2021.12.16

カンムをもっと知ってもらう為のインタビュー第15弾! バックエンドエンジニアの田中さん(通称 ポン酢)にお話を伺ってきました!

── 入社時期と職種をおしえてください

2018年12月にインターンとしてカンムで働き始め、その後2019年4月に社員として正式入社しました。現在はバックエンド全般の開発に携わっています。

── インターンを開始したときはまだ大学4年生だったんですよね

そうなんです。大学は文系だったのでエンジニアリングとは縁遠く、就職活動ではいわゆる総合職を中心に見ていました。営業の短期インターンとかもやっていたんですよ。とはいえ営業職に強い興味があるわけでもなく、周りの友人と一緒になんとなくそのあたりの職種を見ていた、という感じでしたね。

就職活動を行っていく中でコンサルティングファームの選考を積極的に受けるようになっていきました。その中の一社の面接で「君はコンサルタントとしてクライアントを支えていく、いわゆるサポーターとしての仕事をやっていきたいのか?」という質問をされたのがすごく印象的で。というのも、その面接のあとに「自分は本当にサポーターになりたいのか、実は他の道にも興味があるのではないか」という疑問が湧き上がってきたんです。

そんな疑問を抱える中、たまたまプログラミングをやる友人の姿を見たのが僕の転機になりました。その当時僕はプログラミングについてまったく知識がなかったのですが、楽しそうにコーディングする友人になんだか惹かれて。その姿を眺めながらいろいろと質問をしているうちに「なんだか楽しそうだな、自分もできるようになりたいな」と。その友人に「俺にもプログラミングできるかな?」って聞いてみたら「できるんじゃない?」って言ってくれて、パソコンを貸してくれたのがきっかけでプログラミングを始めました。

その後は本を読みながら少しずつプログラミングを習得していきました。最初にHello Worldを出したときにはすごく感動しましたね。自分が書いたコードをコンピュータが理解して、思い通り動いてくれたということが嬉しくて。就職活動のときはどの職種にもあまり熱意を持ってなくて「なんとなく選んだ会社に入社して、このまま働いていくのかな」なんて思っていたんですが、プログラミングはすごく面白いと思えたんです。これを極めていきたい、と強く感じたのを覚えています。

 

── その後、カンムでのインターンはどういった経緯で開始したんですか?

先ほど話したプログラミングを教えてくれた友人が「気合の入った若者がインターンを探しています」と僕のことをツイートしてくれて、それにCOOの知久がリプライしたのがきっかけです。それで恵比寿のオフィスに面接に行ったんですが、CTOの伊藤が自己紹介のときに「膝です」って言ってたのをすごく覚えてます。「膝って名乗る人がいるんだ」と衝撃的で(笑)

面接の場では結構詳しくカンムについて教えてくれました。ホワイトボードに簡単なバックエンドの構成図を書いてくれて、バンドルカードの概要や通信の仕組み、もし僕が入社したらこの部分の開発を担当する、なんてことまで説明してくれましたね。その面接の中で自分で開発したSNSアプリを見せたんですが、なんとそのアプリが落ちてしまって。動くはずのものが動かなくて、本当に焦りました。その後、無事合格の連絡をもらえたときは本当に嬉しかったですね。

 

── 入社してからはどんな業務を担当していましか?

はじめて任されたのは “go-sqlfmt” というCLIの開発です。これは.goファイル内のSQL文を整形するツールなのですが、VimとVSCodeに組み込めるようにしてほしいと。当時SQLやLinuxの知識がほぼ皆無の状態だったので、最初はなんのことだかまったく理解ができませんでしたが、とにかく作り始めました。

ゴールはバンドルカードのAPIサーバーのコード内のSQLを整形することでしたが、まずは単純なSELECT文を整形するところから開発をスタートしました。その後複雑な構文にも対応できるようにするため、設計を考えてはメンターのエンジニアに相談して、指摘をもらったらそれを直してまた見せて、というのを何回も繰り返しながら開発を進めました。 また当時はテストを書いたことがなかったんですが、変更に強いコードを書く上でテストは本当に重要だという事を身を持って体験しました。フォーマッターの場合与えられた文字列のインプットに対してあるべきアウトプットの形が決まっているので、テストが書きやすくて良い練習になったと思います。

実はその当時GitHubの使い方すらわかっていなくて(笑)そんな自分にフォーマッターの開発はかなり難しかったのですが、先輩エンジニアに教えてもらいながらどうにか形にすることができました。仕事でプログラミングをするいろはみたいなものを教えてもらった感じですね。

こんな感じでインターンで4ヶ月ほど働いたあと、正社員としてカンムに新卒入社しました。正社員入社の打診をもらったとき、迷いはありませんでしたね。インターンのときはAPIサーバの開発をメインで行っていたのですが、社員入社の話をもらったタイミングで「プロセッサーの開発もやってみない?」と声をかけてもらって、絶対やりたい!と思ったんです。大学を卒業するタイミング、いわゆる「新卒カード」を使える環境だったと思うんですが、インターンで学んだスキルをこの環境でさらに伸ばしていきたいという思いでカンムへの入社を決意しました。

 

── 現在の仕事で面白いと感じる部分はありますか?

自分が書いたコードがユーザーさんの生活に影響を与えている、ということですね。自分でコードを書いてデプロイをして、そうして出来上がったシステムがリアルの世界で使えること。そしてユーザーさんの「買い物」という生活の中の行動を支えることができるということ。これはカンムのエンジニアならではの面白みだと思っています。

最近は新規事業Poolの決済システムを開発していたんですが、試験環境だときちんと動いていたものが本番環境で急に動かなくなるなどトラブルも多くて。そのときはすごく焦って、CTOとふたりで深夜までコードを確認しました。なんとか問題点を見つけ出し、それを直して次の日再び本番環境でのテストを行って、無事決済が通ったときは感動のあまり膝から崩れ落ちてしまいました。

  メンバーが見守る中、実地テストをやり遂げたポン酢さん

── カンムの魅力や特徴をおしえてください!

自分の職域を限定せず、必要なことはなんでもやるという気概を持ったメンバーが多いなと思っています。たとえば新規機能を開発するとき、プロダクトマネージャーがすごく複雑なフロー図を書いてきてくれるとか、面倒なこともフットワーク軽くやってくれるのには助けられていますね。

あとは徹底的にユーザーさんのことを考えてプロダクトをつくっている点もカンムの特徴だと思います。この前新機能を開発したんですが、開発を始める前に仕様を決めるミーティングを何度も行いました。考えうるエッジケースをすべて出し合って、どう対応するかを徹底的に議論して。正直その中には「件数も少ないだろうし、これは考慮しないで開発を進めてしまいたい」と思うようなものもあるんです。でもカンムの人たちは絶対にユーザーさんを困らせるような開発をしない。ユーザーファーストであることを第一に、どんなに細かいことでもユーザーさんが損をしないように考えています。その結果膨大なコードを書くことになったり、テストがものすごく大変、なんてこともあってそれはそれで大変なのですが、徹底的にユーザーさんのことを考える姿勢はとても勉強になるし、気持ちがいいなと思いますね。

もちろん僕たちはスタートアップなので開発のスピードも重視していきたいのですが、速度を落とさず必要なことを丁寧にやっていく、という部分を大切にしていきたいなと思います。

── 最後に、今後こうなっていきたい!というのはありますか?

個人的には「もっと強くなりたい」と思っています。たとえば新規プロダクトのPoolは自分が全部見ますよ!と言えるくらいの実力をつけたいですね。そのために技術力をさらに磨いていきたいと思います。

あとはエンジニアチームでもっと攻めの開発をやっていきたいという気持ちもあります。最近は期日が決まった機能開発をやったり、突発的な対応を粛々と進めていることが多くて。もちろん必要な開発を着実にこなしていくことも大切だと思うんですが、まだ顕在化してないニーズを自分たちで仮説立てて、開発して、検証していく、そんなこともやってみたいなと思っています。 たとえばバンドルカードで使える「ポチっとチャージ」も、開発当初はユーザー像がはっきり見えているものではなかったと思うんです。でも現在ではたくさんのユーザーさんに使われている、バンドルカードにとって必要不可欠な機能になってますよね。こういう開発って大変そうだけど、楽しそうだなと思っています。

必要なことをきっちり丁寧にやり切るとともに、誰も思いつかない機能を発明してユーザーさんたちに新しい価値を提供していく。これを両立できたらいいなと思います。

── ありがとうございました!

田中 悠 / Backend Engineer

早稲田大学社会科学部に進学し、学部4年でプログラミングを始める。2018年12月、カンムにバックエンドエンジニアのインターンとして参加し、同校卒業後に入社。「強いGoエンジニア」になるため奮闘中。