From left to right: cat, Liliya Sabitova, Pavel Soldakov, Timur Nurutdinov and Ramil Gabdrakhmanov at Flatstack Hackathon 2016 depicted by Pavel Soldakov

Benefits of Hackathons in the Workplace

Liliya Sabitova
Flatstack Thoughts

--

In my last post we have discussed 7 ways a manager can increase development team’s productivity. However there is yet another powerful way of motivating the team that wasn’t mentioned — organising hackathons within your company:

Two sub-topics will be covered within this article:

  1. Why it’s beneficial for companies to run hackathons and how clients benefit from them, too.
  2. Our own experience—a glimpse of recent hackathon as well as overview of the project that I took part in.

At Flatstack we work on numerous projects that are different in scale. On average our developers work from 8 month to 2 years on one project. In order to diversify their experience, it became a tradition to organise hack days at least four times a year. During such events everybody can break into groups and work on ideas that they always wanted to realise, but didn’t have the time for.

The aim of hackathons in the work-place:

  • Team building;
  • Unleashing human potential and creative thinking of the team;
  • Opportunity to collaborate across departments;
  • Opportunity to experiment with new technologies and trends in the field;
  • Rebooting of the whole team with new, fresh energy;
  • Chance to improve current processes and create something that will later on be used within the organisation;

The major component though is fun and enthusiastic atmosphere of the day. Usually food and drinks are provided as well as work-place is reorganised to provide “team islands” for close collaboration and communication.

To sum up, hackathons are important because they can breathe new energy into the entire organisation. Thus everybody can recharge and even get new perspective on the projects that they are involved in on the daily basis.

This year I have collaborated with our rock star Android developer Ramil Gabdrakhmanov. We have been working on a way to promote our company from the technological point of view. Specifically we wanted to build а recognition system that would react to certain patterns/objects and create augmented reality. Our focus was to detect business card design of our company via iOS or Android device and unveil additional objects through the screen.

After we established our idea, we started to investigate existing tools that could assist us in project realisation.

At first, we considered the possibility of using open source Java library for real-time computer vision — BoofCv.

When evaluating this resource we came across the following draw backs:

  1. It supports only one mobile platform — Android. Keeping in mind that our aim was creating solution that could be used across two main platforms: iOS and Android — this was one of the major misses of the approach.
  2. Necessity of going through a tedious process of “teaching” the system from scratch. During learning stage we would have needed to make numerous photographs of the a pattern/object that should be recognised from different angles and different lighting.
  3. Low level programming. Even though there are advantages of it — higher FPS, more precise and robust performance. However in the given conditions of hackathon with limited time for implementation — this approach was not suitable, since it would require more development efforts.
  4. After the object and its location was recognised in the image of the camera, we would have needed to render 3D model — which was one of the most complicated parts of our idea. When solving this difficulty we would have most likely had to deal with Open GL, however we didn’t have such specialists in our team on the hackathon.

Since approach #1 didn’t work for us for the outlined above reasons, we continued our research. After careful investigation we decided to stick with Vuforia, as it covers all cons that we would have had if proceeded with BoofCv:

  1. It is a cross-platform library. It provides a build for Unity3d engine, which enables compilation of applications for multiple platforms simultaneously. As we were targeting mobile platforms — specifically Android and iOS — it was definitely a great advantage.
  2. There is no need for the learning stage and long database creation — it is automatically created via developer’s console on the web-site of the library.
  3. It involves high programming level, which enables us to focus on the result rather than the process.
  4. Rendering 3D model in Unity3d — is an ordinary task.

With all of the summarised above pros of this approach, there is one rather small con for our use case:

Without further ado, below are the videos of how our project turned out to be after 8h long hackathon:

Demo on Android device:

Augmented Reality that we have created — demo on iOS device

Demo on iOS device:

Augmented Reality that we have created — demo on Android device

All in all, it was a great day full of enthusiasm and cooperation. It really brought all of us together even though there were sprinkles of competitiveness in the air.

*** Special Thanks goes to Ramil Gabdrakhmanov for his effort in realisation of the project and Pavel Soldakov for creating awesome graphic materials for this blog post!

Please feel free to post questions or additional thoughts regarding the idea of hackathons and I hope you enjoyed the article!

If you liked this post please click the 💚 below and be sure to follow Flatstack and myself!

--

--

Product manager in Silicon Valley with 8y+ of experience: launching new products (0→1), scaling existing products (1→∞) in startup, SMB & enterprise setup.