My founder is popping champagne for our Series B. I’m in the bathroom, staring at our real user numbers. – Part 1

Story code: ST-000728

Part 1: The Query

Sitting on the closed lid of a toilet in the private event space at The Avery, I watched the AWS console load on my cracked phone screen. The bass from our Series B celebration rattled the brass fixture on the stall door, but I could only hear the blood rushing in my ears. A venture capital auditor had cornered me by the ice sculpture five minutes ago with a casual request for a raw ping-rate metric I had no reason to have memorized. I told him I would grab it from the backend and be right back. I ducked into this stall, expecting to run a five-second shell command, pull the number, and walk back out to grab a champagne flute.

Instead, my thumb hovered over a result set that made my throat close up.

I cleared the terminal app. I typed the query out again, character by character, making absolutely sure there were no syntax errors, no bad filters. My fingers were slick with sweat, slipping on the glass keyboard. I hit execute. The screen flashed black, then green text populated the terminal. The cursor blinked next to a single integer.

1,200.

I rubbed my eyes, pressing my palms into my sockets until bursts of light bloomed in the dark. I opened them and looked at the harsh glow of the screen again. One thousand, two hundred.

I toggled to my mobile browser and refreshed our internal admin dashboard. This was the exact same dashboard Julian had projected onto a massive screen in the main hall. He had stood in front of that screen not twenty minutes ago, raising a glass of Dom Perignon to a room full of investors, his custom-tailored suit catching the ambient light. The glowing blue graph on that dashboard, the one currently securing forty million dollars in Series B funding just on the other side of the bathroom wall, displayed a smooth, climbing curve.

Forty-eight thousand daily active users.

The stall suddenly felt like it was shrinking. The walls, lined with dark, polished stone, seemed to press inward. The air turned thin and hot, smelling sharply of expensive eucalyptus hand soap and my own nervous sweat. My lungs refused to expand fully. I loosened my tie, pulling the silk knot down, but the choking sensation remained.

I ran the query a third time. This time, I bypassed the caching layer entirely. I routed the connection straight to the raw replica database, the absolute bedrock of our architecture. The terminal spun for three agonizing seconds. Every beat of the bass from the DJ’s speakers felt like a physical blow to my chest. The number came back exactly the same.

1,200.

There was a massive, gaping hole in the reality of the company. I was the lead engineer. I built the data pipelines. I maintained the servers. I was the only person with the root access required to run this specific type of raw extraction. For the past six months, Julian had taken over the presentation layer, building out the custom dashboard for the investor roadshow. He told me it was to free up my time to focus on scaling the backend for the influx of new traffic. I had believed him. I had trusted the man I shared a dorm room with.

Now, staring at the raw logs, the silence of the database was deafening against the roar of the party outside. Forty-six thousand and eight hundred users did not exist. They were ghosts. They generated no logs, triggered no events, wrote no rows in the core tables. The dashboard was pulling from somewhere else, or it was hardcoded with a multiplier.

My stomach dropped, a cold stone sinking into my pelvis. I leaned forward, resting my forehead against the cool metal of the toilet paper dispenser. If the auditor asked to see my screen right now, the entire funding round would collapse. If I walked out there and showed Julian this number, I had no idea what his face would look like. A dark, terrifying realization began to form in the back of my mind regarding exactly how that dashboard was built and who had the keys to it.

The music outside shifted to a louder, more upbeat track. Cheers erupted from the main floor. They were celebrating a milestone we had never actually reached. My hands shook so badly I almost dropped the phone into the bowl. I needed to delete the query history. I needed to wipe the terminal cache. I needed to figure out a way to explain the ping-rate metric without revealing the core discrepancy.

Before my thumb could even hit the backspace key, the heavy wooden door to the main bathroom groaned open. Heavy, purposeful footsteps clicked across the tile. They stopped directly in front of my stall.

“Mark.”

Julian’s voice was sharp, cutting through the muffled bass. He rapped his knuckles against the stall door, three hard, fast strikes that made the metal vibrate against my shoulder.

“Mark, the Sequoia guys are asking for the technical lead. Get out here and take a bow.”

I stared at the glowing number 1,200 in my hand.

He hit the door again, louder, the hinges rattling in the frame.

“Mark, unlock the door.”

Sitting on the closed lid of a toilet in the private event space at The Avery, I watched the AWS console load on my cracked phone screen. The bass from our Series B celebration rattled the brass fixture on the stall door, but I could only hear the blood rushing in my ears. A venture capital auditor had cornered me by the ice sculpture five minutes ago with a casual request for a raw ping-rate metric I had no reason to have memorized. I told him I would grab it from the backend and be right back. I ducked into this stall, expecting to run a five-second shell command, pull the number, and walk back out to grab a champagne flute.

Instead, my thumb hovered over a result set that made my throat close up.

I cleared the terminal app. I typed the query out again, character by character, making absolutely sure there were no syntax errors, no bad filters. My fingers were slick with sweat, slipping on the glass keyboard. I hit execute. The screen flashed black, then green text populated the terminal. The cursor blinked next to a single integer.

1,200.

I rubbed my eyes, pressing my palms into my sockets until bursts of light bloomed in the dark. I opened them and looked at the harsh glow of the screen again. One thousand, two hundred.

I toggled to my mobile browser and refreshed our internal admin dashboard. This was the exact same dashboard Julian had projected onto a massive screen in the main hall. He had stood in front of that screen not twenty minutes ago, raising a glass of Dom Perignon to a room full of investors, his custom-tailored suit catching the ambient light. The glowing blue graph on that dashboard, the one currently securing forty million dollars in Series B funding just on the other side of the bathroom wall, displayed a smooth, climbing curve.

Forty-eight thousand daily active users.

The stall suddenly felt like it was shrinking. The walls, lined with dark, polished stone, seemed to press inward. The air turned thin and hot, smelling sharply of expensive eucalyptus hand soap and my own nervous sweat. My lungs refused to expand fully. I loosened my tie, pulling the silk knot down, but the choking sensation remained.

I ran the query a third time. This time, I bypassed the caching layer entirely. I routed the connection straight to the raw replica database, the absolute bedrock of our architecture. The terminal spun for three agonizing seconds. Every beat of the bass from the DJ’s speakers felt like a physical blow to my chest. The number came back exactly the same.

1,200.

There was a massive, gaping hole in the reality of the company. I was the lead engineer. I built the data pipelines. I maintained the servers. I was the only person with the root access required to run this specific type of raw extraction. For the past six months, Julian had taken over the presentation layer, building out the custom dashboard for the investor roadshow. He told me it was to free up my time to focus on scaling the backend for the influx of new traffic. I had believed him. I had trusted the man I shared a dorm room with.

Now, staring at the raw logs, the silence of the database was deafening against the roar of the party outside. Forty-six thousand and eight hundred users did not exist. They were ghosts. They generated no logs, triggered no events, wrote no rows in the core tables. The dashboard was pulling from somewhere else, or it was hardcoded with a multiplier.

My stomach dropped, a cold stone sinking into my pelvis. I leaned forward, resting my forehead against the cool metal of the toilet paper dispenser. If the auditor asked to see my screen right now, the entire funding round would collapse. If I walked out there and showed Julian this number, I had no idea what his face would look like. A dark, terrifying realization began to form in the back of my mind regarding exactly how that dashboard was built and who had the keys to it.

The music outside shifted to a louder, more upbeat track. Cheers erupted from the main floor. They were celebrating a milestone we had never actually reached. My hands shook so badly I almost dropped the phone into the bowl. I needed to delete the query history. I needed to wipe the terminal cache. I needed to figure out a way to explain the ping-rate metric without revealing the core discrepancy.

Before my thumb could even hit the backspace key, the heavy wooden door to the main bathroom groaned open. Heavy, purposeful footsteps clicked across the tile. They stopped directly in front of my stall.

“Mark.”

Julian’s voice was sharp, cutting through the muffled bass. He rapped his knuckles against the stall door, three hard, fast strikes that made the metal vibrate against my shoulder.

“Mark, the Sequoia guys are asking for the technical lead. Get out here and take a bow.”

I stared at the glowing number 1,200 in my hand.

He hit the door again, louder, the hinges rattling in the frame.

“Mark, unlock the door.”


Leave a Comment