Hack Day #1 - A Better Pyres User Interface

Published in Polar Mobile

Polar Mobile often hosts Hack Days at the office to encourage creativity between everyone on the team. Sometimes there are specific themes but this time around the theme was simply: "Solve a Problem". This is certainly open ended but it gives everyone a chance to work on something that they care about and it makes for very interesting presentations due to the wide variety. The Hack Days at Polar generally start at 4:00 pm on a Thursday and go for a full 24 hours ending at 4:00 pm on Friday with presentations following that.

This was the first Hack Day that I got a chance to participate in with Polar Mobile and I initially didn't have too many ideas. I decided to ask around some of my team members on the Analytics and Operations team if there were any specific pain points that I could tackle and I heard one thing that sounded manageable.

Some of the guys on the Operations team use a tool called Pyres. Pyres is a python based clone of Resque which is a Redis-backed library for creating and managing background jobs. All sorts of different tasks are accomplished with this tool such as processing editorial content. Pyres ships with a built in web server which has a minimal interface to manage and see jobs that are currently being processed. I decided to attempt to improve upon this UI.

I managed to add a few key features to the UI prior to time running out during the Hack Day. One thing that was complained about was the lack of sorting functionality for jobs so I added this quite simply. Also, I was told that the most common workflow for the Pyres web interface was to check on which jobs failed most recently. For some reason the jobs were ordered from oldest to newest so I reversed this ordering to save users a few clicks. I also ended up adding some more general statistics about failed jobs and added the ability to restart specific failed jobs from the web interface if need be.

Overall, the project enhancements received moderate response but I certainly enjoyed getting the chance to see what some of the other people came up with. One talented group of engineers came up with a system to display the most popular articles across all Polar applications in near real time. Another individual developed a web based seating plan for the office. I must say, it's pretty awesome to take a day once and a while to work on something that is particularly cool or of interest. I think I'm going to start brainstorming my next hack day idea in advance!

Written By

Andrew Halligan

Published June 16, 2012