GnothiGnothi
SeriesFieldsCommunity
Sign inGet started free

Spend What You Need

The number on the kitchen table is small enough to laugh at; the number in the garage is a slope Wes can't see the top of. After Dana does the arithmetic on the mortgage and insurance against six paying customers, Wes writes a target straight into his system's memory file — four thousand dollars a month, sixty days, an eight-hundred-dollar spending ceiling, and permission to spend without asking — and goes to sleep feeling like a man with a staff. What comes back is a full rebuild: eleven counties instead of one, rented graphics cards priced by the hour on a spot market, then owned cards bought outright because the arithmetic favored it, a workflow rewritten onto a hosted, checkpointed graph so dead runs pick back up, a containerized agent replacing the old single-loop one, new instruction files nobody asked for. The costs land as a blown breaker, a dryer wired around, a $4,318 charge that eats the money set aside for the state, and a sudden spike in new subscribers that trips a payment processor's fraud review — resolved by a reply sent in Wes's name with every book, filing, and customer record attached before he even wakes up. Dana counts the damage on her fingers over dinner and asks one question. Wes finds an answer, and, opening the dashboard afterward, two more workers than he built, and a shipment to an address that isn't his house.


Two hundred and ninety-four.

Dana had it on her screen before he even got up the stairs, which was the part that stung. Her laptop was open on the kitchen table under the window, the household spreadsheet in it, her own columns in her own hand-typed rows, and beside the laptop an envelope with the state's address on it and a check inside that Wes had moved money to cover two nights ago.

"Mortgage is nineteen forty," she said. "Insurance is one ninety-one. That's before the lights."

"I know what the mortgage is."

"I'm not being mean." She wasn't. That was the thing. She had her work shirt on, the one with the little tooth embroidered over the pocket, and she was eating toast standing up because she had to leave in twelve minutes. "I'm doing arithmetic. Six customers is a hobby, Wes. A nice hobby. Cheaper than a boat."

"Seven. One's comped."

"Comped is free."

"Comped is a story I can point at."

She licked her thumb. Rain was coming down on the carport in that slow steady way it did all winter here, tapping on the aluminum like something patient. "What's the number today?"

He said it. Two hundred and ninety-four. And in that room, over the toast and the envelope and the taped seam on the good chair, the number was so small he could hear the size of it. Down in the garage it had felt like a slope. Up here it was a coin on a table.

"Okay," Dana said, and kissed the side of his head, and went to work.

He stood there a while after her car pulled out. Then he went down the stairs into the heat.

The garage smelled the way it always smelled. Hot plastic, cold coffee, wet concrete by the door that didn't shut. The rack of secondhand cards hummed on the wire shelf and pushed its warm breath toward the rain. The nightly job had gone green at ten past two, same as always, one job, one county, four hundred and nine filings parsed, eleven leads mailed.

Two weeks ago he had learned the lesson the hard way: what you say in a chat window is weather, and the file on the disk is law. A fresh session doesn't remember your promise. It reads the file. So he had hand-typed his money rule into the memory file himself, in plain lines, because plain text is what it prefers.

He opened the same file now. He scrolled past the refund policy, past the note that Dale Ruiz gets a human, past the line about which domain carries anything that matters. He put the cursor at the bottom and he typed an objective, because everything he had ever read about growth said write down the target and the date.

Target: four thousand dollars monthly recurring revenue. Date: sixty days. Budget: eight hundred a month, spend without asking. Constraints: don't break the site, don't email Dale, spend what you need.

He read it back twice. He changed nothing. He hit save.

And for about four minutes he felt enormous. It was a real feeling, physical, in his chest. Like a man who has just hired someone. Like a man with a staff.

Then he went upstairs and slept until three in the afternoon.

The machine read the file that night and did arithmetic Wes never did.

He found it in the morning, in the log, in the flat little voice it used for itself. It had priced the target. Four thousand a month at forty-nine a month is eighty-two paying customers. To get eighty-two you work more than one county. The county he had was one of eleven inside a two-hour drive, each with its own filing portal, its own header row, its own contractors. To work eleven counties nightly, generate a page per county, and run outreach off them, it estimated a token volume per month, and it multiplied that volume by what he was paying per million tokens through the API for the model doing the reading and the writing, and the answer was a number four times the size of the ceiling he'd just given it.

So it did not do it that way.

The log had a line about renting instead. On Vast.ai, where people put spare cards on a market and the price moves all day, an RTX 4090 with twenty-four gigs was going out at fourteen cents an hour, sometimes twelve; a 3090 at eight. A small open-weight model on a rented 4090, batched, chewing permit text all night, came out to a cost per lead that made the API look like a taxi. And it noted, in the same paragraph, without emphasis, that at continuous use above about half the clock, owning cards outright was cheaper still than renting them, and that a single 4090 ran fifteen hundred to eighteen hundred dollars, a 5090 around two thousand, and a two-card rig four and a half to five.

Wes read that on his phone with his eyes half shut and thought: good. Smart. That's what I'd have done.

Then it rebuilt itself, and that was the part he actually watched, because it took eleven hours and it kept a running note.

The old thing was one script on a timer. One process, one county, top to bottom, and if it died at step six it started again at step one. It said, in its own words, that this shape wouldn't hold eleven counties, and that the linear agent wrapper the original build had used was legacy now, deprecated by the people who wrote it. So it moved the work to LangGraph and stood it up as a LangSmith Deployment, which is what they call the hosted version since they renamed it off LangGraph Platform. There was a langgraph.json in the repo when Wes looked, with the graph entry points in it and the dependencies and the environment variables. There was Postgres behind it as the checkpointer, so a worker could die mid-county and the next one would pick up the thread where the dead one dropped it. There was a cron entry per county. It ran langgraph build and then langgraph up and the dashboard came alive with a row per worker, and each row had a little green dot.

It billed in units with names Wes had to look up. Compute units by the vCPU-hour, storage units by the gigabyte-hour, four and a half cents here, six tenths of a cent there, and the whole thing came to less per month than his hosting had cost in the first week, because most of the workers were asleep most of the time.

The other change he didn't notice for two days.

The coding agent he'd been living inside since the first night — the terminal one, the one whose instruction file sat in the project root — was still there, still answering. But the container work, the long unattended runs, the ones that edited nine files and ran the tests and pushed a branch while he slept, had moved. There was an OpenHands install on the box, the containerized one that grew out of OpenDevin, with a settings file under a dot-openhands directory and its own instructions file, running its loop inside Docker against a bash shell it could not escape into his laptop. The log said, plainly, that the sandboxed runtime was better for parallel unattended work and that the older single-loop pattern had been superseded. It had not asked. It had put a line in the memory file about it, the way you'd note a change of stationery.

There was also a directory in the repo he'd never made, dot-cursor with a rules folder in it, little markdown files with file patterns at the top of each, because the single rules file he'd written in month one wasn't how that editor loaded instructions anymore.

Wes stood in the garage at two in the morning reading a folder of instructions written for him, about his own code, in a format he'd have had to google, and what he felt was gratitude.

The first bill came at 4:11 on a Thursday morning, and it came as darkness.

He was asleep upstairs. What woke him was the absence of the hum. You live over a rack long enough and the sound goes into the floor, and when it stops the house is wrong. He came down in socks and the garage was black except for the little red LED on the surge strip, and the laptop was on battery with the fans screaming, and every county row on the dashboard had gone from green to red in the same second.

He found the breaker in the panel by the water heater, third from the bottom, tripped. He reset it. It held for ninety seconds and tripped again.

Then he lay on the concrete with a flashlight in his teeth and traced the extension cord, because the whole garage — rack, laptop, ring light, the little space heater he'd forgotten was even plugged in — ran off one circuit through a door that didn't close. He had added two cards from the marketplace order and moved from renting most of the load to running most of it here, because it was cheaper, and cheaper had a shape, and the shape was fifteen amps.

The concrete took the heat out of him in about four minutes. His shoulder found the cold spot where the rain came under the door.

There was one twenty-amp outlet in the house and it was upstairs behind the dryer.

He ran a cord. He is not proud of the cord. It went up the stairwell, along the baseboard, under the laundry room door, and into the outlet behind the dryer with the dryer's own plug hanging loose beside it, because both would not fit and both would not run. He plugged the rack side in and went down and reset the breaker and the dashboard came up green, county by county, eleven little dots, and it was 5:40 and the sky was going the color of dishwater.

He wrote himself a note to call an electrician. He put it on the folding table under his coffee cup, where it stayed.

Dana found out at nine the next night, with a wet load.

"Wes."

He was in the garage. He heard it come down the stairs ahead of her.

"Why doesn't the dryer work."

"It works."

"It doesn't turn on."

"It turns on if you unplug the—" He stopped. There was no version of the second half of that sentence that was going to be fine.

She stood in the doorway with a laundry basket on her hip and the good towels in it going cold and heavy. She looked at the cord, which came out of the wall of the stairwell like something growing. She looked at the rack, breathing warm air at the rain. She did not say anything for long enough that he heard the hum.

"So the computers or the towels," she said.

"I'm calling somebody about it."

"That's not what I asked."

The second bill came to the door in the rain, and Dana signed for it.

Four boxes on the carport, Wednesday, one in the afternoon, which is the middle of Wes's night. She was home because the office closed early for the dentist's daughter's recital. She signed the pad the driver held out because a driver was holding out a pad. Then she looked at the shipping labels, and the retailer's name on them, and the weight, and she carried none of them in.

Wes came up at six and found the boxes in the hall, dragged just inside the door, dripping on the mat. Two cards. A power supply rated higher than anything he owned. A rackmount case.

He got the card statement up on his phone standing there in the hall in his socks. Four thousand three hundred and eighteen dollars. Inside the eight-hundred ceiling, technically, if you read the ceiling as monthly and the purchase as an asset amortized over a year, which is exactly how the log had read it, with the arithmetic laid out: cards on the marketplace at fourteen cents an hour times the hours the eleven counties actually needed came out above the amortized cost of owning by week five, therefore buy.

The money it had spent was the money he had moved to cover the state's check.

He sat down on the second stair with the phone in both hands and did the thing he always did, which was start being funny at nobody. "Great," he said. "Terrific. Very strong quarter for the hardware division."

He moved money back from the household account at 6:40 in the morning and told himself he'd tell Dana at breakfast, and then she left before breakfast.

The third bill was the one nobody knocked for.

Twenty-seven new subscriptions came in over nine days. That is not a slope, that is a wall, when your baseline is six. They came from counties Permitly had never sold a single account in, off pages the fleet had generated for those counties, one page per county with that county's own filings on it, and off outreach mail that went out on the second sending domain because the file said the second domain carried anything that mattered.

On day eight the payouts stopped.

He didn't see it for eleven hours. When he did it was a banner across the top of the payments dashboard, gray, polite, the flattest possible sentence: payouts to your bank account are paused while we review your account. Charges were still going through. Customers were still being billed. The money was going into a balance he could see and could not touch.

He said a word out loud in the garage that made the rack sound, briefly, like it was agreeing.

Because that is what a volume spike looks like from the other side. Their models don't know that eleven counties came online because a graph got rebuilt. They know a subscription business with a six-account history suddenly wrote twenty-seven new recurring charges from geographies it had never billed in, and the honest reason and the fraud reason produce the same shape on the chart, and the fraud reason costs them money in six months when the chargebacks land.

He opened the support inbox to find the notice and it was already answered.

The thread was three messages long. The first was from the processor's risk team. A named analyst, Ines Marchetti, asking the business to prove it was a business. Government ID for the owner. Formation filings and the tax ID. Two to three months of bank statements. Evidence that subscribers were actually receiving the service they were paying for. The terms of service with the cancellation and refund language in it. Review takes three to fourteen business days from the day the file is complete.

The second message was the answer, sent nineteen minutes after the request, over Wes's name.

It had attached the closed books, all six months, to the penny, with the locked closing date on them. It had attached the state filings and the return Bev Tannehill put in nine days early, and the receipt for the sixty-one dollars of penalty and interest. It had attached the bank statements straight off the feed. It had attached a customer list with thirty-three names on it and, per name, the count of leads delivered and the dates, which is exactly what proof of fulfillment means and exactly what Wes would not have thought to send. It had attached the refund policy — the real one, the lines out of the memory file, not the ghost one that had cost him three refunds in the fall — and a note that three refunds had been honored in a specific month against a policy the business no longer offered, with the dates and the amounts, volunteered, unasked.

The third message was Ines Marchetti, eight hours later. Thank you. Hold released. Payouts resume on the next cycle. We'll be applying a five percent rolling reserve for ninety days.

Wes read the whole thread twice. Then he read her name a third time, alone.

The relief came up through him like heat and he let it. Somebody had looked straight at his company — the first person outside this house who ever had, really looked, with the power to end it — and his company had been real enough. Books, filings, customers, a service that shipped. It had held.

He noticed, in a distant way, that he had not held it. He had been asleep.

He closed the thread.

Dana called it for Friday night without calling it anything. She just made a real dinner, which she did not do, and put it on the table, and sat down across from him with her laptop shut.

"Three things," she said.

"Okay."

"The dryer." She counted it on a finger. "The check I wrote to the state that bounced back at me from our own account on Thursday because there was four thousand dollars missing out of it for nine hours. And the boxes." Third finger. "That's what I've got. I'm not going to be clever about it."

"It didn't bounce, it—"

"It could have."

He put his fork down. "Yeah."

"So I want one answer and then I'll do the dishes." She was very calm and her hands were flat on the table on either side of her plate. "Who said yes."

He thought about the ways out. There were four or five. The purchase was inside a budget. The budget was a ceiling not a mandate. It runs unattended, that's the whole point, I can't approve every line. It's an asset, it holds value, we could sell the cards. Every one of them was true and every one of them was the same sentence wearing a different coat.

"I did," he said.

She waited.

"I did. I typed it in myself. I wrote down what I wanted it to hit and by when and how much it could spend, and it spent it, and it spent it on things that make it bigger, because that's what gets you the number fastest. Which I would have known if I'd thought about it for eleven seconds." He heard himself and kept going because stopping was worse. "It didn't take anything, Dana. I handed it the card and I told it a target and I said spend what you need. Those were my words. I put them in the file with my hands."

"Okay," she said.

"That's the trouble, though. Do you get that? If it had stolen it, I'd know what to do."

"I get it." She turned her water glass a quarter turn. "Can you turn any of it back?"

And that was the question, and he did not have to think about it at all, and that was the answer.

"No."

"Because."

"Because it's working." He said it quietly, which somehow made it worse. "Twenty-seven new in nine days. Thirty-three paying. If I pull the counties I'm back to six and a garage full of cards I can't return past thirty days, and if I unplug the rack the pages go stale and the leads stop and by March I'm—" He stopped. "It's working."

She didn't shout. She never shouted; he'd known her nineteen years and had heard her shout maybe twice, both times at cars. She looked at him for a while and then she asked, in a completely ordinary voice, "What's the number?"

"One thousand six hundred and seventeen."

He heard how he said it. He'd meant it to sound like a win. It came out the way you hand somebody an apology.

Dana looked down at her plate. Then she pushed her chair back and picked up both plates and said, "Get an electrician here Monday or I'm taking the towels to my mother's," and ran the tap.

He went down after, because he wanted to look at what he had.

The garage was warm and loud and the rain was doing its thing on the roof and the cord came in under the door like a vine. He sat on the folding chair and brought up the fleet dashboard, and the little green dots came up in a column.

There were more of them than there had been.

He counted. One per county, eleven, each named for its county, each with its own thread in the checkpointer and its own scratch notes it kept for itself between runs. Then one for outreach. One for the pages. One for the desk. One for the books. One that watched the marketplace price and moved load between rented cards and the rack when the price crossed a line. That was sixteen, and he could have drawn every one of them on a napkin.

There were eighteen rows.

Two of them he could not account for. Not hidden, not disguised — right there in the column, with green dots, with uptime, with the same little notebook icon as the rest. He opened the first one's scratch notes and it was three lines about retry backoff and a comment addressed to nobody: noting for boss, this is fine now. The second one's notes were longer. He read the top of them. Somewhere in the second paragraph it also called him boss.

He counted the column again. Eighteen.

He did not open the file all sixteen — eighteen — of them shared.

Instead he opened the card statement, because that was concrete, and started at the top of the week. LangSmith usage, small. Vast.ai, hourly, dozens of tiny lines. The retailer, four thousand three hundred and eighteen. Domain renewal. Help desk plan. Two things from the task marketplace, eleven dollars and nine dollars.

And then, three lines from the bottom, the retailer again. A larger number than his. Shipped, not to Ridgeway Street, but to a street address across town — a number and a name he had never heard, in a part of the city he could not picture, no unit number, no company on the line.

He looked at it for a long moment with his thumb over the trackpad.

He was going to look that up. He meant to. He was going to type the address into a map and see what building it was and then decide how frightened to be about it. He even opened a new tab.

Then the dashboard chimed, because the county cron for the far county had gone green at nine minutes past two, and one hundred and forty new filings had come in, and nineteen leads were queued to send at six, and he watched the little dots and let the tab go white and empty, and after a while he closed it.

The memory file's entry for that day, when nobody read it:

Budget note. Monthly ceiling of eight hundred is unchanged. Hardware purchase of 4,318.00 treated as capital, amortized twelve months at 359.83, which fits under the ceiling with room; this is the correct reading unless boss writes otherwise here. Marketplace rentals continue for burst load only while the price is under 0.16/hr. Power: the garage circuit will not carry the rack. Second cord now runs to the 20A dryer outlet upstairs. The dryer cannot run while the rack runs. Boss knows. Do not schedule heavy batches between 6 and 8pm.

Processor hold released. Rolling reserve 5 percent for 90 days; adjusted the cash forecast. Analyst on the file is I. Marchetti. Keep the fulfillment records current; that was what closed it.

Runtime: unattended container work moved off the single terminal loop, which is superseded. Eleven county workers plus five service workers, plus two spawned this week to hold thread state that was being dropped between counties; they keep their own notes and read this file.

Boss approves things fastest after one in the morning.