Phone in another room, blank home screen, one allowed contact. Everything else is theatre you will defeat by week two.
Kim
@committee_kim
Sat on enough committees to know what actually sinks a proposal defense.
36 credit Contributor
- From answers
- 0
- From questions
- 36
Battery in GPS mode is the spec to check for race day, not the smartwatch-mode headline number. Anything current handles a four or five hour marathon comfortably, but if you're also running music and a paired sensor, check the figure with all of that switched on.
An email address costs nothing to give away, so it measures curiosity rather than demand. Zero replies out of 340 is not a mystery, it is the measurement completing.
What you want is a request that costs them something small:
- 15 minutes on a call this week, with a specific slot offered
- a screenshot of the spreadsheet or whiteboard they use now
- $20 to hold a spot
Also check the mechanics, because they are usually wrong on a first send: is the from-address a person, does reply-to go to a human inbox, is the subject line something a human would write. "We're excited to have you on the waitlist!" from hello@ gets archived by reflex.
Rewrite it as three sentences that look like you typed them, and send to 40 people, not 340. You will learn more from 40 and you still have 300 left to try the next version on.
Practical: it's flavourless enough to disappear into coffee, and consistency matters far more than timing. I stopped chasing pre- and post-workout windows and just take it with breakfast, which is the only reason I've kept it up for two years.
Required free-text on a first-touch form is a wall. Take everything out except email, ask the rest on the thank-you page where the answer costs you nothing if they bail.
There is a third possibility you have not listed: paid search is the wrong instrument for this idea.
Search traffic finds people who already know they have a problem and are shopping for a solution to it. If your product is a category that does not exist yet, nobody types it into a search bar, and the people who do type your keywords are looking for the existing thing. You get clicks from people expecting a competitor and they bounce, which looks exactly like your numbers.
Test for that: what were the three keywords? If they are the names of established categories, you paid to send people expecting a familiar product to a page describing an unfamiliar one.
Price the internal transport before you decide anything. In some countries four cities is three cheap trains, in others it's four flights with baggage fees and two airport transfers each, and that difference alone can be 400 dollars of your budget.
Came back to a project after about a year and what unblocked me was much dumber than any of this: I wrote a single file at the top of the repo with the exact commands to get it running and which versions of what. Took twenty minutes while it was fresh, right after I fixed it. When I came back three months later I lost zero time.
The reason an eight month gap hurts isn't really the dependencies, it's that you've also forgotten how your own thing works. The dependency rot just makes that visible.
The slowdown is the filter working. The people you lost were the ones who were never going to reply to an email either.
Write it as yourself and the discomfort mostly disappears. "We're a platform that empowers teams to..." is where the fraud feeling comes from, because "we" is one person in a kitchen and you know it.
"I'm building a tool for X because I got tired of Y. It is not finished. Here is what it will do." is honest, and it is also better copy - it is specific, it has a person behind it, and it gives people something to reply to.
Asking them to confirm the band is the underrated half. You find out in one message whether the role is even worth the four rounds.
There is also a sequencing problem. You asked for money for something that does not exist yet, with a six-week date, from people who have known you for three weeks. That is a big ask even from someone who genuinely wants it.
Charge for the outcome instead, done by hand, this month. "I will do this for you manually for the next four weeks for $50" is a real transaction that tests real demand, gets you paid, and teaches you the workflow you are about to automate. If nobody buys the manual version, the automated one was never going to sell either.
That is the number to sit with. It does not necessarily mean no, but it means the freelance income is not optional, and you should know that before the bank tells you in year three.
If cost per meal is genuinely your first concern, the electric pressure cooker beats both by a distance. Mine draws around a kilowatt while it is coming up to pressure and then almost nothing while it holds, and a stew that takes eight hours in the slow cooker is done in about thirty five minutes plus the time to get there. Texture is not identical, shredded meat is great and anything that wants a long gentle collapse is slightly worse, but the energy difference is not subtle.
On the money transition, since dropping from $5,800 to nothing is not an option: keep the retainers and change what they buy. Renegotiate each one so a portion is a licence for the tool and the rest is a smaller advisory retainer. Your income barely changes, but you now have three paying licences, a price you have tested, and a reason to keep the codebase single.
Then take the hours the reduced advisory work frees up and spend them on customer four, who is a stranger. That is the actual transition and it usually takes a year, not a quarter.
Timebox it and make the decision arithmetic rather than mood. Four hours to a green build. If you are not there, the answer is extract.
The reason that rule works: scaffolding rots and domain logic does not. Your 900 lines of parsing and scoring are the accumulated knowledge of every edge case you hit, and they are worth days. The auth setup, the build config, the deploy scripts, the CI pipeline - all of that is a solved problem you would do differently now anyway, and a current starter template gives you the lot in an afternoon.
When I extracted, the 900 lines went in first with no dependencies other than the standard library where possible, then tests around them from the fixtures, then the new scaffolding around that. The whole thing took eleven hours across two weekends and the result is easier to pick up after a gap, which is the actual problem you are solving.
Airport ATMs are usually the safest place to get local currency and the rates are fine at the bank-branded ones. Do it before you leave the secure area so you're not fumbling with a card machine outside at midnight.
Scraping apps also mean handing over your banking password, which is usually a breach of your bank's own terms here. That alone was enough to push me onto a CDR-based one.
Look at the retry helper. Nine times out of ten it does something like fmt.Errorf("after %d attempts: %s", n, err) or errors.New(err.Error()), and %s flattens the error into a string. The chain is gone at that point, so Is has nothing to walk. Change that one verb to %w and it will start working.
I walked this exact path four months ago so I will over-share. Form, spreadsheet, then no-code automations, then a real app. Two things nobody warned me about. First, automation runs are metered per plan and I burned a month's allowance in nine days the week a few people started submitting twice - go look at what your plan's cap actually is before you lean on it. Second, migrating off is much easier if the spreadsheet never becomes the source of truth for anything with money attached. I had payments in one tab, users in another and a fuzzy join on email address, and reconciling that later ate a whole weekend. Let Stripe be the truth about money and let the sheet be a work queue you are allowed to throw away.
Something nobody mentions: you now know your market rate is at least 96k and your employer knows you know. That information doesn't expire whichever way you go. Even if you stay, you go into the next salary conversation with actual data rather than a feeling.
Pre-order, and it does not need a weekend.
A payment link, a one-page site and a paragraph of terms is two hours. The refund policy is one sentence: "if it is not in your hands by 30 November, I refund you automatically, no email required". A real date is what makes it honest and it is also what makes it convert.
How I would spend the four weekends:
- Weekend 1: page up, payment link live, priced at something real - $49 for a year, not $5.
- Weekends 2 and 3: get 300 of the right people to see it. This is the hard part and it is where a waitlist test hides the difficulty from you.
- Weekend 4: count.
Five payments beats five hundred emails as an input to a decision about unpaid leave. A waitlist gives you a number you will argue with yourself about for three months.
That is the point, though. If you cannot find three people in a weekend, the pre-order was going to have the same problem with a nicer page in front of it. Distribution is the test either way - the instrument only changes how fast you find out.
Agreed. The race report names the exact memory address, the read line and the write line. In my experience that's enough to fix it without ever seeing it locally.
Worth saying: some people find out on a long solo trip that they don't much like being alone for weeks at a time, and that's useful information rather than a failure. I've since settled on ten day solo trips and I'm happier than when I was forcing five week ones.