I have been writing code professionally for over a decade so when I get the chance to build something that is not work related, I feel a childish glee. This chance comes at least once a year, when I participate in HackMidwest, Kansas City’s largest hackathon.
HackMidwest is a 24-hour hackathon where teams are encouraged to make innovative use of various APIs to build something creative, useful, or interesting. This was the sixth HackMidwest in Kansas City, and the sixth one I’ve attended. It’s a great event for the community and provides an excellent chance for me to dust off my programming skills.
This year my team decided to do something different. Instead of competing to win a prize for use of a sponsored API, we wanted to build something that would eventually become bigger. However, one vendor Cloudbees, has an API that made sense for us to use. Cloudbees is the founder of Jenkins, an open source automation server that facilitates continuous integration and technical aspects of continuous delivery. [Source]
For the hackathon we decided to build a mobile game similar to HQTrivia, since we felt that this model will be the future of gaming. No longer are we going to watch others compete on the Game Show Network, but instead we are going to participate and compete with others in real time. With a 24 hour limit, our project needed to be compiled and deployed continuously through the night. We decided to use Jenkins to help us achieve that reliably and without manual intervention.
As continuous integration and delivery are core parts of 27Global’s Site Reliability Engineering service, this decision was a no-brainer. Jenkins was great fit for this mobile game show project. With the Jenkins server in place and running, our team did not have to worry about building or deploying our application manually; we were able to focus on writing code and playing our game. Then we leveraged Jenkins for an extra step. After deploying each build we used Jenkins to launch a series of bots, or simulated players, to play and test the game over and over. Not only did we automate the build process, we automated testing.
The decision to use Jenkins saved us several hours of work, allowing us to add more features in the short 24 hour time frame. For the innovative use of Jenkins, our team won the Cloudbees prize at HackMidwest. 50 teams competed and 12 teams won awards. It was a great experience for myself, my team, and the community.
The 24-hour hackathon experience is a scaled down version of a typical development sprint. Enabling developers to build and deploy quickly and to automate testing is invaluable. Implementing a CI/CD pipeline with tools like Jenkins can rapidly increase the productivity of your development team, giving them back their most valuable resource: time.