Lean Poker

Developers Learn Modern Deployment Practices in Fun Poker Robot Competition on Heroku

Lean Poker coding events teach continuous deployment and lean startup methodologies

Sometimes, winning at poker is about speed. New players may learn the tricks of the game, becoming smarter and more strategic over time. But how fast can they learn? Mapping poker to the business world, a company may launch a great new product. But can they iterate on it quickly enough to beat a sudden onslaught of competitors?

Rafael Ördög saw a golden opportunity to help software developers like him become more agile and competitive. Through the lens of poker, he wanted to teach developers continuous deployment and lean startup methodologies that can help them deliver at the speed of business today.

Iterate or Lose

In 2013, Rafael founded Lean Poker, a competitive coding workshop that challenges teams to develop the smartest, most successful poker-playing robot. He invites companies to sponsor Lean Poker events for a number of reasons. They may want to introduce their engineers to new practices that support an iterative app development strategy. They may want to host a public event as a recruiting or marketing opportunity. Or, they may want to simply hold a fun, team-building day.

Leanpoker

Poker robot competitions are not new. Typically, teams have a few hours or days to create their robot before they start playing. Lean Poker turns this around. Teams are given the same basic starter robot up front. The event opens on equal ground as starter robots immediately begin playing poker hands. The real competition begins when teams iterate on their robots, continuously deploying code in order to create the smartest robot possible during the daylong event.

Lean Poker is all about which team can deliver the most value in the shortest time. This forces teams to deploy very differently than they may be used to.

Running Lean on Heroku

Since its inception, Rafael has been iterating on his own Lean Poker app. The first version of Lean Poker ran off his personal laptop. When Rafael decided to take his business to the next level and create a franchise, he needed a scalable solution.

Leanpoker Dashboard

He moved Lean Poker onto Rackspace, using Docker to contain the player robot apps. However, his experience was rocky—he found this set up time consuming, costly, and not stable enough to meet the needs of his monthly events. After every event, he’d have to decommission his servers in order to avoid paying for downtime in between events. Then he’d have to spend time redeploying new servers before the next event. On top of that, he was concerned that someone could hack the system.

I’m a developer, not a sysadmin. With Heroku, I don’t have to care about most of that stuff. Rafael Ördög, Founder, Lean Poker

Rafael was working as a lead software developer for Emarsys, a global marketing solutions provider. His company began using the Heroku platform and he was impressed. At first, he kept the main Lean Poker app on Rackspace and only moved the player apps to Heroku. Eventually, he moved the entire system to Heroku.

Leanpoker

It’s so easy to spin up dynos on Heroku and set up scaling during an 8-hour event. I can go from zero to ten dynos with a single API call. Rafael Ördög, Founder, Lean Poker

The Lean Poker backend is built in Ruby using the Sinatra framework, and the front-end uses JavaScript. The entire system is designed using a microservices architecture running on Heroku (read more about the microservices architecture and the Lean Poker stack in our Developer Interview with Rafael Ördög). The system itself is comprised of five microservices, and each team’s robot represents an additional microservice. Lean Poker uses a Mongo database and Heroku Add-ons, including: Logentries for log management and Redis Cloud to run Sidekiq for message queuing.

With Heroku, I don’t have to worry about container security since each player is running as a separate Heroku app. I know that players can’t use platform vulnerabilities in order to hack the main app and cheat. Rafael Ördög, Founder, Lean Poker

App Experience

Lean Poker events typically include between 15-30 participants, divided into groups of one to five people. Teams are provided with a basic starter code, and can use the language of their choice to build out their customized robot. Teams can get support from coaches throughout the event who help steer them towards continuous deployment and lean startup practices.

Leanpoker Dashboard

The Lean Poker app helps teams track their progress. A rankings service tells them what type of hand they have and rates how good it is. The system also produces game logs that step through each game to show every move. Players can also choose to create their own customized logs.

When participants register a new team, the system automatically creates their own team repository in GitHub, from which they can immediately deploy a first version of their robot. When a team pushes code updates to GitHub, Lean Poker automatically deploys to Heroku using the platform API.

Competitive Coding at Scale

Since moving Lean Poker to Heroku, Rafael has been able to scale his business without worrying too much about security or the hassle of server management. He now trains others to be Lean Poker coaches and run their own events. To date there have been 21 Lean Poker events across Europe, and Rafael is planning to expand to the U.S. in the coming year.

Read our Developer Interview with Rafael Ördög to learn more about the Lean Poker stack and architecture, as well as his development experience.

Are you building a competition engine using a microservices architecture? Lean Poker chose Heroku to ensure data security and scale quickly to support live events. For more information, contact Heroku today.

More stories