Convo
Primary developer · Spring 2022
Before the trading systems and the research, there was Convo: an anonymous social app I built and shipped in the spring of 2022. It grew to 500+ students across a handful of local high schools.
What it was
Convo was a feed of anonymous posts, one private thread per school, with a shared inter-school thread on top of those. Posts had comment threads and polls, the feed sorted by New or Hot, and DMs let you take a conversation private. Accounts were pseudonymous but persistent, so a handle could build a reputation without ever attaching a name to it. Reddit is fully anonymous and Facebook fully named; we wanted the space in between, a semi-anonymous app scoped to your school, where people knew the handles but not the names. Sign-up tracked how much people trusted that promise: school email at first, then phone numbers, then back to school email once the app had proven it kept people anonymous.
I was the primary developer. Flutter on the front end, Firebase for auth, storage, and the real-time feed. This was 2022, before Cursor or any of the AI coding agents existed, so everything was coded by hand with Stack Overflow open in the other tab.


Getting people in the room
An anonymous feed is only worth opening if other people are already posting in it, which is a cold-start problem: the first person to open Convo sees an empty feed and leaves. So for each school’s launch we shipped the app early but left it switched off. You could download it, you just couldn’t use it yet. The listing promised “your school’s groupchat,” with a launch time announced ahead. Downloads piled up while the app sat dormant, and when we flipped it on, the feed opened to a crowd instead of an empty room.
We also ran a giveaway: use Convo, win an iPad. It half worked, decent engagement on social media and a bump in users, but not enough to justify the prize. What held up better was how we paid for it.
How we paid for the iPad
We had no marketing budget, but the 2022 Super Bowl was on, and sportsbooks were showering new users with promotions that paid out in bonus bets. So we signed up for the promos, bet opposite sides of the game at different books so the qualifying wagers canceled each other out, and then converted the resulting pile of bonus bets into cash. That cash covered the iPad, with enough left over for the rest of the giveaway budget.

The bonus-bet math
The trick only worked because bonus bets convert into cash at a predictable rate, and figuring out that rate turned out to be a nice little optimization problem. A bonus bet pays out the winnings but not the stake, and that one detail decides the whole strategy. Put $10 of bonus money on a coin flip at +100 and you win $10 half the time, so the bet is worth about $5: half its face value. Put it on a +1000 long shot instead and you win $100 about one time in eleven, which is worth about $9. At fair decimal odds d, a bonus bet converts 1 − 1/d of its face value, so in expectation, bonus bets belong on improbable, high-upside outcomes.
Expectation is cold comfort when you only get a handful of promos, so we hedged. Place the bonus bet on a long shot at one book, then bet real money on the opposite outcome at another book, sized so both branches pay the same. The guarantee works out to the same 1 − 1/d conversion, just with the randomness removed: a $10 bonus bet on a heavy underdog, hedged with a couple hundred real dollars on the favorite elsewhere, locks in about $9 no matter who wins. We used OddsJam to find pairs of books where the two sides were priced tightly enough for the hedge to be cheap.

The source is a private repo and isn’t linked here.