The Hackathon Culture at Memrise Engineering

Lim
6 min readAug 17, 2017

--

It has been nearly 3 years since I joined Memrise. A lot of things have changed since — our company, our product and our engineering practices — mostly for the better. The Android and iOS apps as we now know them hadn’t even been launched. We were only serving a fraction of our current user base, and with fewer features than we are serving now. The size of our engineering team has nearly doubled. And yet, amid this exhilarating change and growth, one practice remains constant in our engineering team: a regular instalment of what we like to call a ‘hackathon’. There was a hackathon during my first week, and now, there is one every six-weeks.

Image Source: http://www.letsintern.com/blog/summer-internships-and-hackathon-to-carry-your-forward/

Our hackathon format

Interestingly enough, we never actually defined what a hackathon was before adopting it. In our instalment, it’s a two-day codefest where everything goes — everything within reason of course, or without reason if it’s cool enough. On Wednesday, we poll for ideas in a Slack channel, sometimes with a theme, where everybody interested in joining the hackathon proposes their plan and discusses possible group formation. On Thursday morning, all final ideas and groups are announced in a quick stand-up meeting, and then, with the help of coffee and pastries provided by the company, we are off to a good hack. Although one can opt-out of the hackathon, most of our engineering team usually attend unless they are facing an urgent deadline like fixing a particularly nasty crash. On Friday afternoon, after two days of intense hacktivism, we present our hack results in the company all-hands meeting. There is no judgement or competition; as a true hacker would agree: a good hack is its own reward. In fact, the only time when we had judges for the hackathon, all of them were company’s guests and potential hirees who just happened to be visiting the office that day.

There are no rules — only values

We don’t have any rule when conducting the hackathon. There is an implicit understanding that whatever hack we come up with, we should think about the benefits it will bring to the company, our product, and most importantly, learners on our platform. However, it’s just a guideline; not some hard and fast rule designed to easily turn the hackathon into work in disguise. I sincerely believe that our hackathon is driven instead by some of the values Memrise stands for as a company at large: Ambition, Gumption, Diversity, and Generosity.

Ambitious Hacks

Over the years, there has been no shortage of technically ambitious hacks at the Memrise hackathons. As Machine Learning, and Deep Learning in particular, is all the rage these days, a few of us have taken a stab at utilising this discipline to improve our value proposition, from improving our Chatbot and training a grammar checker to performing accent analysis. Most of these hacks have not yet been concluded, but I have no doubt that they will serve as the foundation for a smarter Memrise application in the future. In fact, one such hack from the most recent hackathon by Andy, one of our iOS engineers, is now being actively developed as a full-fledged product feature and we are all excitedly awaiting the day it ends up in the hands of our users.

This is not to say that ambitious technical hacks need to have direct impact on user-facing features. My favourite collection of hacks is from platform team member Max’s crusade against outdated Python code. Before Max joined, just shy of a year ago, we were still running a large Python 2.7 codebase in production. After his valiant efforts, we are not only on Python 3, but also have the infrastructure in place to keep up with new releases. Case in point, Python 3.6.2 was released a couple of weeks ago, and we would run it in production the following day. His most recent hack is about compiling and running the main application on PyPy as well as preparing for the day when we can turn on MyPy type checker during Continuous Integration testing. You can’t really get anymore more ambitious and cutting-edge than that within the Python ecosystem.

Hacking Python, literally!

Gumptious Hacks

Having gumption means nurturing and celebrating a can-do attitude with which one actively seeks to improve the status-quo, and address problems, sometimes even before they arise. A particularly successful and gumptious hack we had is the campaign automation system we are currently running in production. Organising our promotion campaign consistently and intelligently across platforms is a challenging problem. Previously, we had this business logic hardcoded into each client, thereby making every promotion a major application release. As one can imagine, despite being functional, our process was clunky and difficult to manage and maintain. So a couple of hackathons ago, four of our engineers teamed up and built a system to run promotions exclusively from the backend. It became a runaway success, powering all promotions we are currently running on iOS with Android and Web soon to follow. A few other notable gumptious hacks include: our support team member Matthew, who built an IFTTT workflow to classify user feedbacks from various channels by priority so he can get to the most important tickets first; our backend engineer James got impatient with the lack of a hands-free learning experience on Memrise so he built a prototype of a learning mode using Google Home; and so the list of awesomeness goes on.

Diverse Hacks

There is not just one way to hack. Certainly not at Memrise. The most popular type of hack is a software hack but a hardware hack, process hack, etc. are all fair game. For example, our DevOps engineer, Jamie, once built a physical deploy button for our staging environment with an Arduino board and during the presentation got Ed, our CEO, to push it.

Hacking a physical deployment button

Generous Hacks

At the end of the day, though, our hackathon best reflects the generosity inherent in the company’s culture.

It reflects the generosity to allow ourselves the freedom to try out new things, and in the process, to fail and to learn from failures even if it may look superficially irrelevant. For example, one of my hackathon projects was to write a Scheme interpreter in Haskell. It could not be further away from our technical stack and I had no justification for it other than my own infatuation with Haskell at that time. However, while working on the project, I gained a deeper understanding of programming languages and different programming paradigms in general, which undoubtedly has made me at the very least a better-informed engineer. Besides, writing a parser for a programming language with a well-defined grammar allows me to appreciate even more the difficulty of the problem domain we are trying to solve; i.e., how to best teach natural language when it is inherently unstructured and naturally evolved.

It also reflects the generosity we share with and among ourselves. A lot of the hacks we have had so far focus on building tools to help other team members learn and grow in their jobs. From improving API discovery to localisation tooling, these hacks exist first and foremost because we are always looking for ways to make our peers’ lives easier.

Hack: automatically taking screenshots associated with strings to assist localization

Hackathon beyond technology

Our embrace of the hackathon culture has extended beyond technology. We recently organised the first product hack day, during which our product and learning research teams look for various hacks to solve existing problems and improve our product. In general, I believe nothing characterises Memrise better than the spirit of a hackathon. We want to help people acquire learning superpowers and to get there, well, we will just hack on. Thank you for reading.

P.S.: Our next hackathon starts today.

P.P.S.: Enjoy hacking? Would you like to work on the most challenging problems in the education industry? We’re hiring!

Sign up to discover human stories that deepen your understanding of the world.

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

--

--

Lim
Lim

Written by Lim

Currently a software engineer at QuantumBlack. Opinions are my own.

No responses yet

What are your thoughts?