Python · Episode 8
BadgeFlow: check-in when five hundred hackers hit the door at once
Chris volunteered at a university hackathon where lines wrapped the lobby. BadgeFlow started as a QR sketch and became the story volunteers tell sponsors.
Host: Serhii K. — Lead Software Engineer - AI, Automation and Fullstack Platforms
Guest: Chris Dalton — Volunteer lead, BadgeFlow
#8: BadgeFlow: check-in when five hundred hackers hit the door at once
Original editorial from Softaims, published in a podcast-style layout—details, show notes, timestamps, and transcript—so the guidance is easy to scan and reference. The host is a developer from our verified network with experience in this stack; the full text is reviewed and edited for accuracy and clarity before it goes live.
Details
Chris narrates sponsor ethics—opt-in scans, delete-by-date promises, and why students deserve clarity.
We cover flaky gym Wi‑Fi, tethered hotspots, and printed fallback lists.
Closing: hackathons are pedagogy, not just hiring cattle calls.
Show notes
- Redis idempotency keys
- CSV import from registration
- Sponsor CSV export nightly
- Volunteer role badges
- Post-event data purge scripts
Timestamps
- 0:00 — Intro: what this build actually is
- 1:15 — The day the spreadsheet lied
- 3:15 — Why nights-and-weekends shipping stuck
- 5:30 — Choosing tools for Python events
- 8:00 — The ugly MVP we almost hid
- 10:45 — First real user, first honest feedback
- 13:30 — The mistake that stung
- 16:30 — How word spread without ads
- 19:30 — Where the product sits today
- 22:30 — Advice for the next builder
- 25:45 — Closing: changelog honesty
Link opens YouTube; episode pages are text-first on Softaims.
Transcript
[0:00]Serhii: Thanks for making time. I like to start unfashionably concrete: BadgeFlow, fast check-in and sponsor lead capture for student hackathons. If a friend sat next to you on a flight and asked what it is—no pitch deck—what do you say?
[1:21]Chris Dalton: I usually joke that it is the app I built so I would stop losing my weekends to copy-paste. We printed badges the night before and still bottlenecked. Sponsors wanted scans; students wanted swag. Everyone was loud and caffeinated. Once a handful of people outside my family actually relied on it, I stopped calling it a script and started calling it a product.
[2:42]Serhii: Take me to the week you seriously started. Was there a single breaking point—a wrong total, an angry text, a support ticket that made you snap—or was it slower burn?
[4:03]Chris Dalton: There was a moment that still makes me wince. We had promised a cutoff for orders and I manually edited a spreadsheet cell while someone else did the same from another laptop. We sold inventory that did not exist. After that, "we will fix the process" was not credible anymore. I needed a single place that told the truth.
[5:25]Serhii: You chose Python for a lot of that work. Skeptics say any stack can ship CRUD. Why this one for you—not in doctrine, but in your actual week?
[6:46]Chris Dalton: Python asyncio services behind nginx, Postgres as source of truth, and dumb QR payloads. We chose boring because volunteers debug at 6 a.m. I had tried the shiny thing first and spent a month wiring glue code I did not understand. Boring won because I could reason about failures at two in the morning.
[8:07]Serhii: What did the embarrassing first version look like? Not the story you put on the landing page—the one you almost did not ship.
[9:29]Chris Dalton: It was ugly on purpose. One form, no onboarding, emails that looked like they came from 2003. But it replaced three tools if you squinted. I shipped on a Tuesday knowing I would apologize for the UI for months. The apology tour taught me what people actually cared about.
[10:50]Serhii: Who was the first person who was not your cousin who treated it like a real service—and what did they do that surprised you?
[12:11]Chris Dalton: A small business owner sent a voice memo walking through their workflow. Nine minutes. I listened twice. They were not asking for features; they were narrating fear—fear of double booking, fear of looking sloppy in front of clients. That memo became our roadmap for a quarter.
[13:33]Serhii: Tell me about a failure that was your fault—not a vendor outage, not "the users did not get it." Something you shipped that hurt.
[14:54]Chris Dalton: I cached attendee status in memory across workers. Half the line showed “already checked in” incorrectly; we switched to Redis and apologized with pizza. I stayed up until four fixing it, not because I am a hero, but because I could not look the pickers in the eye otherwise. The fix was smaller than the lesson: turn on the scary constraint before the friendly notification.
[16:15]Serhii: How did you tell people it existed? This crowd listening is tired of growth hacks; they want the honest channel that actually moved you.
[17:37]Chris Dalton: Word of mouth in one niche community. I posted a walkthrough that showed the messy backend on purpose—permissions, audit trail, the stuff buyers worry about when they have been burned before. One thread turned into demos, demos turned into annual plans. I never cracked paid ads; I am fine with that.
[18:58]Serhii: Where is the product today versus that first ugly Tuesday? What are you proud of—and what still keeps you up?
[20:19]Chris Dalton: Proud of the operators who trust it with money and time. Still up at night: edge cases around holidays, permissions when volunteers rotate, and explaining to new teammates why we chose simplicity over cleverness. The stack is not the story; the people using it are.
[21:41]Serhii: If someone listening is about to start their own thing in Python—maybe nights-and-weekends, maybe between jobs—what is the one thing you wish someone had told you before line one of code?
[23:02]Chris Dalton: Ship the smallest thing that replaces a real ritual for a real person. Everything else is procrastination dressed as architecture. You will rewrite anyway; you might as well rewrite something people already depend on.
[24:23]Serhii: Last one: where should people go to see BadgeFlow in context—not the hero marketing line, but the everyday use?
[25:45]Chris Dalton: The public site tells the polite version. The honest version is in the changelog and the support replies. Read those and you will know if we are serious. Thanks for letting me ramble; these stories only sound simple because we edited out the crying.