Thirty Days of LeetCode in a Group Chat

Yes — a small group posting daily proof of coding practice keeps people consistent, because skipping becomes visible to others instead of just to yourself.

A small accountability group where everyone posts proof of their coding session that day does help people stay consistent, and it works for a fairly boring reason: it turns something you can quietly skip into something you’d have to explain skipping. That’s a bigger deterrent than any streak counter.

I started the last week of May with three people from a Discord server for a fintech company’s interview loop — we’d never met in person, we just all had onsites scheduled roughly six weeks out and nobody wanted to grind alone. We made a group chat, set a rule (one problem a day, screenshot of the accepted submission, no exceptions for weekends), and used DontSnooze so proof meant a short video of yourself actually doing it, not just a screenshot someone could fake after the fact — miss a day and a random photo from your camera roll gets posted to the group for two days, which is exactly humiliating enough to matter.

The first week was almost suspiciously easy. Everyone was motivated, everyone was posting by 9pm, and the chat had this nice rhythm where you’d see someone else’s checkmark and go do yours out of pure competitiveness. I did easy array problems for the first four days because I wanted an unbroken streak of green checkmarks more than I wanted to actually get better, which in hindsight was the wrong instinct but not a bad way to build the habit before making it harder.

Week two is where it got real. I hit a wall on sliding window problems specifically — not two-pointer stuff, which clicked fine, but the variant where you’re tracking a condition inside the window (longest substring with at most k distinct characters, that family of problem) and I could not hold the invariant in my head without writing it out three separate times. I spent an entire Wednesday night on one problem, missed my usual posting window, and texted the group at 11:40pm: “still stuck, going to post whatever I have, it’s ugly.” Someone replied “ugly and submitted beats clean and theoretical” which is a line I’ve thought about more than once since.

Day 19 is the one I’d flag if someone asked whether this actually works, because it’s the day it almost didn’t. I had a work deadline, I was tired, and I seriously considered just not doing a problem and eating the embarrassment photo — a picture from my camera roll, whatever it happened to be, sitting in the chat for 48 hours felt like a small enough price. What actually got me to sit down at 11:15pm and do a mediocre two-star problem wasn’t willpower, it was that I’d already told myself I’d do it right after closing my laptop from work, before I let myself open anything else — a specific trigger tied to a specific moment, the same kind of pre-committing to a cue instead of a vague intention that seems to make or break a lot of these attempts. Vague intentions to “practice more” don’t survive a bad day. A rule like “right after I close my work laptop” mostly does, because there’s no decision left to make in the moment, just a thing you already agreed to.

By the end of the 30 days I’d done 41 problems, which is not a number I’d have predicted going in — I’d guessed 30, one a day, and figured I’d miss a handful. I actually did two on four separate days when I was ahead of schedule and wanted a buffer for the days I knew were coming (a friend’s wedding, a flight). Two people in the group finished at 33 and 27. The person at 27 missed three days outright and ate three camera-roll photos, one of which was an extremely unflattering gym mirror selfie that got roasted in the chat for a week. Nobody quit the group over it, which surprised me a little.

Does the social pressure actually change anything, or does it just make you feel bad?

It changes the thing that actually determines whether you practice: what happens in the sixty seconds after you think about skipping. Alone, that thought resolves into “I’ll do two tomorrow” and tomorrow rarely happens. In a group where your problem count is visible next to three other people’s, the same thought runs into a small, specific social cost — someone will notice, someone might ask, and for many people that’s enough friction to just do the fifteen minutes instead of negotiating with themselves. It’s not motivation in any deep sense. It’s just that avoidance got more expensive.

I’d compare it, oddly, to a 30-day experiment on this blog where someone had their screen time reported to a friend instead of just sitting alone in a dashboard — the mechanism is the same one at work here: numbers you only see yourself are easy to reinterpret generously, numbers someone else sees stay accurate. The difference with coding practice is that you’re also producing something (a submitted solution, right or wrong) rather than just abstaining from something, so the proof is more interesting to look at and, I think, easier to keep posting.

I don’t think the group made the problems themselves easier, and I’ll admit I’m not sure it made me meaningfully better at, say, graph problems, which stayed shaky for me the whole month regardless of how consistently I showed up. What it did was guarantee I showed up, which is a smaller claim than “this fixed my algorithms weaknesses” but was the actual thing standing between me and an interview I didn’t want to walk into cold. Someone else on this blog wrote about quitting a habit cold with a witness rather than alone, and the same logic applies here — the witness doesn’t do the hard part for you, it just makes it much harder to quietly not do it.

We kept the group going past day 30, loosely, though the daily rule softened into more of a four-times-a-week thing once two of us had onsites scheduled and the urgency changed shape. I got an offer in July. I don’t credit the group chat for the offer — I credit it for the fact that by the time the onsite came, I’d actually done the reps instead of having spent six weeks meaning to.

Keep reading