From Bootcamp to Broadway: How One Alum Helped Hamilton Fans Get Tickets with Code
When Lukas Thoms enrolled at Programming School‘s iOS Development immersive in 2016, he hoped to gain the skills to transition from a career in online retail to one in programming. Little did he know that less than a year later, he would put his newfound coding abilities to use by creating an app that would make him a hero in the eyes of theater lovers everywhere.
Lukas‘s creation, the Ham Lottery App, had a simple but powerful mission: to help fellow fans of the smash hit musical Hamilton boost their odds of winning the show‘s $10 ticket lottery. By notifying users when the lottery opened each day, auto-filling their entry information, and alerting them when the drawing closed, the app removed the friction from a process that had proven frustrating for many.
"As someone who had seen Hamilton and desperately wanted to see it again, I was entering the lottery daily—and finding the user experience pretty hostile," Lukas recalled. "I figured there had to be a better way, so I decided to build it myself."
The Bigger Problem Behind Building a Lottery App
To understand why Lukas‘s app resonated with so many people, it‘s important to understand the Hamilton phenomenon. When the show opened on Broadway in 2015, it quickly became the hottest ticket in town, with resale prices averaging $850 apiece. For those who couldn‘t afford to shell out hundreds (or thousands) of dollars, the lottery—which offered 46 front-row seats for $10 each—provided a glimmer of hope.
But the odds of winning were, and still are, daunting. On average, 10,000 people enter each lottery for the chance to see Hamilton on Broadway. That means that even if you enter every day, your chances of scoring tickets are less than 0.5%.
"People were clearly clamoring for access to this show that had become a cultural touchstone," Lukas said. "I wanted to create something that would give them a little leg up."
From Flatiron to Full-Fledged iOS Developer
To turn his idea into reality, Lukas drew upon the skills he had acquired during his 15 weeks at Programming School. The program, which Lukas attended at the Manhattan campus, provided a comprehensive introduction to iOS development. Students learned the fundamentals of programming in Swift, Apple‘s proprietary language, as well as essential frameworks like UIKit.
"My experience at Programming School gave me the foundation I needed to go out and build something on my own," Lukas said. "It demystified the app development process and gave me the confidence to tackle a project like Ham Lottery App."
Lukas also credited the program with teaching him more than just coding. "The emphasis on collaboration and pair programming prepared me to work effectively with other developers," he noted. "And the focus on practical, project-based learning meant that I graduated with a portfolio of apps I could show potential employers or use as a launching pad for my own ideas."
How the Ham Lottery App Works—And What Makes It Effective
The concept behind the Ham Lottery App is simple: save Hamilton fans time and hassle by streamlining the lottery entry process. But how exactly does it do that?
Essentially, the app acts as a wrapper around the official Hamilton lottery website. It scrapes the site to detect when each day‘s lottery opens and closes, and sends push notifications to users accordingly. When users open the app to enter, it auto-populates their personal information—a big time-saver compared to manually typing in details like name, email, and zip code each day.
"From a programming perspective, the app is relatively straightforward," Lukas explained. "It‘s built entirely in Swift, using basic iOS frameworks like Foundation and UIKit. The auto-fill functionality hooks into the user‘s device keychain to securely store and retrieve their information."
Where the app really shines, though, is in its laser focus on solving a single, well-defined problem. "I think part of what made Ham Lottery App successful is that it didn‘t try to do too much," Lukas said. "It had one job—make entering the Hamilton lottery easier—and it did that job really well."
This approach aligns with a piece of advice Lukas often found himself giving to other aspiring developers: start small and iterate. "It‘s easy to get caught up envisioning this complex, feature-rich app right out of the gate," he said. "But in reality, the most successful apps are often the ones that do one thing, and do it really well. You can always add more features later on if there‘s demand."
Overcoming Obstacles and Learning from User Feedback
Of course, even a well-scoped app is bound to encounter some challenges during the development process. For Lukas, one of the biggest was also one of the most fundamental: deciding how to persist user data.
"When I built the first version of the app, I made a pretty bad assumption—that users would never need to change the personal info they entered for the lottery," Lukas admitted. "So if someone needed to update their email address or zip code, they had to delete the app and start over."
This design flaw quickly became apparent when the app launched and Lukas started getting user feedback. "I was getting a dozen emails a week from people asking how to update their information," he said. "I realized I needed to go back and totally rethink my data model."
To address the issue, Lukas ended up rebuilding the app‘s data persistence layer to allow users to update their auto-fill information at any time. He also added features like the ability to set daily reminder notifications and view lottery stats over time.
"Getting that initial user feedback was eye-opening, but also incredibly valuable," Lukas said. "It forced me to confront some of the assumptions and oversights I had made, and ultimately build a stronger product."
The Power of Passion Projects
Perhaps the most remarkable thing about the Ham Lottery App is that Lukas never intended for it to become a standalone success. Initially, he created it as a way to draw attention to Shophood, a local shopping app he had developed previously.
"I figured that Hamilton fans were likely the kind of digitally-engaged consumers who might also be interested in supporting small businesses in their community," Lukas said. "My plan was to get them using Ham Lottery App, then hopefully convert them into Shophood users as well."
But a funny thing happened: the Ham App took off, while Shophood continued to struggle to find its audience. "In retrospect, I think the biggest lesson I learned is the importance of really understanding your users and building something they need," Lukas reflected. "With Shophood, we had a cool concept, but not necessarily one that solved an urgent, daily problem for people. Ham Lottery App did—and that made all the difference."
The Bigger Impact of Building with Code
In the years since Ham Lottery App made its debut, Lukas‘s career as a programmer has flourished. He‘s now a senior iOS engineer at a fintech startup, where he gets to apply his coding skills to tackling complex problems every day.
Looking back, he says one of the most gratifying parts of creating Ham Lottery App was seeing how it enabled more people to experience a show that had resonated deeply with him. "Hamilton is more than just entertainment—it‘s art that inspires people and makes them see the world differently," Lukas said. "To play a small part in making it more accessible and enriching more people‘s lives was incredibly fulfilling."
As for what‘s next, Lukas says he‘s always on the lookout for opportunities to use his coding skills for good. He offered this advice to programmers who aspire to build something impactful:
"Start by identifying a problem that affects you or people you care about. Odds are, there are others out there who share that pain point. Then, don‘t just talk about solving it—take action, even if it‘s a small first step. You never know where it might lead you."
Words of wisdom for developers and Hamilton fans alike.
Key Takeaways for Aspiring App Developers
Here are some of the key lessons from Lukas‘s experience creating the Ham Lottery App that aspiring programmers can apply to their own projects:
-
Solve a real problem: The best apps address a genuine pain point for users. Before starting to code, validate that the problem you want to solve is one that people care about.
-
Keep it simple: Avoid the temptation to overload your app with features, especially in the beginning. Focus on doing one thing well, then iterate and expand over time.
-
Listen to user feedback: Don‘t be afraid to put your app out there and see how people respond. User feedback is invaluable for identifying areas for improvement and ensuring you‘re meeting people‘s needs.
-
Design with data in mind: Put careful thought into how you‘ll store and persist data in your app. Making the right architectural decisions upfront can save you major headaches down the road.
-
Leverage your community: The connections you make, whether through a coding bootcamp like Programming School or online, can be a great source of support, inspiration, and opportunities. Don‘t be afraid to tap into your network for feedback and collaboration.
By keeping these principles in mind, you‘ll be well on your way to creating an app that makes a real difference—and maybe even gets the attention of Lin-Manuel Miranda.