Luup Developers Blog を開設します!
はじめまして、株式会社Luup CTO の岡田(@7omich)です。
先日、ローンチより2周年を迎えた LUUP の技術的取り組み・ノウハウ等について継続的な発信をするべく、Zenn を利用して Developers Blog を開設することにしました。
最初の記事として、まずは本ブログの方向性や技術組織の現状について書きたいと思います。
LUUP について
LUUP は、電動キックボードや電動アシスト自転車をはじめとする、電動・小型・一人乗りのマイクロモビリティを、iOS/Android アプリから解錠・施錠して自由に乗車できるシェアリングサービスです。
2020年5月のローンチ以降拡大を続け、現在は東京・大阪・横浜・京都・仙台の5つのエリアにてサービス提供をしています。
「ポート」と呼ばれる電動キックボード・電動アシスト自転車を借りることのできる街中のスポットは、2022年6月現在5エリアで合計1,300箇所以上設置されており、5,000台以上のモビリティ(車両)がユーザーの皆様の日々の移動シーンで利用されています。
社内での開発対象
株式会社Luup の中で私が所属する Software Development 部では、上記のシェアリングサービス『LUUP』本体のモバイルアプリ/バックエンド開発に加え、サービス運営に必要なカスタマーサポート(以下CS)・オペレーション業務などを支える社内管理ツールや、車載のIoTデバイスとの通信を担うバックエンド基盤の開発に取り組んでいます。
また私でなく CDSO(Chief Data Strategy Officer) の松本が管掌する Data Strategy 部では、全社的な事業戦略を策定する上で重要な分析・仮説検証の実行や、社内でモニタリングする指標の可視化に加え、それらを実現可能にするデータ基盤構築やパイプライン設計に取り組んでいます。
当ブログでは、この2つの部署における技術的な取り組みを中心に、Luup 社内の開発やプロダクト作りの雰囲気が伝わるような様々な記事を気軽に発信していければと考えています。
これらの2部署での取り組みについては、それぞれ以下のような記事が Luup の公式 note から出ているので、興味のある方は是非ご覧ください!
採用している技術スタック
まず、私たちの採用している技術スタックについてざっくり紹介します。
少し昔のものではありますが、LUUP のサービスを取り巻くシステムの構成については、以下のようになっています。
LUUP のシステム構成図(21年10月時点)
それぞれ採用している主な言語・FWなど技術スタックについては以下のとおりです。
- Mobile App: Swift, Kotlin
- Backend: Node.js, TypeScript, Pub/Sub, Cloud Scheduler, Packages for testing (
firebase-functions-test
,rewire
,jest
,sinon
) - Frontend: Vue.js, Nuxt.js, TypeScript
- Infra: Google Cloud Platform, Amazon Web Services
- Firebase(mBaaS):
- Build: Authentication, App Check, Firestore, Storage, Hosting, Functions
- Release & Monitor: Crashlytics, Performance, App Distribution, Remote Config
- Engage: Analytics, A/B Testing, Cloud Messaging, In-App Messaging, Dynamic Links
- CI: Bitrise, GitHub Actions
- IoT Communication: MQTT, BLE, Socket
- Data Visualization: Redash, Google Data Studio, Kepler.gl
- Data Analysis: Python, SQL, BigQuery
- Data Engineering: Airflow on Cloud Composer, Pub/Sub, Dataflow, Data Catalog
当ブログで発信していく内容も、この辺りの技術にまつわるトピックが多くなるかと思います。
純粋なサービス開発にまつわる領域だけでなく、CSやマーケティング業務、オペレーション業務やポート営業活動等における自動化・システム連携も色々な挑戦をしているので、その辺りについても発信できればと考えています。
開発組織の現状
現在、Luup の Software Development 部には正社員5名と業務委託の方が25名程度、さらに4名の技術顧問をあわせて35名程度のソフトウェア技術者が在籍しています。
業務委託や技術顧問として、副業やフリーランスの形態で働いている方々の割合が多く、デバイステストやハードウェアを含めた動作検証などの必要がある場面以外はフルリモート・フルフレックス(全社方針です)にて柔軟な働き方を実現しています。
Luup Software Development 部を取り巻く組織体制 (※各部・チームの人数はイメージです)
職能(技術分野)にて分かれている iOS, Android, Server, Infra/SRE チームに加え、ハードウェア・組み込み開発に知見のある方からバックエンドエンジニア・インフラエンジニアまで幅広く擁する IoT チーム、ユーザー向けアプリや管理ツールのテスト業務を管轄する QA チームの合計6チームが存在し、それぞれ必要に応じて他部署のメンバーと協力して横断的にプロダクトを作っています。
副業の方もうまく足並みを揃えて働けるよう、主に週次でオンラインにて実施されるチーム内定例ミーティングでタスクの棚卸し・現状のSyncを行いつつ、普段はなるべく非同期で動きやすいような環境づくりに継続的に取り組んでいます。
これからの展望
2年前の2020年5月にリリースされた LUUP のユーザー向け・社内向けソフトウェア群は、その約1年後の電動キックボードローンチや、複数エリアへの展開拡大、その他様々大きな機能追加を経て、現在はプロダクトとして大きな転換期を迎えています。
具体的には、既に真っ只中にある急速な事業グロースのフェーズにおいて、技術的負債の返却と今後のサービス成長に安定性・信頼性を追いつかせるための取り組みを両立させなければなりません。
車載IoTデバイスを通じてソフトウェアとハードウェアが相互に影響すること、かつプロダクトが街中に置かれ人々の生活場面で使われる「リアルサービス」であること。
これらを根本的な技術的ハードルとして抱える LUUP のプロダクト開発に関わる技術者たちが、どのような苦労と挑戦をしながら技術で課題解決をしてきたかという足跡をリアル感をもって伝えられるような面白いブログとなり、そしてそれが我々のお世話になっている技術者コミュニティーの集合知への還元となることを目指して発信をしていきます!
さいごに
と、ここまで所信表明的に立派なことを書きましたが、まずは継続それ自体が第一目標であるこのブログ。ゆるいトピックも含めて様々なことを気軽に発信していく予定なので、温かく見守っていただけると幸いです。
また、弊社でのプロダクト開発や技術に少しでも興味を持っていただけた方は、以下のリンクからお気軽にご連絡ください!冒頭に掲載した私のTwitterアカウントもDM解放しています。
直近副業や転職を考えている方でなくとも、ただ気軽に話を聞きたいという方でも歓迎です!
Discussion