Open edX engineers - taking new projects

Hire experienced Open edX developers

Python and Django engineers who run Open edX in production. We deploy and upgrade with Tutor, theme the learner experience, build XBlocks and plugins, and connect Open edX to the rest of your stack without forking the platform.

  • Tutor deployments and upgrades
  • XBlocks and plugins, no forks
  • NDA signed before access
  • Reply within 1 business day

Get a free Open edX estimate

Takes 2 minutes. A senior engineer replies - not a salesperson.

We reply within 1 business day.

  • 10+Years in LMS engineering
  • 500+LMS projects delivered
  • 150+Clients served
  • 30+Countries
  • 4.9/5Average client rating
  • NDA before accessWe sign your NDA before you share code, data or credentials.
  • You own 100% of the codeCode, documentation and credentials are yours. No lock-in.
  • Talk to the engineerYou speak with the person doing the work, not a salesperson.
  • Reply within 1 business dayEvery request is read by a senior LMS engineer.

Common Open edX problems we fix

Sound familiar?

Open edX can serve very large audiences, but it is a complex platform. Most teams that call us are stuck on an old release or fighting a fork.

You are several named releases behind

We plan the upgrade path through each named release, test your plugins, themes and XBlocks against it on staging, and migrate data with a tested rollback.

Your platform is a fork of edx-platform

We identify every change you made, move what we can into plugins, Open edX Events and Filters handlers or configuration, and bring you back to upstream releases.

The learner experience looks dated or off-brand

Branded micro-frontends (MFEs) using the supported theming and plugin slots, so your design survives the next release.

Course teams want a component Studio does not have

Custom XBlocks for simulations, assessments or embedded tools, with grading and analytics wired in.

Enrolments, payments and CRM data live in different places

Open edX Events consumers and API integrations that keep your CRM, e-commerce and data warehouse in sync automatically.

The site slows down during launches

Tutor on Kubernetes or a right-sized single server, tuned MySQL, MongoDB and Redis, Celery workers and a CDN in front.

What our Open edX developers do

Open edX development services

Deployment with Tutor

New installations and migrations to Tutor, on a single server or Kubernetes, with backups and monitoring.

Upgrades

Moves through named releases with plugin and theme compatibility checks and a staging rehearsal.

MFE theming and UX

Branded learner and authoring experiences using supported theming and plugin slots.

XBlock development

Custom course components with grading, student state and analytics.

Plugins and events

Django plugins, Open edX Events and Filters handlers instead of core changes.

Integrations

SSO, e-commerce, CRM, LTI 1.3 tools and data pipelines to your warehouse.

Scaling and performance

Kubernetes, caching, database tuning and Celery worker sizing for launch days.

Migrations

From a native installation or another LMS into Tutor-based Open edX, or out of Open edX.

Operations and support

Security releases, backups, monitoring and an engineer who knows your platform.

Code-level expertise

Extending Open edX without forking it

The fastest way to fall behind on Open edX is to change edx-platform directly. The supported route is a separate Django plugin that reacts to Open edX Events (or changes behaviour through Filters), installed alongside the platform with Tutor.

  • Events and Filters, not patches. Your logic lives in your own package and keeps working across named releases.
  • Asynchronous by default. Slow work runs as a Celery task, so enrolment and grading stay fast.
  • Packaged for Tutor. Plugins install through Tutor configuration, so a rebuild or upgrade does not lose them.

This receiver sends every new enrolment to a CRM using the COURSE_ENROLLMENT_CREATED event.

from django.dispatch import receiver
from openedx_events.learning.signals import COURSE_ENROLLMENT_CREATED

from .tasks import push_enrollment_to_crm


@receiver(COURSE_ENROLLMENT_CREATED)
def enrollment_created(signal, sender, enrollment, metadata, **kwargs):
    # Keep the receiver tiny: hand the work to Celery.
    push_enrollment_to_crm.delay(
        email=enrollment.user.pii.email,
        username=enrollment.user.pii.username,
        course_key=str(enrollment.course.course_key),
        mode=enrollment.mode,
    )
Event payload fields follow the openedx-events data classes. The Celery task retries with backoff if the CRM is unavailable.

Skills

The Open edX stack we work with every day

Open edX platform

  • edx-platform
  • Studio
  • Tutor
  • Tutor plugins
  • MFEs
  • Plugin slots
  • XBlocks
  • Open edX Events
  • Open edX Filters
  • Course Discovery

Integrations

  • LTI 1.3
  • SAML and OAuth SSO
  • E-commerce
  • CRM sync
  • Aspects analytics
  • Data exports
  • REST APIs

Engineering and operations

  • Python
  • Django
  • React
  • Celery
  • MySQL
  • MongoDB
  • Redis
  • Docker
  • Kubernetes
  • Git and CI

Engagement models

Hire Open edX developers your way

Pick the model that fits today and switch when your needs change. Every model includes a senior engineer, code review and a staging site.

Hourly

Bug fixes, small changes, audits and urgent issues.

from $45/hour

  • Billed on hours actually worked
  • Task-level time log with every invoice
  • Start with a single task
  • Senior engineer, not a junior
Hire by the hour

Part-time dedicated

Steady roadmap work and ongoing maintenance.

from 2500/month

  • A named developer, about 4 hours a day
  • Shared task board and weekly report
  • Updates, monitoring and small features
  • Scale up or down month to month
Hire part-time

Fixed-price project

Well-defined features, migrations and new builds.

from 3000 minimum

  • Written scope, price and timeline up front
  • Milestone-based payments
  • Staging demos before each release
  • Post-launch warranty period agreed in the proposal
Get a fixed quote

Every engagement starts with a free technical call and an NDA. Prices exclude applicable taxes.

How it works

How hiring an Open edX expert works

  1. Tell us what you need

    2 minutes

    Use the short form: platform, what is wrong or what you want built, and how you prefer to work. Two minutes is enough.

  2. Free technical call

    30 minutes

    A senior engineer reviews your site or requirements, asks the awkward questions early and suggests the simplest approach that will last.

  3. Proposal and NDA

    1-3 business days

    You get a written plan: fixed price and timeline, or the developer profile and monthly plan for dedicated work. NDA signed before any access.

  4. Work starts on staging

    Weekly demos

    We set up staging and version control, ship in small reviewed increments and demo every change before it reaches your live site.

Compare

An Open edX team vs a freelancer vs hiring in-house

CriterionAll-in-One LMSFreelance marketplaceIn-house hire
Engineers who work only on learning platformsYes Partial Partial
One team for WordPress LMS, Moodle, Open edX, Canvas and custom LMSYesNoNo
Cover when your developer is ill or on leaveYesNo Partial
Code review and QA before every releaseYes Varies Partial
NDA and IP assignment in the contractYes VariesYes
No recruitment, payroll or notice periodsYesYesNo
Scale hours up or down month to monthYes PartialNo
One accountable point of contactYesNoYes

A general comparison of how each model usually works. Individual freelancers and in-house teams vary.

Open edX releases: why staying current matters

Open edX ships a named release roughly every six months. Ulmo arrived early in 2026, Verawood followed mid-year, and Verawood.1 (with bug fixes, security updates and new features across 39 repositories) was announced on 30 July 2026. Each release changes enough of the platform that skipping several makes the eventual upgrade far harder.

Most modern installations run on Tutor, the community-supported Docker-based distribution. If you still run an older native installation, moving to Tutor is usually the first step: it standardises deployment, makes upgrades repeatable and lets you package customizations as Tutor plugins.

How to hire the right Open edX developer

Ask how they would customize without forking

Look for Django plugins, Open edX Events and Filters, XBlocks, MFE plugin slots and Tutor plugins. "We will change edx-platform" means you will pay for it on every upgrade.

Check real Tutor experience

Ask which named releases they have upgraded with Tutor, how they handle data migrations and what their rollback plan looks like.

Make sure they cover the whole stack

Open edX needs Python and Django for the backend, React for MFEs, and operations skills for MySQL, MongoDB, Redis and Celery. A good team covers all three.

Ask about load and cost

Open edX is heavier to run than PHP-based LMSs. A good developer asks about peak learners and course launches before choosing between a single server and Kubernetes.

Not sure Open edX is the right platform? Read our comparison of self-hosted LMS platforms or see our Open edX development services.

Hiring a Open edX expert: FAQ

How much does it cost to hire an Open edX developer?

Open edX work needs more senior engineers than most LMS projects, so we usually propose a dedicated developer for ongoing work and fixed prices for well-defined projects such as an upgrade or a new XBlock. You get a written estimate after the free technical call.

Can you upgrade our Open edX installation to the latest release?

Yes. We check your plugins, themes and XBlocks against each release you need to pass through, rehearse the upgrade and data migrations on staging, and schedule production with a rollback plan.

We run a fork of edx-platform. Can you help?

Yes. We compare your code with upstream, classify each change, and move what we can into plugins, Events and Filters handlers or configuration. The goal is a platform you can upgrade normally again.

Do you build custom XBlocks?

Yes: interactive components, custom assessments with grading, embedded tools and components that report to your analytics. Each XBlock is a separate package installed with Tutor.

Can you move us from a native installation to Tutor?

Yes. We build a Tutor configuration that matches your current setup, package your customizations as Tutor plugins, migrate the data and switch over with minimal downtime.

Can Open edX integrate with our CRM, SSO and e-commerce?

Yes, through Open edX Events consumers, REST APIs, SAML or OAuth single sign-on and e-commerce integrations. See our LMS integration services.

Is Open edX right for corporate training?

It can be, particularly for customer education at scale. Many internal training programs are better served by a lighter platform. We will give you an honest comparison before you invest.

Free estimate

Tell us about your Open edX project

Share your current release, how you deploy (Tutor or native) and what you need. A senior Open edX engineer will reply with questions or a first estimate.

  • A senior engineer reads every request
  • Written estimate before any work starts
  • NDA signed before you share access

We reply within 1 business day.

Guides from our engineers

Choose which optional cookies we may use. You can change this at any time from "Cookie preferences" in the footer. Cookie policy · Privacy policy