It was a sweltering July afternoon in Austin. I’d just handed the keys to a young couple who’d just bought a renovated bungalow on East 5th. The paperwork was perfect, the earnest money cleared, the title company’s fax came through with a single line: Closed. I stood on the porch, feeling the weight of the house’s wooden rail beneath my palm, and heard the distant hum of a streetcar. In that moment, the triumph that usually surged through me—those tight, familiar spikes of dopamine that followed every signed contract—felt oddly muted.
The Moment the Fade Set In
For ten years I’d chased that exact feeling. I remembered the first time I closed a deal: a modest condo on the outskirts of Dallas, a commission that covered my rent for a year, and a client who called me “the guy who gets things done.” I built a rhythm around listings, showings, and negotiations. My calendar was a mosaic of open houses and lender meetings, each slot a promise of the next high.
But after the twentieth closing in a row, the ritual grew mechanical. I could predict the exact sequence of emails, the exact number of coffee cups I’d need to stay awake for a 3 a.m. appraisal request, the exact feeling of relief when the escrow officer said, “All clear.” The process became a production line, and the payoff—while still there—no longer felt like a personal win. It was a transaction I facilitated, not a result I owned.
Claude Dropped Into My Editor
Two weeks later, I was sitting at my kitchen table, laptop open, sipping cold brew, when a friend sent me a link to Claude, an AI pair‑programmer that could write code from a plain‑English prompt. I had been dabbling in side projects—tiny scripts to scrape MLS data—but I’d never felt the pull to build something substantial. Curiosity nudged me to fire up a new project with Bun, Elysia, and SQLite, the stack I’d been reading about on Hacker News.
The first prompt was simple: “Create a route that returns the latest community posts for a given user.” I typed it, hit enter, and watched Claude generate a file tree, a router, and a database query in a matter of seconds. The code appeared in my editor like a magician pulling a rabbit from a hat. I ran the command, and the server spun up, exposing a /posts/:user endpoint that returned JSON exactly as I’d described.
Then I added another prompt: “Add pagination and a search filter.” Claude rewrote the handler, added query parameters, and even suggested an index on the created_at column for speed. I stared at the terminal as the changes compiled without a single syntax error. The feature that didn’t exist twenty minutes ago was live on a Cloudflare tunnel, accessible to anyone with the URL.
From Transactional to Creative Agency
In real estate, my job was to align buyers with sellers, to present an outcome that already existed. My agency was limited to the quality of my network, the timing of mortgage approvals, and the persuasiveness of my pitch. The results—whether a sale closed or fell through—were largely out of my hands.
Writing code flipped that script. The moment Claude produced a line of JavaScript, the outcome was mine to shape, to iterate, to break and rebuild. I could see the direct line from my prompt to a functioning endpoint, from a bug I introduced to the console error that forced me to rethink a logic branch. Every commit was a tiny contract I made with myself, and the payoff was immediate: the code ran, the feature worked, the community on iCharles.com saw a new tool that day.
The Rough First Month
That rush, however, didn’t erase the rough edges. The first month after I quit my brokerage, I missed the ceremonial handshake at the closing table. I missed the instant validation of a buyer’s smile when I handed over a set of keys. When I launched the first version of iCharles—a simple forum where developers could post daily challenges—I watched the traffic spike to a modest 57 visitors and then fall back to single digits. The silence was louder than any “sold” sign.
My brain, trained for high‑stakes negotiations, was now wrestling with merge conflicts, latency bugs, and the endless loop of “does this actually work?” I spent nights debugging a SQLite lock that appeared only when two users tried to post simultaneously. I felt the same anxiety that used to surface when a buyer’s loan fell through at the last minute.
What replaced the dopamine of a closed deal wasn’t a single moment but a series of small, cumulative victories. The first time a user posted a challenge and received a comment within minutes, I felt a warm pulse in my chest. The second time I pushed a hotfix that eliminated a race condition, the console printed “All tests passed” and I let out a breath I hadn’t realized I was holding. Those micro‑wins added up, creating a new rhythm that was less about a single climax and more about a steady hum.
Unlearning the Sales Muscle Memory
One habit that lingered was the instinct to “sell” every feature. In sales, I’d pitch the house’s closets, the view, the neighborhood schools. In code, I initially tried to sell my repository like a product brochure, writing long READMEs filled with buzzwords and promises. I realized that the community I was building cared more about clarity and reliability than hype.
So I started stripping my language down. I replaced “Our platform provides an unrivaled ecosystem for developers” with “Post a challenge, get a comment.” I stopped polishing the UI for the sake of aesthetics and focused on making the API stable. By treating the codebase as a conversation rather than a sales pitch, I let the product speak for itself, and the community responded.
The Lesson: Agency Is a Muscle You Build, Not a Gift You Find
Leaving real estate didn’t mean abandoning success; it meant redefining where that success came from. In a house sale, I was a conduit. In code, I’m the source. The agency I now feel isn’t handed to me by a commission split; it’s earned every time I type a prompt, stare at a stack trace, and decide to iterate.
It’s easy to romanticize the freedom of being your own boss, but the truth is that freedom is a muscle. You have to flex it daily, whether you’re closing a deal or shipping a feature. The dopamine may look different—a “Sold” sign versus a green checkmark in your CI pipeline—but the core feeling is the same: you created something that didn’t exist before, and you own its outcome.
If you’re standing at a closing table that no longer feels like a win, listen for the quiet hum of a server starting up. That sound is the new applause, and it’s yours to claim.
Discussion