見出し画像

【技術と信頼で暗号資産取引を進化させる】コインチェック取引所の開発チームの裏側

コインチェック株式会社(以下、コインチェック)の開発組織とそこで働くメンバーに焦点を当て、技術的な挑戦や日々の業務を通じてどのようにプロダクトを支えているかを紹介します。
今回の記事では、コインチェックのCrypto Asset事業本部にある取引所事業部の取り組みについて、プロダクトオーナー 兼プロダクトマネージャーの岡田さんに詳細を伺いました。


自己紹介をお願いします。

はい、岡田修一と申します。私は2002年にSIerとしてキャリアをスタートしました。そこから、ネット証券やネット銀行のシステム部門でマネージャーを務めました。その後、暗号資産交換業に携わり、DevOpsマネージャーとしても経験を積み、スタートアップ企業や広告代理店ではエンジニアリングマネージャーを担当していました。 現在、コインチェック株式会社(以下、コインチェック)のCrypto Asset事業本部にある取引所事業部で、プロダクトオーナー 兼プロダクトマネージャーとして、取引所における暗号資産の取引を拡大させるために日々取り組んでいます。私たちのコンセプトとして「すっかりハマる取引所」を掲げており、ユーザーにとって使いやすく、かつ安全で信頼性の高いプラットフォームを目指しています。

コインチェックに入った理由、働くやりがいなどを教えてください

コインチェックに入社するきっかけは、取引所事業部の部長である杉本さんからの紹介でした。もちろん会社自体は以前から知っていましたが「自分が働く場所」として意識し始めたのは、杉本さんから声をかけてもらったことが最初です。声をかけてもらった後から、いろいろと情報収集を始めました。

特に印象的だったのが、コインチェックがエンジニアリングに対する情報発信を非常に積極的に行っていることです。例えば、コインチェックのnoteやポッドキャスト「Coincheck FM」でエンジニアが自分たちの取り組みを発信しているのを見たり聞いたりして「ここで働くのも面白そうだな」と強く感じるようになりました。様々なアウトプットがコインチェックに対する解像度を上げてくれたんです。

面接までの期間、通勤中に毎日ポッドキャストを聞いていました。山田さんの記事や最近のインタビュー記事を出された林さんのポッドキャストが特に心に残っています。

林さんは一度コインチェックを退職して、クリプトの仕事をしたいというモチベーションで戻ってきたという経緯をお話しされていて。それを聞いて、「コインチェックは、そういった柔軟さや空気感のある会社なんだな」と共感を持ったのを覚えています。
私も過去に同じような経験があったので非常に印象深かったです。当時の人間関係や働き方の魅力があったからこそ、また戻りたいと思うんですよね。一度辞めた社員が戻ってきたいと思える環境がある会社はとても魅力的ですよね。それがコインチェックの持つ柔軟なカルチャーや、働きやすさにつながっていると思います。

またコインチェックでの仕事には、非常に大きなやりがいを感じています。特に「新しい価値交換を、もっと身近に。」という会社のミッションに強く共感しました。暗号資産という新しいインフラを世の中に広めていくには、取引の基盤がしっかりしている会社が必要不可欠です。私はこれまでに他の暗号資産交換業の立ち上げフェーズから参画した経験があり、その過程でゼロからインフラを作り上げることの大変さを実感しています。

まだ暗号資産はルールや使い方が明確ではない部分も多いですが、そこで私たちが先例を作っていく役割を担っていると考えると非常にやりがいがあります。暗号資産はまだまだ成長の余地がある分野なので、これからも多くの挑戦が待っていると思います。その中で、自分が新しい価値の交換を実現する一助になれること、自分がその一部として業界全体の成長に貢献できることは、エンジニアとしてもプロダクトマネージャーとしても非常に魅力的な仕事ですよね。

入社してもうすぐ3ヶ月になると思いますが、入社前と後で大きくイメージが変わった部分はありましたか?

そうですね、大きなズレを感じることはなかったですね。先ほどお話しした通り、コインチェックは情報発信を積極的に行っているので入社前にかなりの情報を得ていて、それに基づいたイメージを持っていました。実際に働いてみてもそのイメージに沿った形で仕事が進んでいるので「思っていたのと全然違った」ということはありませんでした。

また、私自身がこれまで同業他社や金融業界での経験を積んできたこともあって、業務の進め方や組織の運営にはある程度の予測がついていました。良い意味でも悪い意味でも、想像していた通りの部分が多かったですね。なので、入社してからの大きなギャップは感じていないです。
そしてやりがいも非常に感じています。特にコインチェックのミッションに共感している部分が大きいです。ビットコインのような暗号資産は、今では多くの人々に価値を認められています。現在1ビットコインが1,000万円前後で取引されていること自体がその価値を証明しています。そしてビットコインに限らず、イーサリアムをはじめとした他の暗号資産も同じようにその価値がどんどん浸透していっていると感じます。

そこで重要なのは、そういった暗号資産の価値を私たちがユーザーにとって「身近に感じられるもの」にするための入り口を提供することです。コインチェックはその「入り口」として非常に大きな役割を果たしていると感じています。

例えば、コインチェックは日本でダウンロード数 No.1の暗号資産アプリを提供しており、ユーザーが安心して取引を行うためのしっかりとした基盤があります。こうした基盤の上で、新しい価値を持った人々が暗号資産の世界に参加し、価値の交換を行える環境を作り出していくことは非常に面白いです。私たちの仕事はただ技術を提供するだけではなく、その技術がどれだけ多くの人々に価値をもたらすかが重要です。それを実現するための一端を担っていることは、本当にやりがいがあります。

チームで使用している技術スタックや開発環境について教えていただけますか?

私たちの開発チームで使用している技術スタックは、コインチェックの販売所同様に、Ruby on Rails(RoR)をベースとしています。バックエンドはRoRを中心に構築されており、Rubyエンジニアが主にその開発を担当しています。フロントエンドはRoRの都合上、Embedded Ruby(ERB)を使っていますが、Vue.js(特にVue3)も採用しており、継続的なデリバリーを行っています。

現在、フロントエンドとバックエンドの疎結合化を進めて、よりモダンな開発環境へ移行することを目指しています。具体的には、現在のERBとVue3を使用したフロントエンドから、Next.jsへと移行を進めているところです。この変更により、UXやCXへの影響をさらに向上させるとともに、開発者の体験(Developer Experience、DX)の改善も図っていきます。生産性を高めるためには、開発環境を継続的にアップデートし、モダンな技術を積極的に採用することが重要だと考えています。

開発ツールとしては、プロジェクト管理にJiraを使用しています。また、コード管理はGitHubを利用し、CI/CDのパイプラインを整備しています。開発環境は、主にDockerを使ってコンテナ化しており、効率的な開発フローを実現しています。また、クラウドインフラにはAWSを採用しており、スケーラビリティや信頼性の高いシステム構築を行っています。常に最適な開発環境を追求しながら、より良いプロダクトを提供していきたいと考えています。

チームの構成やそれぞれのメンバーの役割について教えていただけますか?

取引所事業部は、暗号資産取引所のシステムを開発・運用している職能横断的な「フィーチャーチーム」です。このチームは、プロダクトオーナー 兼プロダクトマネージャーとして3名、デザイナー1名、フロントエンドエンジニア3名、バックエンドエンジニア6名、そしてスクラムマスター1名で構成されています。私はその中でプロダクトオーナー 兼プロダクトマネージャーの1人として、案件ごとの仕様を決定し、プロジェクトを進行しています。

私たちが開発しているのは、コインチェックの暗号資産取引所そのもののシステムです。コインチェックには販売所と取引所があり、販売所はコインチェックが直接お客様と取引を行う場所です。一方で、取引所は、お客様同士の「売りたい」「買いたい」という注文をマッチングさせる場です。特に、取引所ではAPIを通じた取引が可能で大量の注文を高速で処理できるシステムトレードも提供しています。私たちは、そのような取引所システムを低レイテンシかつ高スループットで運用し、ユーザーのニーズに応えるために日々取り組んでいます。

プロダクトオーナー 兼プロダクトマネージャーとして、私を含めて3名いますが、それぞれ案件ごとに責任を持ち、仕様の策定やプロジェクトの進行を担当しています。私たちのリーダーは取引所事業部の部長である杉本さんで、彼が最終的な意思決定を行うことが多いですが、各プロジェクトにおいては私たち3人がそれぞれの案件を進めています。

また「ストリームアラインドチーム」として、顧客に継続的に価値を提供することを使命としています。そのためには、職能横断的なチーム構成が必要であり、プロダクトマネージャーだけでなく、デザイナー、フロントエンドエンジニア、バックエンドエンジニア、スクラムマスターなど、様々な役割のメンバーがチームに集まっています。これにより、各分野の専門家が協力してプロジェクトを進め、顧客に新しい機能や価値を迅速に提供できる体制を整えています。

特に、UXやCX(顧客体験)の観点から見てもデザイナーの存在は非常に重要です。外部のリソースに頼るのではなく、チームの中にデザイナーがいることで、デザイン面での改善や新機能の実装をより能動的に進められる環境を作ることができるのです。そのため、取引所事業部では初めて専任デザイナーを雇用しました。彼の役割は、ユーザー体験(UX)の向上を図るために、取引所のデザインを改善することです。特に、海外のOKXやBybitといった暗号資産トレードプラットフォームの優れた要素を取り入れながら、コインチェックの取引所のデザインをブラッシュアップしていく役割を担っています。取引所のユーザーが直感的に使えるデザインにするために、彼の存在は非常に重要です。

チームの雰囲気やコミュニケーションの方法についても教えてください。

まずチームの全体的な雰囲気としては、非常にオープンでフラットなコミュニケーションが行われています。現在、コインチェック全体ではオフラインでのコミュニケーションを増やす方針が打ち出されています。取引所事業部でもその方針に従って、月曜日、水曜日、金曜日はオフィスに出勤するルールを採用しており、火曜日と木曜日はリモートワークが許可されています

私たちは基本的に毎日30分程度のデイリースクラムを行い、オンラインとオフラインの両方を組み合わせてコミュニケーションを取っています。特にコロナ以降、リモートワークが中心になったためリモートだけでも問題なく業務は進んでいました。ただ、やはりオフラインで顔を合わせると、オンラインだけでは感じ取れない情報や、ちょっとしたニュアンスが伝わることもあるので、顔を合わせる機会があるのは重要だと感じています。

また、オンラインとオフラインをうまく併用することで、誰がどこにいるのかを把握しながらスムーズなコミュニケーションを保っています。たとえば、SlackやConfluenceを使って情報共有を徹底し、オフィスにいるメンバーだけで決めたことが、リモートのメンバーに伝わらないといったことがないように気をつけています。オフラインで話した内容も、しっかりとドキュメント化してナレッジとして残すことで、情報の流れを一貫させることを意識しています。

完全にリモートだけだとうまくいかないこともありますし、逆に毎日オフィスに通うのも大変なことがあるので、今のバランスは良いと感じています。チームとしても、顔を合わせることでコミュニケーションが円滑になり、プロジェクトも順調に進んでいると思います。

今のチーム課題と解決に向けた取り組みについて教えてください

現在、私たち取引所事業部が抱えている大きな課題の一つは、エンジニアリングの方向性や技術的な方針を明確に定めるリーダーシップの不足です。私たちは職能横断的なチームとして、プロダクトマネージャー、デザイナー、フロントエンドエンジニア、バックエンドエンジニアが一つのチームに集まり、ストリームアラインドチームとして Coincheck(取引所)やTradeViewを利用しているお客様に継続的に価値を提供することを目指しています。

日々の業務で技術的負債の返済に取り組んでいるエンジニアたちもいますが、より長期的な視点で技術をリードし、チーム全体を引っ張っていくための推進力が不足しています。特にエンジニアリング面でのリーダーシップが極めて重要であり、技術選定やシステムの進化に向けた大きなビジョンを示す「テックリード」の存在が必要不可欠だと感じています。テックリードとしてチームを技術的にリードするためには、一定の経験が必要であり、現在いるメンバーではその役割をすぐに担うことが難しい状況です。そのため外部から経験豊富なテックリードの方にチームに参画していただきたいと考えています。

金融業界においてシステム開発の経験がある方にとって、Rubyは必ずしも主流の技術ではないかもしれません。多くの場合、Javaなどのヘビーウェイトな言語が使われることが多いでしょう。しかし、私たちはRuby未経験であっても安心して学び、成長できる環境を提供しています。多くのエンジニアが新しい技術をキャッチアップし、スムーズにプロジェクトに参加しています。Rubyの経験がある方も、未経験の方も、共に技術的な課題を解決し金融システムにおける新たな価値を一緒に創造できると嬉しいです。

また、技術的負債の解消も私たちチームの課題の一つです。データベースのマイグレーションやAPIの最適化など、システム基盤に関わる部分に技術負債は多くあります。金融業界ではプロダクトのリリーススケジュールが優先され、エンジニアリングの要件が後回しにされることが多いです。しかし、コインチェックではエンジニアの意見がしっかりと尊重されています。

例えば、ある新機能を提供するためにデータベースにインデックスを再作成しなければならない場合、「このスケジュールでは間に合わないので、まずインデックスを再作成する時間を確保しましょう」といったエンジニアの意見が普通に通ります。これは、ビジネスサイドのメンバーもエンジニアリングを理解し、その重要性を認識しているからこそです。このように技術的負債を解消するために、エンジニアたちが自発的に取り組むことができる環境が整っている点もコインチェックの強みだと思います。エンジニアの意見が適切に反映される体制が確立されています。

エンジニアが自由に意見を述べられる環境が整っていることで、技術的負債を解消しながら新しい価値を提供するサイクルが回っていくと思います。また、これに加えて、テックリードの存在がチーム全体をさらに高い次元へ引っ張っていく力になるはずです。今後もエンジニアリングとビジネスの両方をバランスよく成長させていけるチームを目指していきたいですね。

最後にチームに興味を持ってくれた人にメッセージをお願いします

コインチェックは会社全体が非常にエンジニアを尊重し、エンジニアリングを基盤にした文化が根付いています。エンジニアがコードを書くだけではなく、他部門、例えばコンプライアンスやPRなどのメンバーともエンジニアリングをベースにした会話が頻繁に行われています。実際にイレギュラーなオペレーションが発生した際も、オペレーションをコードで管理し、それがプルリクエストを通じてレビューされ、最終的にお客様への対応がスムーズに実行される、という環境が整っています。こうしたプロセスに対する理解が、エンジニア以外の周辺の組織にも深く浸透しているのは、とても素晴らしい文化だと感じています。

また、コインチェックの特徴として全社的にエンジニア同士が持つ「HRT(謙虚、尊敬、信頼)」の精神があり、お互いをリスペクトしながら働く姿勢が非常に大切にされています。こうした関係性は、私がこの会社に入ってから良い意味で驚いた点でもあります。これまでの職場では、あまり経験したことのないレベルの信頼関係や尊重がここにはあります。
取引所事業部は、様々な施策でこれから取引を拡大させていく当社の注力ポイントであって、我々はこれから伸びゆく取引量に応えるシステムを備えなければなりません。

高スループットで低レイテンシなシステムを実現するために、テック・エンジニアリングで開発チームをリードしてくれる方と、事業を成長させながらお互いに成長していきたいと強く願います。
興味を持ってくれた方、ぜひ一度お会いしましょう!(オンライン/オフラインどちらも歓迎です!)

コインチェックではエンジニアを絶賛募集中です!

少しでも興味を持っていただけた方は、ぜひカジュアル面談からお問い合わせください。


コインチェックはエンジニア採用強化中です! ぜひ採用サイトにも遊びに来てくださいね。