『今までになかったモノを創っていく。この先、ぶっちゃけ、どうなるかわからないからこそ面白い!』。創業初期に入社した元IBMエンジニアが、UPSIDERを推し続ける理由。|株式会社UPSIDER
UPSIDERへの想い 『今までになかったモノを創っていく』という観点で、この先UPSIDERがどうなるか、誰にもわからないということに「面白さ」を感じました。 ...
https://note.com/upsider_inc/n/n2e3035e0c5ae
今まで解決されていない、「新たな課題」に対してアプローチしていく過程にエンジニアとして携われていることに、大きな楽しみを感じられていますね。スタートアップ的に「なんとかする」ことをしながらも、プロダクトのクオリティにもしっかりこだわれる環境は、エンジニアとしても非常に成長できる環境だと思います。
UPSIDERで働く人を紹介する『Who we are』シリーズ。
シリーズの第4弾を飾るのは、UPSIDERにエンジニアとして創業初期フェーズから参画するRyoya Sekinoさんです。現在はカード事業部のリードエンジニアとして、決済関連の機能構築〜改善までをスピード感持ってリードし続けている一方で、エンジニアのカンファレンスにも複数回登壇するなど、エンジニアとして幅広くご活躍されています。
UPSIDERの初期フェーズから現在に至るまで、「どのようなご経験をされて来られたのか」、そして「エンジニアとして働くUPSIDERは、どのような環境なのか」しっかりとお話を伺いました。
Q.)まず簡単に自己紹介をお願いします。
Ryoya Sekinoと申します。よろしくお願いいたします!
今、UPSIDERではリードエンジニアをやっております。UPSIDERは2018年に創業なのですが、割と創業時に近い2019年1月にジョインして、かれこれ3年くらいUPSIDERの正社員として働いています。
UPSIDERは、現在法人カードのプロダクトを提供している会社なのですが、カード決済の裏側で行われている決済のトランザクションを処理したり関連機能を構築するチームのリーダーが、具体的な私の役割になります。UPSIDERにジョインした直後はフロントエンドやユーザー機能のバックエンドの開発をやっていたのですが、急遽このチームを立ち上げることとなり、そこから2年以上に渡り、チームを持ち続けているという状況です。
追加で、エンジニアとしての自己紹介もさせて頂ければと思うのですが、私自身「Go」という言語が好きで、UPSIDERでも書いています。「Go Conference」というカンファレンスでも複数回登壇させて頂いております。また、Goで構築されているOSSにもよくコントリビュートしています。とにかくGoが好きでして、是非この記事を読んで下さった方で、共感してくださる方がいれば、お話してみたいなと思っていますね(笑)
Q.)Ryoyaさんは、UPSIDERに転職される以前、どのようなご経験をされて来られたのでしょうか?
前職以前の経歴からお話ができればと思うのですが、私は大学の専攻は文系ですし、学生時代からばりばりプログラミングをやっていたタイプでもありません。
私自身、正直ながら、大学まで全然将来のこととか考えてなくてですね(笑)いよいよ就職活動が始まるという段階で、ようやく、これからどうしようかな?と思っていたくらいでした。ただ、その当時からぼんやりと「モノを作れるようになりたい」という気持ちがありまして、新卒ではSE(システムエンジニア)としてIBMに入社させて頂いたという経緯があります。
実はIBMに入社する前に、都内のベンチャーでインターンをしておりまして、そこで初めてプログラミングを学びました。その頃はRubyを書いていたのですが、コードを書いてそれが動いてユーザーの価値になっていくのは面白くて、たまに没頭して朝までコードを書いていたりしました。また、インターンしていた会社は、ちょうど事業が軌道に乗り始めた頃で、そのフェーズのスタートアップ特有の盛り上がりとか「カオスな空気」も楽しめていたんですよね。
その後に新卒でIBMに入社しました。IBMでは、いわゆるSEなので、コードは書かない仕事が多く、いわゆるSIerによくあるような仕事をしている期間が長かったです。
具体的には、メガバンクのネットバンキングシステム更改や、大手メディア向け調査システムの新規構築、その他SI案件のマネージメント等を行なっており、設計、コーディング、マネージメント、施策検討等、様々なロールを担当させて頂き、最終的にIBMでは、約3年に渡りお世話になりました。
Q.)大手企業からUPSIDERの、しかも初期フェーズに参画されたということですが、ここの経緯をお伺いできますでしょうか?
IBMで約3年に渡り働く中で、「自社でサービスを持っている会社」だったり、「もっと技術的に攻めている会社」だったり、「もっと社会課題にコミットしていくようなビジネスを行なっている会社」の方が面白そうだと薄々感じるようになっていました。また、短いインターン期間ではありましたが、スタートアップや自社サービスの面白みも大学時代に経験していたので、それで転職を考えるようになりました。
そんな中、私が大学の時にインターンをしていた会社の社員が、UPSIDERのCOO水野を紹介して下さったことがキッカケでUPSIDERを知ることになったんですよね。
最初は、副業としてUPSIDERに携わることにしていたのですが、働いている中で「こっちの方が楽しいな」、「なんとなく、この人たちと一緒に働いていたら面白いことができそうだな」という、その時の直感と勢いで正社員としてジョインさせて頂いたという経緯があります。
私がジョインしたタイミングって、実はプロダクトのリリース前段階でして、プロダクトも出来上がってなければ、ほとんど何も整っていない環境だったんです。正直にお伝えすると、当時のUPSIDERを合理的な目線で判断すれば、UPSIDERに入るという選択は取らなかったと思うんですよね。CEOの宮城には、「頭のネジが外れていないと当時のUPSIDERに入らない」と後から言われました(笑)
それでも、面白そうだなと思えたので、大企業である前職からの転職を進めましたし、他の会社ではなくUPSIDERを選んだ訳なんですよね。結果として、今でもこの選択は正しかったと思えています。
Q.)サービスとかも何もできてない状態。それでもUPSIDERを選択されたのって、UPSIDERが掲げるビジョンに共感をしたからという要素が大きいのでしょうか?
そうですね。共感と言うよりかは、好奇心・関心に近い感覚でいたというのが本音です。
UPSIDERのビジョンも、勿論、会社を選択をするにあたって大きな要素とはなりましたが、私は特にUPSIDERの「中で働く人」に魅力を感じていたんですよね。
私が入社した当時は、まだ現VPoEの清水だったり、現CTOの澤田が副業として在籍していた段階だったのですが、その中で色々と仕事をしていく中で、「この人たちと仕事をしていったら、なんか面白くなりそうだな」と感じられていたことが、UPSIDERを選んだ大きな軸となったと言っても過言ではないと思います。
エンジニアが転職先を選ぶ基準として、「組織が持つ事業・ミッション」、「自分の専門分野だったり、技術力を伸ばしていける環境」、「一緒に働くメンバーや環境」の3つがよくあると思うのですが、私はどちらかと言えば、3つ目を重視するタイプです。ただ、正直な話、UPSIDERはどれを重視していてもコミットできる環境だと思いますので、エンジニアにとっては非常に魅力的な環境だと思いますね。
因みに、現在業務委託としてはかなり多くの方にコミットして頂いていますが、正社員・フルタイムの業務委託は合わせてもまだ10人もいない状態なんです。全体的な人数は多く見えるかもしれませんが、実はフルタイムは、まだまだ少ないということも知っておいて頂けると良いかなと思います。
ある意味このタイミングで参画できることは、エンジニアとしてキャリアを形成していく上で、大きなチャンスではないでしょうか。
Q.)初期メンバーとして参画されたRyoyaさんは、今UPSIDERで、どんなお仕事をされているのか教えて頂けますでしょうか?
自己紹介でも軽くお話をさせて頂きましたが、今現在はリードエンジニアとして働いておりまして、社内のチームや開発プロジェクトの責任者をやりつつ、エンジニア組織全体の採用や体制構築等にもマネージャーの一人として携わりつつ、たまにコードも書いています。
今自分が持っているチームについて、もう少し具体的にお話ができればと思うのですが、法人カードの「決済システム」および、それに関わるチームの運営を立ち上げから一貫して行なっておりまして、立ち上げ当時は、ほぼ何もない状態で、仕様も何もわからないという状態からスタートしたのですが、決済の仕様を紐解いて、チームとしてなんとか蘇生したという出来事もあったりしましたね。
その他で言うと、私自身VPoEの清水と同様、初期メンバーかつマネージャーとして、開発チームの採用だったり、組織全体の体制を整えたり、「開発チーム全員が活躍できるような体制作り」にも着手しています。
Q.)立ち上げ当時、特にこれは大変だったなというご経験はありますか?
特に、立ち上げ当時、決済のシステムは、普通のWebアプリケーションを構築するのとは異なり、仕様が特殊かつ凄く複雑だったんです。これにはかなり苦戦を強いられましたね。
少しテクニカルな話をさせて頂きますが、、、決済ブランドである「Visa」から飛んでくるメッセージフォーマットって、ISO規格(国際規格)で決まっているものなのですが、これって実は80年代くらいに作られたもので、非常に古いものなのです。
若干アップデートはしているものの、その頃に作られたものをほぼそのままで使い回していると言う現状があったので、本当にレガシー(遺産)的なモノだったり、かつそういう物事のステークホルダー(利害関係)だったり、各国の法的なルールだったりと、様々な事象が絡みに絡んで構成されているのが、「決済の仕様」でした。
しかも、ベースはISO規格のものではあるものの、決済ブランドごとにかなり拡張をしているので、共通のライブラリ等も存在しないものでした。つまり、基本的に、自社で処理をゼロから構築しないといけないものでした。
具体的なイメージとしては、今はもうほぼ使われていないような古いエンコーディングの形式を複数組み合わせた独自のルールの元で変換された状態のデータが飛んできます。まず、それを変換のルールに従って、取り扱える形になるように復元しないといけません。その上で復元したデータも、なかなか取り扱いづらい構造をしているので、それをうまく取り扱いつつ、決済の承認/可否の判定やデータベースへの書き込み等の必要な処理をしないといけないのでした。
これらの仕様は、実際にVisaのドキュメントから読み解いていくのですが、それが全部英語でして それに加えて、こういうドキュメントって、その界隈の人(今回で言えばカードを発行している側の人間)が読むものなので、わかりやすく出来てないものを、なんとか読み解いて、仕様を理解して、優先順位を整理して、そこでチームとして方向性を定めて、進めていくという感じでしたね。まさに「暗中模索」という表現がぴったりな出来事だったと振り返って思います。
Q.)初期フェーズから現在に至るまで、Ryoyaさんの中で変化はありましたか?
大きな転換期が三つあるので、お話しさせてください。
一つ目は、入社してしばらくした後に、「決済機能の開発」をやることになって、新しくGoを覚えることになったときだと思っています。
先程お話した通り、最初はユーザー向けの機能やUIを開発していたのですが、決済機能の開発の方が急務となって、私はそっちに移動することになりました。機能の性質を鑑みて、Goを開発言語として選んだのですが、その時点ではまだ私はGoを書いたことがありませんでした。そこで、CTOの澤田に教えてもらいながら、急いでGoを習得しました。
その結果、今ではGoが一番得意で好きな言語になって、カンファレンスに登壇したりOSSにコントリビュートしたり、社内のGoの開発をリードできるくらいにまでになれています。
二つ目は、決済チームを立ち上げて自分がリーダーになったときだと思っています。
そもそも私は、決済チームのリーダーを明示的に誰かに任されてなったわけではありません。気づいたら勝手にそうなっていたんですよね(笑)先程お話しした通り、決済システムは、仕様の複雑さゆえに、かなり手探りで進めていました。そんな中で、なんとか仕様と格闘しながら全体像がピンときた瞬間がありました。
そこで、「何を作らないといけないか」をすべてGitHubのチケットにリストアップして、他のメンバーに共有、アサイン等を行なっていたのですが、気づけばミーティング等も全て自分が引っ張るようになっていたんです。その後、そのまま経営陣のサポートも受けながら管理体制も整えて、リリースまで持っていったという経緯があります。
三つ目は、2020年のサービスリリースだと思っています。
続きは UPSIDER 公式 note でご覧いただけます!!