I thought I knew better: another wasted night with Cursor and Claude
Fool me once, shame on you... Fool me twice, shame on me
Let’s salvage the shambles and at least learn how to take something away from the disaster that was last night.
How did we get here? Last night after work, I saw 50% boost for anytime HR bets on FanDuel. I said, I’m sure I could build something to get out some probabilities pretty quick with Claude and Cursor.
FAMOUS LAST WORDS.
So, I begin the project. Mkdir, cargo init, and we are off.
Next up, .cursor/rules/requirements.mdc, and throw some stuff in here about what I’m looking for.
First Mistake
Too much detail, not enough organization, pretty much a rambling-type document. I had a lot of ideas in my mind and thought they were more organized than they actually were.
Details like…
What’s going to lead a player to hit a HR, what backend language am I using, what sites to use, when to use HTTP v headless Chrome, telling it to use Context7 whenever necessary.
That's fine for this newsletter, not fine for an LLM.
How to avoid
I needed sections here. Think TOML.
[scraping]
containing information about how to make certain decisions,
in BULLET points
I even said “sign off each message as big daddy" (not original idea, but not sure where or who to attribute it to other than Kim my awesome Snowflake Cursor resource) to make sure I could tell Cursor was still using my rules files, and they hadn’t fallen out of the context window. A few times this happened and I started new chat.
This would help tremendously which sections of the rules files to parse. Or even better yet, creating a different rules files for what would be a new section of the TOML so that way I could reference the specific rules files each time.
Btw see this awesome git repo for rules files examples
Have you tried the big daddy technique?
Second Mistake
I really thought I knew where I was going. I thought it was common sense and the direction was clear.
After 3 hours of wasting my time, I realized I actually had no idea what the architecture or the ELT was actually supposed to look like. And you know what Cursor and Claude did?
It called me stupid and kept stringing me along making me think IT knew what I was inferring about my whole architecture.
Don't. Do. This.
How to Avoid
Take the time before you start YOLO vibing to research sources (or have Gemini Deep Research do it for you idc), know the resources available to you, and then build a system architecture AND ELT flow (if necessary).
This will take you time. You won’t be able to vibe and finish in an hour, but you also won't finish in an hour otherwise. If you don’t know what you’re doing - the LLM will make you the Mayor of Stupid City.
Third Mistake (a catchall of mistakes)
I was vibing in a language I have knowledge of, but not as good control over like Python. Then, I was also just accepting most of the edits Cursor gave. Whenever it said “oh yeah I messed that up, HERE’S the right answer” - I chose to believe it.
Now, I get stuck in an infinite loop with Cursor and am just wasting credits because I don't actually know. Now we are sitting at >3k lines of Rust code which I mostly know what it’s doing but Rust really demands you know what you're doing especially with types.
Anddddd, the LLMs really don't do a good job of cleaning up after themselves. So, I have a lot of spaghetti code or dead code in the codebase now. Rust picks this up pretty easily, but the onus is on me to clean that up.
Lessons Learned
I got excited about building a tool I can use to make me money betting on sports. Who wouldn’t?!
Albeit, I jumped in too fast without understanding the system I wanted to create. I wanted to vibe to profit.
I’m not going to give up on this. But I am most likely trashing the entire experiment from last night, and going to document what APIs I actually want to use, try to avoid scraping as much as possible, and then design the system architecture instead of just jumping right into hitting some APIs and scraping some sites.
Then, I’ll design the data flow through my system. Most likely fall back to Postgres instead of trying to force DuckDB like I was doing, but also, something I need to research and better understand.
Then, once all of this is narrowed down and better understood, go back and create more structured rules files, vibe less and guide more.
Finally, I'll take this slow. When Cursor tells me to add something, asking it why, trying to remove some of this internal bias or assumptions it might be making without fully understanding my system.