A year of Gymnasium on Open edX

A year ago, Gymnasium made the switch to Open edX from a closed-ecosystem partner platform that we had previously been using for our MOOC. This is a reflection on my experiences over the past year as Gymnasium’s Director of Technology and sole developer.

Mike Bifulco


Gymnasium’s home page

Simply put, Gymnasium is free, online, video-based instruction on design and development of [mainly] web-based software. We have an expanding list of free courses on everything from Information Design and Visualization Fundamentals to Creating a Drupal 8 Theme. We are passionate about delivering courses that are relevant, well-executed, and useful for creatives and developers who are looking to hone their skills, or start to learn something new. The best part? It’s all free.

(Editor’s note: through careful analytics and tracking of our helpdesk tickets, we’ve found that the one thing we can’t emphasize enough is that everything on Gymnasium is free. No matter how much we say it, people still ask.)

Moving to Open edX

When I joined the Gymnasium team, the decision had already been made to switch our platform to Open edX. In fact, I was hired with the expectation that I’d be doing the engineering behind the platform switch. I had never worked with Open edX before, or Python and Django, which the platform is based on. In fact, before then, I had never contributed to any Open Source projects at all.

By now, I’ve gained a fair bit of experience in all of those areas and I might even go as far as to say that in some circles, I may be making a name for myself. Whether or not that’s a good thing is certainly up for debate.

Learning how to edX

If you’re brand new to Open edX there’s a pretty steep learning curve. Setting up a developer environment (or devstack, as it’s known in edX slang) is an exercise in patience and grit. There’s definitely plenty of documentation available for setting up devstack, but it’s not always helpful.

For anyone customizing Open edX, documentation is the achilles heel that you will continually be firing your arrows into. Open edX is a product that is growing quickly, and as a result, various features, configuration, and architecture are still in flux, which results in documentation that is often woefully incomplete, inaccurate, or just plain missing. These growing pains are certainly a good thing to see in the platform we’ve chosen for Gymnasium, but I’d be lying if I didn’t say they slow me down pretty regularly.

With all that being said, there was tremendous sense of occasion and accomplishment that hit the first time I got devstack up and running. And again when I figured out how to replace the stock Open edX logo with our Gymnasium logo. Not terribly long after that, I was waist-deep into the guts of Open edX’s theming system, customizing every inch of the platform for our needs.

The Open edX Community

Open edX would be a lost cause if it weren’t for its bustling community of contributors, implementers, and champions. The Open Source dream is to build a product that is made better not only by the product team designing it, but by the community who is using it day-to-day to achieve their goals. In this sense, the Open edX community is perhaps the most understated asset of the product.

The Open edX community has been a tremendous help to me personally in my job. When I’m at my wits’ end, and I’ve stymied Google, there’s always someone in the community who can help. The Open edX Slack team has been a great place to turn to for help.

Thankfully, the folks at edX recognize the value that the community brings to the table. They hold an annual Conference, host various Meetups, and have hired a Developer Advocate to help boost the voices of people like myself who are developing on Open edX.

Part of my job as Director of Technology is to participate in Open edX community affairs, and that has largely taken the form of voicing my needs and opinions on the future of theming at Open edX. The recent creation of a Theming Working Group by edX’s Community Developer Advocate has been a great step in enabling the voice of developers like me, and I’m looking forward to working with that group.

Having benefited from this amazing community, I’ve found myself wanting to give back by jumping in to help people who are struggling with things that have become routine for me. I do my best to help people who are looking for assistance in my area of expertise, which has quickly become theming Open edX. I’ve presented several sessions at the annual Open edX conference, and plan to submit at least one for next year’s event.

Coding Gymnasium: Live.

Gymnasium is fully open source. You can go check out our code any time you like. We’re even open to accepting PRs, if you care to contribute! I’ve personally tried to embrace the open source model by opening up my development process.

Nearly every Tuesday, from 1:30–3:00pm EST, I jump on Livecoding.tv to broadcast my development process for the world. On the stream, I put everything on the table — my thought process, my struggles, my successes. I jokingly refer to my livestream as me “auditioning for my job” every week. Anyone can jump on and watch, and give me suggestions and feedback in real time. It’s also a great opportunity to learn how a developer thinks, and to help me get better at what I’m doing.

livecoding.tv/mbifulco, Tuesdays from 1:30–3pm EST

Though the audience is often quiet while I code, my hope is that someone somewhere is learning from me. I would love it if occasionally someone from the open source product team at edX flips on my stream, if only for a minute, to see what I’m struggling with, especially when it comes to theming Open edX, which is what I often toil with on stream.

2016 achievements

Since switching platforms, we’ve been through a lot. We’re enjoying having complete control of the product we put out, and being able to contribute back to Open edX for everyone else to benefit from. Though we’ve had the occasional bug sneak up on us, we’ve been able to manage support requests with surprising ease. When we’re caught off guard by something that we don’t know how to fix right away, the community is a great asset.

We’ve pushed about 35 code releases to our production site, launched 3 courses in 2015 after moving to edX, and an additional 5 in 2016, and are on track to exceed 20,000 students registering accounts with Gymnasium for the year. We’ve held events using various livestreaming tools, which have been really great.

What’s next for us

There’s no shortage of ambition at Gymnasium. While we are continually putting out more courses, we also have to deal with the reality of changing technologies. As a result, some of our courses will receive a content refresh in the coming months. This doesn’t mean new course production will stop — but we hope this helps our content continue to be relevant.

We’re currently in the middle of launching Gymnasium on Open edX’s latest named version — Eucalyptus. With this comes a host of new features that we hope our users love, including: course search, login with LinkedIn, new assessment types, better code syntax highlighting, and more.

We’re also pushing the boundaries of the platform in a way that we hope the community benefits from. We’ve been experimenting with CMS-esque features that will help MOOC administrators and content editors update copy on their sites without having to push new code to their platform.

Recently, we launched a pilot Job Listing module on our homepage — it surfaces job listings to you based on a combination of your geolocation, and the market you chose when creating your account. Gymnasium’s parent company, Aquent, is an industry-leading staffing agency for creatives of all types. Our goal is to help you find work after honing your skills with our courses, and this is a step in that direction.

What a year it’s been.

We’re proud to be in the position we’re in, and we are looking forward to what’s to come. As always, if there’s anything I can do for you, you can email me directly, or send a message to our help team.



Mike Bifulco

Cofounder and CTO at Craftwork. http://mikebifulco.com · http://apisyouwonthate.com · http://speechwriter.ai. Into bikes 🚴‍♀️, espresso ☕, looking after 🌍