れこです。約 2 年勤めた ClassDo を退職し Yuimedi に転職しました。それに伴いシンガポールから日本に帰国しました。ということでこの 2 年の振り返りと今後の話を書きます。
ClassDo はシンガポールを拠点とする EdTech 系の SaaS を作っているスタートアップ企業の名称であり、プロダクトの名前でもあります。シンガポール、マレーシア、日本などからフルリモートで働いています。社内の公用語は基本的に英語です。
— ClassDo | Your indispensable assistant for personalised learning
シンガポールについて詳しくない方向けに概要を書いておきます。
きっかけはリファラル採用のお誘いがあったことで、以下の理由で転職しシンガポールへの移住を決めました。
とくに英語に関しては全くと言っていいほどできませんでした。読み書きなら多少はできるけど聞くのと話すのは全くできず対面でコミュニケーションできないコンプレックスを抱えていたのでそれを解消するいい修行の機会だと感じました。 「別に日本に居ながらでも英語は勉強できるのでは?」 と思う人もいると思いますが、私は自分に甘いので必然性がなく好きでもないことを努力し続けることができない人間であり、もともと持ってる得意分野を手土産に自分の苦手分野が必要とされる必然性のある環境に自分を放り込んで上達せざるを得なくする方法が自分に合っているためシンガポールへ行くことを選びました。
居たのは 2 年弱でしたが、行ったことない場所や未体験のことを優先してやっていたので色んな事を経験できたと思います。笑い話、苦労話、趣味の話、食事事情、海外移住やコロナ禍のあれこれなどシンガポール生活の話はいろいろありますが全部書くと中身が散らかってしまうので割愛し 仕事、コンプレックスだった英語、対外的な活動の 3 点に絞って振り返ります。シンガポールでの生活についてはお話しする機会があればぜひその時いろいろ話させてください。
軸足はソフトウェア開発者ですが、時期に応じて組織に足りない機能を補えて自分の興味関心が重なる領域を選んで仕事していました。
ClassDo の言語は主に TypeScript (と一部 Go)です。主な使用技術は Vue.js、Apollo(GraphQL)、Prisma、serverless(フレームワーク)、Docker、k8s、インフラは AWS という感じのスタックです。その他特徴的な要素としてはリアルタイム同時編集、ビデオ通話、Personalized learning のためのデータ分析・可視化などがあります。PO は技術者上がりではないので技術の詳細は分からないけど技術的な観点からの提案や懸念が具体的にどのようなコスト・リスク・インパクトに繋がるのかを正確に把握しようと努めており、その上でどうバランスを取るかを考え意思決定している環境でした。
私が具体的にやってたことは新規開発や既存機能の改修、フロントエンド・バックエンドのパフォーマンス最適化、管理画面のリニューアル、メディア変換サーバの構築と運用、技術負債の返却、あとはログ収集・データ分析基盤の整備、後述するデータエンジニアリングと掛け合わせた学習データの可視化などが主で、フロントエンド/バックエンド/インフラ拘らずやってました。Node.js・TypeScript・serverless あたりはすでにある経験値の切り売りをしていましたが、Vue.js、GraphQL、k8s、Prisma 辺りは 本番での運用経験値がなくほぼゼロからの学習でした。Vue.js コミッターの同僚やGraphQL Tokyoの co-organizer の同僚などにレビューで鍛えていただきました。また、リアルタイム共同編集やビデオ通話の開発・運用経験もなかったのでフロントもサーバの実装もこれまで考慮したことなかった観点を多く得られました。
ユーザのフィードバックやアプリケーションのデータとログは蓄積してるけどそれを利活用する土壌が整っていなかったのでデータエンジニアリングと統計学に入門しデータ分析基盤(データレイク、DWH、データマート)用のパイプラインの設計・構築・運用保守をやってました。また、作った基盤を用いてアプリケーションのデータやログデータの解析、利用状況の調査、利用開始フローのファネル解析、KPI や財務モデリングの仮説検討・根拠出しのデータ分析、ダッシュボードを整備して各種メトリクスの可視化、ダッシュボードを見る/定期的に見直す啓蒙活動などをやってました。
組織が大きくなるにつれ従来のやり方では開発がスムーズに回らなくなり、サイロ化やコンテキスト共有・属人化・進捗などの課題がありました。業務フローや開発プロセスから根本的な課題を整理した結果スクラムの導入で多くの問題を解決できそうだったのでスクラムマスターになってスクラムを導入しました。エンジニア・PO 以外の関係者も巻き込みスクラム勉強会(日本語・英語)を開催したり都度トラブルシューティングしながら Sprint Retrospective でプロセスを改善し組織に定着させました。スプリントを重ねるごとにスクラムマスターとして積極的にコミュニケーションを Proxy せずとも自律的にコミュニケーションが成立するようになったのでその後は自分も 1 開発者として開発に参加していました。
なるべく独自の要素が混じらないようスクラムガイド 2020 を原則としつつ、不明瞭な箇所やガイドに明記されてないアンチパターン、運用して分かった経験則などついてはスクラム(マスター)経験者にヒアリングしたりカンファレンスの登壇資料やブログ記事を読み漁り補っていました。
入社後の立ち上げフローを整え最初の 1PR 出すまでのチュートリアルやより詳しい情報へ潜っていける資料を整え、新しく入った方が本筋じゃないことに手間取ることなくキャッチアップできるよう社内の情報整備や新しいメンバーの伴走をやってました。あとはリファラル以外の選択肢を広げるため候補者の情報管理ツールや求人メディアの選定と導入をしたり、採用ページや採用資料作ったり足回りを整えてました。
英語については当初の目的であったコンプレックスは無事解消できました。結局のところ流暢にはなれませんでしたが英語ネイティブと一緒に仕事・課題解決することへのハードルは感じなくなったので、日本に戻ってきても英語を使う必然性を作りながら場数を踏みながら上達していければいいかなと考えてます。
入社当初は英語が起因のコミュニケーション課題を強く感じたため文法・単語・リスニング・スピーキング・シャドーイング・瞬間英作文などを毎日 2-3h くらい勉強していました。勉強をしてく過程で自分から何かを提案したりミーティングのファシリテーションをするようになったり同僚のホームパーティに招待してもらうなどで使用機会が増え英語でコミュニケーションを取ることの怖さ・抵抗は徐々に薄らいでいきました。前述のスクラムの導入などチームを跨ぐような課題解決や合意形成をする時に英語ができないと何も物事を進められないのでそういう課題に挑むたびに上達したと感じます。他にはシンガポール人インターン生のコードレビューや実装のメンターをやるのもいい機会になりました。
シンガポールにいる間はコミュニティ活動はほとんどしませんでした。シンガポールにも JS のコミュニティがあり移住したてのころはリモートで開催してたんですが、徐々に開催頻度が減るにつれて疎遠になりました。シンガポールで開催されているJSConf Asiaのスタッフになりネットワーキングしようと狙っていたのですがコロナ禍により開催されませんでした。唯一携わったのは去年に開催されたJSConf JPの運営スタッフとして web サイトの運用と当日スタッフをやってました。という感じで日本・シンガポール共に技術コミュニティにはほぼ全く参加していませんでした。GitHub では OSS に PR 出したり自分の作りたいものを粛々と作っていました。いくつか作ったものを紹介すると
振り返りは以上です。今後の話としては 5 月からYuimediと言う会社に転職しました。すでに@watildeがブログにて書いてましたが、Yuimedi は世界で医療データの利活用を広く推進するためのプロダクトを作っています。
プロダクトは、現状としては Node.js, Electron, TypeScript, React, NestJS, AWS あたりの技術スタックの上で、npm のようなエコシステムを持つ医療データに特化した ELT ツールのようなものを作っています。この領域では、dbt や Dataform など、様々な先駆者がいる理解をしていますが、ヘルスケア業界特有の非機能要件や要求されるユーザー体験に大きなギャップがありそうです。利用者の声を聞きながら、長期的に目指すビジョンの実現に合わせて形を変えながらチーム一丸となってプロダクトの開発をしていければと思います。
個人的に Yuimedi に魅力を感じていることは以下の通りです。
自分と重なる部分としては以下の通りです。
その他の個人的な抱負は資格を取ることです。これまで技術に関連する資格を取ろうと思ったことがなかったのですが、統計検定準 1 級受験体験記 | MoT Lab (Mobility Technologies Engineering Blog)を読んで資格を取るために勉強をすることで独学の偏った知識を補完しその分野を包括的に理解する 1 つのいい機会だと感じたので Professional Scrum Master Ⅰ(PSM Ⅰ)と統計検定準 1 級の取得を目指し勉強しようと思います。
近況報告は以上です。もし当記事の内容や Yuimedi に興味があったら転職意向の有無に関わらずお話してみませんか。また、医療データの標準規格(CDISC CDASH、OHDSI OMOP CDM、FHIR など)について詳しい方、そういう開発の仕事をされている方、そういう方が知り合いにいる方がもしいたらお話聞かせていただけると大変助かります。
知ってる方でも初めましての方でもオフラインなら Twitter(@L_e_k_o)にてご連絡いただくか、リモートならこちらのリンク(Google カレンダー)から都合の良い時間帯を抑えていただけますと幸いです。なお Twitter の DM はフォローしてない方にも open になっております。