会議室には、ぬるいコーヒーと緊張の汗の匂いが充満していた。私はマホガニーのテーブルの先頭に座り、MacBook Proの冷たい表面に手を置いていた。私は緊張していなかった。緊張とは不確実性への反応であり、私は自分のコードに不確かさを感じたことは一度もなかった。
そして、ホワイトボードの前にはブラッドが立っていた。創業者の息子。MBAを輝かせ、カタログから買ってきたような笑顔を浮かべた、就任からわずか4日目の最高技術責任者。彼は私のプロジェクトを指さし、「スパゲッティみたいだ」と笑った。
「ふくらんでる。重い」
部屋が静まり返った。私のチームはうつむいた。彼らは知っていた。ノード7が肥大化しているはずがない。それは10,000件の同時リクエストを処理できる、負荷分散の傑作だと。フェラーリのエンジンを見て、カムシャフトを知らないからといって「汚い」と言えるだろうか。
「ふくらんでいないよ、ブラッド」と私は冷静に言った。「これはレイテンシー低減プロトコルだ。スループットを20%向上させる」
ブラッドは湿った、見下すような笑い声をあげた。「そんなの誰が気にするんだ?君はただの邪魔者だ」
彼は管理者権限でコンソールを開いた。私の胃が締め付けられた。創業者のジェリーに警告したはずだった。彼に管理者権限を渡すのは、チンパンジーに拳銃を渡すようなものだと。しかしジェリーは、自信を持たせてやれと言っただけだった。
ブラッドはノード7のディレクトリにカーソルを合わせた。明日のデモのために、本番環境への自動デプロイが有効になっているというのに。
「削除」
彼は言い放ち、エンターキーを押した。ターミナルに緑のテキストが流れ、止まった。削除完了。
「君はロジック層を消したんだ」と私は座り直して言った。爆発物の専門家が、計画通りの爆発を見守るような奇妙な静けさを感じていた。「アプリは今や単なるフロントエンドの殻だ。データも取得できない、認証もできない。ゾンビだ」
ブラッドは顔を輝かせた。「ほら、君のネガティブさが問題なんだ。君はクビだ。荷物をまとめて出て行け」
部屋が息を呑んだ。マーカスが立ち上がろうとしたが、ブラッドに睨まれて座り込んだ。
その時、私の携帯が振動した。何週間も無視していた番号。私は出ることにした。
「ケイラです」
相手はオリオン・テクノロジーズのエンジニアリング担当副社長、イライアスだった。来週ストリームラインを3500万ドルで買収する予定の会社だ。「あなたからオファーへの返事がなくてね。明日、デュー・デリジェンスを終える。正直、君だけがこの買収に興味を持ち続ける理由なんだ」
私はブラッドを見た。彼は腕を組み、勝ち誇った笑みを浮かべている。
「はい」と私は電話に言った。声は部屋中に響いた。「オリオンからのオファーを受け入れます」
ブラッドの笑みが消えた。「誰だ?」
「すぐに仕事を始められます。今、予定が空いたんです」
電話を切り、MacBookを閉じ、ケーブルを抜いた。振り返らずにドアへ向かった。「頑張ってね、ブラッド」
通路を歩きながら、私は計算していた。ノード7は認証トークンを処理していた。それがないと、50分後には期限切れで全員が管理パネルから締め出される。ブラッドは私をクビにしたのではなく、燃えている建物に自分で鍵をかけたのだ。
私の机は、ぼんやりとした午後のオフィスの中にあった。誰も知らない。この会社はもう死んでいる。私は段ボール箱に私物を詰めた。キーボードのカスタムキー、ノイズキャンセリングヘッドホン、猫の写真。会社のパーカーとブランド入りの水筒は置いていった。
「本当なのか?」
振り返ると、シニアSEのグレッグが立っていた。彼は私と同等にインフラを理解している数少ない人物だ。「彼は本当にノード7の最適化モジュールを…」
「彼はコマンドラインを使わなかった。GUIで『削除』をクリックして、確認ダイアログも押したんだ」
グレッグの顔色がさっと変わった。「APIゲートウェイとロードバランサーは、トラフィックをルーティングするためにノード7に依存している。これが死んだら、ヘルスチェックが失敗する」
私はApple Watchをちらりと見た。あと9分。「そして、オートスケーラーが新しいインスタンスを起動しようとする。だが、ベースイメージはブラッドが変更したメインブランチから取得されるから、新しいインスタンスもクラッシュする。無限クラッシュループだ」
「デプロイを止めなきゃ」とグレッグは電話に手を伸ばした。
「止めないで」と私は鋭く言った。「今介入したら、君は新しいCTOに逆らうことになる。彼は管理者権限を持っている。君もクビになるよ。住宅ローンと双子がいるんだろう?」
グレッグは唾を飲み込んだ。「…燃えるままにしておくのか?」
「もう燃えてるのよ、グレッグ。あとは煙探知機が気づくのを待つだけ」
エレベーターで降りる直前、ブラッドの混乱した顔がガラス越しに見えた。私は手を振らなかった。ただ彼が孤独に気づくのを見ていた。
シアトルの冷たい雨の中、携帯で配車を呼んだ。「オリオン・テクノロジーズの建物まで」
オリオンのロビーは、ガラスと鋼鉄の大聖堂のようだった。イライアスはダークジーンズに黒のカシミアセーターを着て待っていた。「ルーティングが効率的でね。前のルートに障害物があっただけ」
私たちは湖の見える席に座った。「6ヶ月間、ストリームラインを買収しようとしてきた。だが、フロントエンドのコード、売上予測、ユーザー維持率、すべてに赤旗がついた。唯一、バックエンド、APIレイテンシー、データベース構造、暗号化プロトコルだけは完璧だった」
「私がいたからね」
イライアスはうなずいた。「そして今、君は自由だ」
「ブラッドが1時間前に、コードベースを『リーン化』した。ノード7のロジックモジュールを本番環境で削除して、私が止めようとしたからクビにした」
イライアスは口笛を吹いた。彼は驚いているのではなく、計算していた。血の匂いを嗅いだ鮫のように。「つまり、買収を完了しても、我々は抜け殻を得るだけだ。フロントエンドの見せかけと、大量の500エラー」
彼はタブレットをテーブルに滑らせた。「これはプロジェクト・ヴェッセルだ。我々が本当に欲しかったのは、エンジンだけだった。残りは捨てたかった。だが、テクノロジーが自壊しているなら、元の設計者と一緒にゼロから作ればいい」
「私がリードするの?」
「アーキテクチャの責任者、株式パートナー、給与は3倍、チームは自由に選べ。創業者の息子はなしだ」
私は設計図を見た。すでに自分の中でコードが組み上がっていた。「条件が一つ。事態が落ち着いたら、元チームの3人を雇いたい。マーカス、グレッグ、QAのサラを」
「完了だ」
一週間後、私はオフィスにいた。ドアのついた本物のオフィス。ラスティのスタックにシップの土台を組み上げていた。私の携帯は、地獄への窓だった。マーカスからのテキストには、オートスケーラーが15,000インスタンスを起動してクラッシュしたと書いてあった。グレッグは40時間も眠らずに、ブラッドが泣いていると報告してきた。
金曜日、デモ当日。私は救助ボートと名付けたチャットで、リアルタイムのテキストを見守っていた。
「ブラッドがクライアントサイドでデータをハードコードしてる。静的JSONファイルだ。見せかけの村だよ」とサラ。
「日付範囲でフィルターをかけるように頼んで」と私はイライアスにメッセージを送った。「去年は静的ファイルが1か月分しかカバーしていなかった」
デモが始まった。ブラッドはダッシュボードをクリックし続けた。「速いでしょ?」と彼は言った。あたりまえだ、ローカルCSVを読み込んでいるんだから。
オリオンの副社長が質問した。「去年の第3四半期の物流スループットを見せてください」
沈黙。ブラッドは「レイテンシーの関係でアーカイブされている」と言った。副社長は信じなかった。「データベースの整合性を確認したい。アーカイブを開いてください」
これで終わった。データベースは接続すらされていなかった。ブラッドはブラウザのコンソールで必死にタイプしていた。画面に巨大な赤いエラーが浮かんだ。「undefined is not a function」
オリオンの弁護士が立ち上がった。「このアプリケーションはネットワークリクエストを行っていません。これは静的ページです。バックエンドが接続されていません」
彼らは去っていった。マーカスのテキスト:「ジェリーが心臓発作を起こしそう。ブラッドが何か言った。『父さん、彼女が消したんだ』って」
チャットを閉じた。3500万ドルの取引は45分で消えた。エンジニアリングの基礎をなめていた男によって。
2週間後、カフェでマーカスに会った。彼は10歳老けて見えた。「投資家が逃げた。銀行口座は凍結された。ブラッドはクビになった。でもバックアップがね…。ブラッドがS3バケットのサブスクリプションを解約して、バックアップを消したんだ。『余計だ』って」
私は彼にオリオンの名刺を渡した。「応募してみな。私を推薦人にしろ。グレッグとサラにはもう話を通してある」
1ヶ月後、法定書類が届いた。ジェリーはオリオンを訴えた。私が「ロジック爆弾」を仕込んだと言うのだ。私が辞めた後、システムが崩壊するように。
「クレイジーだ」と私はイライアスのオフィスで言った。「私は爆弾なんて仕込んでない。ブラッドが自分の手で基礎を叩き壊したんだ。これは破壊行為じゃない。重力だよ」
「わかってる」とイライアスは落ち着いて言った。「我々は彼を呼んで、宣誓証言を取る。彼が法廷でそれを言えば、我々の弁護士が Git の履歴を見せる。ブラッドのコミット履歴は証拠としては完璧だ」
証言で、ジェリーは憔悴していた。「彼女がすべてを壊した!」
オリオンの弁護士が尋ねた。「記録によると、『ブラッド』というユーザーが当該日にノード7ディレクトリを削除したとあります。このユーザーをご存知ですか?」
ジェリーはどもった。「彼は…彼は最適化しようとしたんだ!」
私はドアから入った。私は整えられたブレザーを着ていた。ジェリーの指が震えた。
「私はあなたの会社を築いたのよ、ジェリー。5年間、あなたのシリーズ資金が高級オフィス家具に消えても、息子の給料に消えても、私はそれを動かし続けた。彼に管理者権限を与えないよう警告した。すべて記録してある。あなたも署名したはずよ」
私はフォルダをテーブルに滑らせた。「これがログよ。ブラッドはノード7を『削除』するだけじゃなかった。2015年のStack Overflowスレッドからコピーした、互換性のないコードで置き換えたの。車を壊しただけじゃなく、燃料タンクに砂糖を注いだのよ」
オリオンの弁護士は言った。「我々は反訴します。名誉毀損と、事業妨害を目的とした不当訴訟で。ただし、あなたがこの訴訟を即座に取り下げ、失敗が内部の管理不行き届きによるものだと公に認め、マーカス、グレッグ、サラの競業避止義務を即時免除するなら、考えないでもない」
ジェリーは法廷弁護士を見た。弁護士は首を振った。「もう終わりです」
ジェリーは椅子に崩れ落ちた。「…わかった」
去り際に、私は言い残した。「次にアーキテクトを解雇するときは、耐荷重壁がどこにあるか確認してからにするといいわよ」
3ヶ月後、プロジェクト・ヴェッセルが始動した。華々しいローンチはなかった。ただ、午前2時にスイッチが切り替わっただけだ。NASAの管制室のような部屋で、マーカス、グレッグ、サラが囲む画面には、黄金の光の流れが世界地図を走っていた。レイテンシー20ミリ秒。エラーゼロ。
「グローバル・フレイト・パートナーズが接続しました」とマーカスが笑った。ストリームライン最大の元顧客は、彼らがチャプター11を申請した翌週に移行してきた。
イライアスがシャンパンを持って現れた。「株価が4%上がった。ローンチの噂だけで」
今日、残っているのは私だけだ。燃え上がる炎の中に、すべてを置いてきた。



