Open edX® Consulting

Lawrence McDaniel
📡 Full Stack Developer
lawrencemcdaniel.com
Contact Me

I am a 20-year veteran web developer specializing in the Open edX® platform. Thousands of organizations around the world have used my Open edX® blog articles to turn their online education vision into reality. In fact, my how-to guides and tutorials on production installation, platform scaling, custom theming, and configuration have been viewed more than fifty thousand times.

Based in North America, I split my time between Cambridge, Massachusetts and Mexico City. As a freelancer with a low-overhead lifestyle I tend to be the most economical option in many cases. I provide personalized service and fast response to clients located around the world. All of my customers have my personal mobile phone number and can reach me any time by voice, whatsapp or email. My Portfolio, Client List and Recommendations are all available on this site.

  • Free initial consultations in English and Spanish.
  • Are you in planning stages of an Open edX® project?
  • Are you looking for a low-risk deployment solution and an Open edX® service provider with a proven track record?
  • Do you need affordable full-service administration and technical support?

Services That I Provide to the Open edX® Community


Production Installation & Configuration of Open edX®

You should consider hiring a professional to install your Open edX® platform for you, if your budget permits. I have performed dozens of production installations for clients since 2016 on cloud platforms including AWS and Digital Ocean as well as specialized regional cloud providers across Asia and Afrika. I publish technical articles that fully describe all of my methods for preparing your Open edX® platform for production use, including off-site data backup, setting up SMTP email, adding SSL certificates, and taking care of SEO.

I am an expert in configuring the Open edX platform for a variety of common use cases including multi-language and e-commerce enabled platforms of widely varying scale. Open edX® is a mature and stable platform that is also highly configurable. Many customization requests can be implemented via the platform's many configuration parameters. However, configuring the Open edX® platform is a knowledge and experience-intensive endeavor. Properly managing your configuration is also something of a trade craft which you can read more about, here, Open edX Configuration Management Tutorial

Custom Theming

You can customize the appearance of your Open edX® platform by creating and implementing a custom theme. In addition to creating a turn-key custom theming solution for your organization, I have also worked with many organizations around the world to train their inhouse graphic and web designers on how to re-style the look & feel of the platform as well as how to add custom content. You can read more, here, Open edX Custom Theming Tutorial and here, Styling Open EdX Tips and Tricks

Scaling and Capacity Planning

I work with clients around the globe to ensure that their users' experiences are performant and reliable. Open edX® is massively scalable, as you can see from the site edx.org which is one of the largest MOOCs in the world and which runs on exactly the same software and is supported by the same team. The Open edX® platform leverages considerable open source community know-how and best practices in order to maximize its configurability and scalability. Mind you however, scaling is a highly technical topic, and even more so in the case of a complex platform like Open edX®. You can read more, here, Scaling Open edX

Administration & Devops

I provide front-line support for all versions of the Open edX® platform to clients around the world. I also provide technical training to organizations' inhouse IT teams in order to help them prepare for common production live support situations.

Custom Programming

Most clients never require any custom programming. The Open edX® platform is highly configurable, and, it is extensible via its pluggable XBlock architecture. In the vast majority of cases, my clients find the custom features they require from existing XBlocks which I can typically install for them in only a few hours. If you're one of the exceptions to his rule however then let's talk. I have an extensive portfolio of low-level programming projects using Python-Django and ReactJS.

Advisory & Training

I advise project teams around the world, providing expert advise on technical best practices, project and risk management, and relevant context about technical strategies within the Open edX® platform.


Open edX® Client List

FAQ


The Open edX software, inclusive of all system software and third party libraries, is free to download and free to use. edX releases a major update to the software around once per year. The software is controlled by edX but maintained by a consortium of community users consisting mostly the engineering team at edX itself along with contributions from member universities around the world. This group does not charge fees for access to their regular software updates. Your only costs will be external consulting costs, if any, for the installation and configuration, and recurring cloud computing costs. My blog article, "How Much Does Open edX Cost?" includes summaries of itemized projects costs that have been voluntarily submitted by user in the Open edX community over the last few years.

Yes, there are several. The best place to start looking is the official Open edX Service Providers Marketplace managed by edX, Inc. In addition, I have worked with or collaborated with several for whom I can vouch, including (in no particular order)

I am also included in the marketplace, however, edX charges me a fee if you contact from their site, so it'll be cheaper for you and me if you contact me via email at lpm0073@gmail.com

The answer depends a host of factors, but there are some generalizations on which you can safely rely.

  • Use a platform provider if you're just getting started and you lack technical support and your budget permits. All Open edX providers will leave you in complete control of your data, so you'll always have the option of migrating the platform to your own private installation at a later date.
  • Start with Tutor if you're just evaluating the platform and you're on a tight budget, as this is the easiest to get up and running quickly.
  • Consider creating your own native build if
    • you're a startup and you are actively deciding on the feature set you want to offer customers.
    • you have a team in place who is competent in supporting enterprise Django platforms.
    • you intend to customize the software.
    • you do not need customizations, and, your user base will be small.

(Using AWS EC2 server types as a reference)

t2.large (2-processor with 8gb of RAM) is the smallest server size on which Open edX will run reliably. I generally use this server size during development and for very small implementations intended for no more than a few dozen users. For any other size rollout I generally use t2.xlarge servers (4-processor with 16gb of RAM) in conjunction with the platform scaling principals that I outline in my blog article, "Scaling Open edX". The Open edX platform is infinitely scalable, as you can plainly see from the flagship site edx.org. However, scaling is a complex topic -- you've been warned.

Open edX is designed to "easily" integrate with a variety of third party authentication protocols including SAML, oAuth and LTI. In simplest cases such as "Login with Facebook" and "Login with Google" for example, you can get things working in less than an hour using nothing more than the yml configuration files for the LMS and CMS. However, educational institutions frequently required far deeper levels of integration such as Grade Syncing and User Profile Syncing to name two common examples which, while entirely technically feasible, usually require thorough exploration with a trained professional from the Open edX community.

Open edX stores its data in multiple formats including MySQL, mongoDB and the Ubuntu file system. You can read my blog article, "Open edX Complete Backup Solution" to get a better sense of what's involved in backing up the data.

Yes. However, I would strongly encourage you to consider using AWS to host your production platform. I've successfully installed Open edX on all major cloud platforms: AWS, Azure, Google Compute Cloud; as well as at other smaller providers including Digital Ocean and at some regional cloud providers. I can confidently share with you that a.) the exact distribution/version of Ubuntu that you choose does matter (as the authors of the official Open edX documentation claim), and b) I've always gotten the platform to work eventually, even in cases where I did not use the suggested distribution. Net-net, I've found the alternative providers to be good, lower-cost alternatives to AWS during development activities, and AWS to be preferable for production.

Yes, barring a few rare outlying circumstances. I have more experience migrating from Tutor to a native build, since this is a natural trajectory for platform scaling purposes. However, I have successfully migrated in both directions.

You should almost always use the most recent named release; the rare exception being that your organization is desperately awaiting the release of a new feature. edX publishes their "named releases" here, at "Open edX Named Releases".

Open edX is a highly stable, well-behaved platform once you've got it up and running. edX has a world-class engineering team, and they take testing really seriously. With that in mind, and assuming minimal or no customizations to the platform, you can reasonably assume that your platform will essentially be maintenance free other than activities related to scaling (only if your user base grows) and occasional software updates of at least once per year.

If on the other hand, you plan to actively develop new features on the platform then the following might be of interest to you. Open edX is architected as a traditional enterprise-grade Python-Django web application. It is very large and very complex, and it makes use of the entire family of enterprise scaling technologies that one could possibly encounter in a Django project. As of the Koa release the front end is nearly entirely built with ReactJS. There is a substantial learning curve, even if your team are experienced Django/ReactJS folks. The most common technologies that I find myself using are as follows:

  • Ubuntu command line and bash scripting
  • Git / GitHub
  • basic TCP/IP networking stuff
  • Lots of AWS cloud services stuff
  • Python / Django -- albeit with a lot more emphasis on Django
  • JSON and YML file formats
  • ReactJS
  • Bootstrap
  • MySQL -- mostly from the query tool provided in MySQL Workbench

Additionally, Open edX makes uses of a broad range of libraries from Pip and NPM and Ubuntu's apt-get; many of which you'll need to become more familiar.