Well hello there! I'm Arvid Kahl, I'm a coder, an entrepreneur, and a writer. Over the last few years, I've been sharing my entrepreneurial journey through building in public and writing. I co-founded a SaaS business with my life partner Danielle Simpson back in 2017. We sold it for a life-changing amount of money just two years later as it had reached $55k MRR. Ever since then, I have been spending my days empowering other founders to find their own way to financial independence. My latest book The Embedded Entrepreneur is a guide to building a business the right way around: by focusing on your future audience from day one. I've been mentoring and teaching founders the audience-centric way to great success. I write, I read, I speak, I nap a lot, and I love engaging with founders. And now I'd like to talk to you! AMA
We are increasingly connected to our phones which can make it difficult to fully unplug or be present at times. Once you wake up to start your day, how quickly do you reach for your phone to check your mentions, emails, etc?
People often say that "the genie is already out of the bottle" and can't be put back in.
But the news that Anthropic made its latest model unavailable across Europe shows how control over technology, or the lack of ownership of it, can completely reshape the playing field.
I m adding a short plan (a small challenge plus two or three steps) to the results page of an AI app. The endpoint that produces the result already chains several model calls: a safety check, the main generation, and two small side calls (a share caption and a memory note), all inside a 60-second function limit. Before adding a fifth call, I had Claude Code read the route and report how close it was to that limit.
The finding was uncomfortable. The two side calls had no timeout of their own. The SDK s default is one minute with two automatic retries, so one hung side call could run past the 60 seconds, and the platform would kill the whole request before the main result was saved. A code comment even claimed each call had its own timeout. It didn t.
What I changed: both side calls now get a 10-second timeout and no retries, and their failures are still swallowed as before. The new plan call goes through a helper that makes one attempt with an 8-second timeout and never throws. On a timeout, bad JSON, over-long text or a failed safety check it returns nothing, and the result is saved without a plan. It starts only after every safety gate, at the same moment as the side calls, so it adds little waiting time.
A test reads the route s source and checks that the plan call sits before the single database insert and that the side calls carry a timeout and zero retries, so a later edit can t quietly undo it.
Last month, we finally got a demo with a massive prospect a 500-person company that was exactly our target audience. The demo went perfectly. The VP of Product loved our tool, and the team was ready to sign a $1,500/month contract.
Then, the deal moved to their IT and Security department.