Demo Time: The King Hackathon

By James Glass

On the 19th — 20th July we hosted another fantastic two-day hackathon at our Barcelona office filled with innovation and genius!

We saw a wide range of great ideas yet again from our Kingsters on how to improve the way we work using software and internal tools as well as some that were just meant to be fun and innovative! Every event is different but the constant elements are FUN!

Event Structure

Organising hackathons can be one of the most rewarding experiences, especially within the Kingdom! Creating space for people to work together to solve technology challenges has many benefits not only for the Kingsters involved but for the Kingdom overall. It can also be a lot of work. That’s why we prepare these events weeks in advance. With the right structure, you can make the organising process easy and fun for everyone involved and keep teams on track for a stress-free experience!

A King Hackathon Defined:

  • It is a fun, creative problem-solving event…
  • Where people come together to solve problems…
  • It aims to strengthen the King community…
  • Welcoming new Kingsters to the community…
  • Provides an opportunity for participants to learn something new…
  • Provides a space and a time for participants to make progress on problems they are interested in…

A group of over 150 King hackers took part in the recent event — culminating in many unique software development projects that computer programmers and graphic designers, interface designers, project managers, and other subject-matter experts all collaborated on intensively within their teams.

Some of the projects presented on the 6th floor at our Barcelona office were:

Face Recognition

Careto is a facial recognition web app in the browser, which means that computational work is done inside the browser environment. It uses tracking.js, a Computer Vision library, to track images using the camera of the device. After capturing different images of faces, it uses Machine Learning techniques to retrain a classification model with the new images. TensorFlow.js allows us to do it using the resources from the browser environment in an incredibly fast way.

Encoding and Evolution with Avro

Software development for compacting data using Apache Avro. Avro allows serialising data using a schema. Avro is interesting because you can share the schemas and their versions across all components like King does with King-constants.

It also supports schema evolution, so a specific record can be deserialised with different versions of the same schema. Other projects on the day included:

  • PoC Documentation w/ Markdown
  • Service Status Delta Calculation plus Alerting
  • Learning ES6
  • Service Mesh
  • Learn Flutter SDK

The Winners! — Poll App for Slack

As Slack admins, one of our weekly/daily requests from users was to install Polly or SimplePoll. The issue with these apps is that the data is stored OUTSIDE of Slack, which could cause a security concern. The app permissions would also request access to all channel data (private and public). To fix this, we decided to make our own version that we can have full control over. The app must create native polls inside Slack, the app must be simple to use from mobile with minimal typing, i.e. no typing/poll vote option 1. That’s it, we ended up with Enketo (Esperanto for Poll). To use Enketo in your Slack chat type/poll create…is this a poll app… yes/no there you go…”

Meanwhile on the 9th floor in Barcelona…

Simultaneously, on the 9th floor at our Barcelona office other teams were presenting more game related projects for the Hackathon that included:

Lots of Levels — LOL

This project was developed as a tool that can generate levels for BWS3. These levels are created based on merging specific pieces of the current existing levels of the game. This could be used by level designers to provide faster content for liveops and main progression.


Automated tests written in Python integrated with Device Cloud — the goal of this project was to run BWS3 integration tests in the device cloud. Starting with Spooky Library liveop as a proof of concept. The Spooky Library launcher job was created in Jenkins with different parameters (branch, build ID, device pool ID and integration tests) that communicates with the Device Cloud API to schedule and start the test run. Test result notifications are sent to a Slack channel after its completion.

See you next time!

A big thanks to all our Kingsters for taking part in our July Hackathon. Our next Hackathon will be in September 2018. It will be an even bigger event so look out for it on our Tech Blog!

Join the Kingdom —

Share this article!

Originally published at on July 30, 2018.