Let’s Get Terminal: An Inside Look at Q1 CodeRage

Last week we wrapped up our first quarter CodeRage, a 24-hour hackathon dedicated to our engineers to build exciting and innovative products. The idea of CodeRage is to build something new and interesting without fear of making the idea “production-perfect”. We as engineers are encouraged to shoot for the moon and build anything that interests us and this quarter’s CodeRage was one of the best we’ve had yet!

CodeRage allows us to bond across teams, across brands, and across offices in a way that no other activity could match. It was truly amazing to see all the different projects our engineers came up with in such a short amount of time.

By The Numbers

  • 28 teams
  • 58 participants
  • 5 offices
  • 3 “suh-weet” raffle prizes

Categories

To give every type of engineer a fair chance at winning, we had four different categories for this Code Rage:

Best Back-End Hack – Projects with no visual component

Best Front-End Hack – Projects that showcase a visual component

Best Hardware – Projects that use a Arduino/RaspberryPi

Best Overall Hack – The best project of the night

Winners

Best Back-End Hackerror-log-hack by David Fenster, Alan Leidner, Jared Straub

Error logs are time-consuming to parse and sometimes there are repeat offenders. A genius way to get around this problem is to automate! error-log-hack automatically scans your error logs and files JIRA tickets for any new errors it finds. You can even choose to “not address” tickets to never see the bug again (we’ll just look the other way).

Best Front-End Hack – Visual Facets by David Chester

Have you ever wondered how Google clusters images together in their Image Search? So did Computer Vision Engineer David Chester–and his results are amazing. Keep reading for an in-depth look at his machine learning search project, which also took a win for Best Overall Hack.

Best Hardware CoffeeButton 2.0 by Matthew Katzenstein

This was a brand new CodeRage category and it inspired some seriously useful projects. We hope our office implements Matthew Katzenstein’s winning design, “CoffeeButton 2.0,” which uses arduinos and a big red button to automatically file a JIRA ticket for our facilities team when one of the coffee machines is broken.

Best Overall Hack

This year we had two winners for Best Overall Hack: David Chester’s Visual Facets hack and John Deans’s Project Haystack hack. These teams built some radically ambitious projects, and I had the opportunity to sit down with them and ask some questions about their process.

Best Overall Winner – Visual Facets

Machine learning is the new hot topic and we’re doing some amazing things with it thanks to our service-based architecture. David was able to leverage existing services to solve a different problem: how do you dive into search results visually but still allow to get back to your original search easily?

Taking a note from Google Images and feedback from our customers, David set out to change the way we looked at facets by using computer vision to group similar images and label these groups accordingly.

“We have, for example, [a visual search for] ‘coffee’ where you can go deeper with ‘coffee maker’ and ‘coffee cup,’ but there’s also stuff like ‘food’ and ‘cafe’ in there which is not specially coffee, it’s related stuff that’s higher level,” says David, demonstrating his prototype. David saw a problem here because he knows customers are looking for a more discriminating search.

David used many different approaches to solve this problem, including looking up keywords and clustering algorithms to make sense of the data; however, most of these approaches ended up being spotty. David explains the original clustering algorithms were distracting — if you stood back and looked at the groups from a distance, they all still looked relatively similar.

He found the winning solution by using an approach similar to clustering, but based on computer vision. Computer vision generates vectors based on the images it analyzes; David used these vectors to find visual differences between semantically similar images, which helped him create distinct sets. The final step was to label these sets, which David explains was done by “taking the union of terms suggested by related searches and autocomplete suggestions, then finding the most self-consistent set of images within each of those.” The end result is a user-friendly visual search that sorts images logically and powerfully.

coffee_example

Best Overall Winner – Project Haystack

Another talked-about topic around the office has been our new Editor tool (have you seen it yet!?). As of now, Editor is available exclusively on Shutterstock, but thanks to John Dean and his team, the dream of having Shutterstock Editor right on your desktop might be closer than we think. Project Haystack leveraged Electron and our internal services to extract the core of Editor and produce a working desktop prototype that allows you to use your own photos, open multiple windows, and even save edited files right to your desktop.

We have made huge strides towards building truly service-based applications, and a lot of the challenges the team faced were getting those services to work with external networks. Since most of our services live strictly internal, Gina and her team used the power of the Shutterstock API to load and download the images, as opposed to using our internal services.

unnamed

Conclusion

Code Rage is exclusive to Shutterstock’s awesome technology team and the good news is we’re hiring! Have an amazing idea for a project? Apply now and we might be writing about you next.