第3章:ちゃんと作ることを学ぶ

Tony Duong

Tony Duong

5月 27, 20261

他の言語:🇫🇷🇬🇧
#career-story#career#personal#japan#tokyo#overflow#aws
第3章:ちゃんと作ることを学ぶ

次の仕事を探し始めたとき、東京のほとんどの開発者と同じことをしました。LinkedInを開いたのです。

Googleにも挑戦してみました。アルゴリズム問題で詰まりました。Leetcodeなんてやったこともなく、考えたこともなかったので、あの面接で「これは本気で取り組まないとダメだ」という言葉の本当の意味を知りました。不合格。当然です。とにかく挑戦しました。

それから、日本の大手人材紹介会社でありながら社内のエンジニア採用もしているビズリーチを受けました。面接はすべて日本語で、本当にうまくできたと思っていました。それでも不合格でした。気にはなりませんでした。この段階での就職活動は失敗というよりは、基準を測る作業のように感じていました。自分がどのあたりにいるのかを確かめていたのです。

転機は思いがけない方向からやってきました。東京を拠点とするフランス人のリクルーターからLinkedInでメッセージが届き、彼の紹介で恵比寿にあるOverflowというスタートアップの面接を受けることになりました。彼らのプロダクトは、エンジニアとデザイナー向けの求人マッチングプラットフォームでした。面接そのものは厳しいものでした。日本語はある程度は持ちこたえたものの、途中で限界がきました。答えられない質問もありました。今となってはその質問が何だったのかも覚えていません。覚えているのは、返事を期待せずに会場を後にしたということだけです。

数日後、合格通知のメールが届きました。二度読み直しました。待って、これから日本の会社で、毎日日本語を話して働くの? 緊張と興奮が同時にやってきて、胸の中でせめぎ合っていました。

私を採用してくれた面接官は大谷さんでした。そして大谷さんは、これまで出会った中で最高で最も優しいメンターの一人になりました。最初の数週間からそれが感じられました。彼は本気で私をエンジニアとして成長させたいと思ってくれていて、そのために実際に投資する忍耐力を持っていました。

ちなみに、私はOverflowの最初の正社員でした。それまでは全員がフリーランスかパートタイムだったのです。だからこれはまさに「ゼロから立ち上げる」ような役割で、Seidoから来た私にとっては大きなカルチャーチェンジでした。Seidoでは一人エンジニアとして全部やっていましたから。

SeidoとOverflowの違いを一言で表すなら、こうなります。Seidoでは作ることを学び、Overflowではちゃんと作ることを学びました。

とはいえ、Seidoでの経験は決して無駄ではありませんでした。そこで積み上げた実践的なRuby on Railsの経験はそのまま活きました。新しいコードベースを読みこなし、機能をリリースし、Overflowでの最初の数週間から戦力になることができました。「ちゃんと作る」という部分は時間をかけて身につけていくものでした。でも、速く動くための基本的な感覚は、すでに自分の手に馴染んでいて、その地味なアドバンテージは当時思っていた以上に大きな意味を持っていました。

Overflowで身につけたことはあっという間に積み上がっていきました。AWSをしっかりと — CDNとしてのCloudFront、ストレージのS3、ネットワーキング層、コンテナ化、WAFとShieldによるセキュリティ。DatadogとNew Relicによるオブザーバビリティとモニタリング。「高可用性、高性能、スケーラブル」という語彙のすべてが、面接で繰り返せる抽象的なフレーズから、実際に考えを巡らせられる概念へと変わっていきました。最初に任された仕事は、リクルーターにcronでおすすめ候補者リストを送るSlack連携でした。規模は小さかったですが、ちゃんとリリースできました。そして、それを進める中であることに気づきました。この規模の会社では、コミュニケーションがコードと同じくらいのスキルだということです。自分が何をしていて、なぜそうしているのかを、書面で明確に説明できること。それは技術的な仕事と同じレベルで尊重されていました。私の話す日本語はまだ十分とは言えませんでしたが、書面でのコミュニケーションには思い切り力を入れました。もともと構造化することが好きなので、その部分は自分に合っていました。

機能の開発は続きました。Offers Magazineというブログプロダクト。メインのOffersアプリで各ステージごとのファネル数値を表示するアナリティクス機能 — ここでBigQueryと、大規模なビッグデータ集計が実際にどんな感じなのかを学びました。GraphQL API。何時間ものデバッグ。次の2年以上で数十もの機能を作りました。今となっては個別に思い出せないほどの数です。緊急のホットフィックスのデプロイや、ギリギリでのバグ追跡もありました。具体的なことはもう覚えていませんが、それはむしろ良いことだと思います。データベースを壊したことは一度もありません。それは誇ってもいいと思います(笑)。

大谷さんからのフィードバックで、早い段階で心に響き、ずっと残っているものがあります。私はリリースが速かったのです。たぶん速すぎました。入社一ヶ月目に呼ばれて、もう少しスピードを落として、まず品質に集中するように言われました。そのアドバイスを受け入れて、今でもそれをくれたことに感謝しています。

仕事以外でも、この期間に大きなことが二つありました。人生のパートナーに出会いました — 彼女は日本人です。日常生活の中で日本語は確実に上達していましたが、正直に言うと、仕事の日本語のほうがずっと上達しました。仕事で使う日本語というのはまた別の筋肉です。この期間のどこかで、日本語で夢を見るようになったことに気づきました。これは演技ではできないことです。翻訳ツールに頼らずに理解できることがどんどん増えていきました。

サイドプロジェクトもいくつか始めました。

最初のものは、Axie Infinity向けのChrome拡張機能でした。暗号通貨でモンスターを繁殖させて取引するあのNFTゲームです。私自身もプレイヤーで、お金もある程度入れていたので、マーケットプレイスのUIはかなり把握していました。ある日、特定のことに気づきました。APIは各Axieの遺伝子情報を公開していたのに、ウェブサイトはそれを一覧に表示していなかったのです。その遺伝子は、本気で繁殖の意思決定をする人にとって重要なものでした。そこでユーザースクリプト / Tampermonkey形式の拡張機能を書いて、APIから遺伝子を取得してマーケットプレイスのカード上にオーバーレイ表示するようにしました。Axie Discordにリンクを投下すると — そこには数千人がいました — 1日に数百ダウンロードされるようになりました。Stripeで一回限りのアンロック料金を追加しました。人々がお金を払ってくれました。ピーク時には1日あたり約30ドルの収益がありました。人生を変えるほどの金額ではありませんが、寝ている間にリアルなお金が入ってくるという経験は新鮮でした。

二つ目はShirimonoという日本語学習サイトでした。同じアプローチで、Stripeのサブスクリプション、すべて同じ仕組みです。有料ユーザーは最大で3人ほどで頭打ちになり、開発を続ける余裕もなくなって、閉じました。(2026年5月の追記:今年の初めにShirimonoを再開して、ゼロから作り直しました。だからこれは実は終わっていなくて、長い休止期間を経ただけです。)

両方のサイドプロジェクトを合わせても裕福になることはありませんでしたが、作り、デプロイし、マネタイズし、サポートするという経験は、お金以上の価値がありました。あのプロジェクトが強制してきたフルスタックのオーナーシップは、それ自体が一つの講座のようなものでした。

Overflowに入って約1年が経った頃、大きな昇進をしました。大谷さんから、社内のパフォーマンス上位5%あたりにいると言われました。正確な数字は記憶があやふやかもしれませんが、その瞬間のことは覚えています。驚きましたし、心から認められていると感じました。こういう感覚は、自分でコントロールできるものではないからこそ、しっかり覚えておきたいのです。

そして、2年半ほど経った頃、また落ち着かない気持ちが戻ってきました。

会社や人に問題があったわけではありません。毎日同じプラットフォームで開発をしていて、自分が新しく開拓している領域に天井を感じ始めたのです。またもっとが欲しくなりました。一つの考えが浮かびました。コンサルティングファームに行ったらどうだろう? 異なるクライアント、異なるスタック、異なる課題に、ローテーションで配属される場所に。

辞めることを大谷さんに伝えるのは、これまでのキャリアで最も難しい会話の一つでした。しかも一度の会話ではありませんでした。何度もありました。1on1のあとにまた1on1、その繰り返しで、毎回オフィスを出るたびに自問していました。これは本当に正しい決断なのか? 彼は心から尊敬している人で、引き留めようとしてくれているのを感じました — 優しく、決して押し付けがましくなく。私自身も終わらせたくなかったので、このプロセスは何ヶ月にもわたって続きました。

正式に辞めた後も、大谷さんはずっと味方でいてくれました。キャリアの相談にいつでも応じてくれて — 数年経った今でもそうです — 新しいアプリの機能開発を手伝うフリーランスとして再び雇ってくれました。追加の収入はありがたかったです。でも、本業のあとに毎晩2〜3時間働くのは、本当に消耗しました。半月ほどで、もう限界でやめました。

最初にOverflowを紹介してくれた同じリクルーターのところに戻って、外部のクライアントワークをやっているコンサルティングファームを知らないかと聞きました。彼が紹介してくれたのが、モンスターラボでした。多くの国にオフィスを持ち、日本でも大きな存在感のあるグローバルなコンサルティングファームです。面接はこれまでで最もスムーズで、その違いがはっきりと感じられました。Overflowでの2年半が、自分の答えにそのまま乗っていました。バックエンドのパフォーマンス、AWS、キャッシュ戦略、負荷のかかる状況でデータベースを高可用に保つ方法について、深く話しました。これらのことを今は分かっていました。初めて、落ち着いていた。自信があった。

オファーをもらいました。受けました。

次の目的地:モンスターラボ。


主な実績

この2年半で取り組んだことを、もう少し具体的にまとめておきます。

  • Offers の開発に参加。 エンジニアとデザイナー向けの転職マッチングプラットフォームで、プロダクトマネージャーやデザイナーと日々連携し、アイデアをリリースされる機能へと形にしました。
  • Slack 連携を構築。 条件に合う求人が出たときにリクルーターと求職者へリアルタイムで通知し、ページを更新しなくても「適切な機会が適切な人に届く」状態を実現しました。
  • 自律的に動けるエンジニアへ成長。 最初はシニアエンジニアの指示に従っていましたが、ほどなくして、ただ実装するだけでなく自ら解決策を提案し、新機能を設計する立場になりました。
  • 日本語で効果的にコミュニケーションする力を習得。 口頭・文章の両方で、特に文章でのやり取りは自分の強みとして頼れるものになりました。
  • Offers Magazine の開発に参加。 エンジニアリングとデザインに関するあらゆるテーマを扱うデジタルマガジンで、AWS CloudFront・WAF・S3 や、WordPress をバックエンドにしたヘッドレス CMS 構成を実地で学びました。
  • AWS Redshift を用いた高性能な分析ツールを構築。 複雑な SQL クエリで分析データを集計・抽出しました。
  • フロントエンドを Vue.js で開発。 デザイナーから受け取るデザイン(多くは HTML と CSS の形)を、実データとつないだ完全にインタラクティブな体験へと作り込む、という協業を密に行いました。

🌐 Claudeによる翻訳

Tony Duong

著者: Tony Duong

デジタル日記。思考、経験、そして人生についての考え。