Moodle with us
Perhaps you've heard of Moodle - we make the world's most popular learning platform and we are on a mission to empower educators to improve our world. As part of our mission we have an exciting project to build and develop a new open social media platform for educators, called MoodleNet… and we have a unique opportunity for a Backend Developer to work on building out the decentralised back-end for the platform.
About your new project and team
MoodleNet will be a key building block in the Moodle ecosystem, and part of the award-winning international open-source software project. With almost 2 million registered users on the moodle.org forums, and over 130 million known users of the Moodle educational software, we envisage MoodleNet as a platform that will quickly scale and be used globally.
Our team is mostly based in Perth, Australia and Barcelona, Spain. But we have colleagues all over the world too - Belgium, England, Ireland, The Netherlands, Canada, USA, The Czech Republic and Greece.
We are a hard working team because we believe in our mission to empower educators to improve our world. When you join us, you will hear stories how we are doing exactly that.
Finally, we really value our peers, and a caring, respectful, open and innovative workplace.
Find out more about us at https://moodle.com and the MoodleNet project https://moodle.com/moodlenet
What your new job can look like…
In this 6 month contract role you will be a backend developer who will use the Phoenix Framework (based on Elixir and Erlang) to build the back-end (micro-services, libraries, database integrations, APIs, etc) for MoodleNet’s decentralised platform.
You will work on implementing features based on a technical roadmap and issue tracker, collaborate closely with the Technical Architect and front-end developers, prototype solutions, develop and implement open source libraries, test, bug fix and create documentation.
This is a flexible position and can be based either remotely or out of our new office in Barcelona. The successful applicant will however be expected to overlap at least 4 hours per working day with the UTC timezone (at least 3 days a week), as they will work closely with Mayel de Borniol (Technical Architect) and Doug Belshaw (MoodleNet Lead), both of whom are based in Europe.
Why the Elixir language?
You can read about our decision to use Elixir on the Moodle wiki. Basically, federated social media apps are heavily event driven and Elixir’s programming model is a great fit when building real-time IO-heavy applications. It also has a beautiful Ruby-like syntax, and is so efficient that you can use a simple Raspberry Pi as a web server, which is pretty cool.
We’re looking for someone with strong skills in:
- Working openly, particularly contributing to free and open source software projects
- Technical development of complex early-stage software projects, with the ability to prototype solutions, being happy to fail fast and learn quickly
- These technologies:
- Elixir (or Erlang + Ruby on Rails)
- Relational databases like Postgres (both with raw SQL and ORMs)
- Using cache systems like Redis
- Creating RESTful (and possibly GraphQL) APIs
- Implementing diverse 3rd party APIs and libraries
- Git version tracking
- Elixir (or Erlang + Ruby on Rails)
- Prototyping solutions, with the attitude of being happy to fail fast and learn quickly
- Agile project management
- Web-based cloud applications, and a passion for decentralisation and scaling vertically
- English, ability to write good documentation, and good communication skills for liaising with team members and stakeholders
And if you know this, even better:
- Using and/or developing the Moodle software
- ActivityPub protocol and ActivityStreams web standard, and implementations such as Mastodon
- Phoenix Framework (a web framework for Elixir)
- Erlang (which underlies Elixir) and the actor model paradigm
- PHP (for integration with Moodle core)
- Creating GraphQL APIs
- NoSQL databases like MongoDB
- Web scraping and DOM parsing
- JSON-LD (JSON Linked Data), JSON, RSS feeds & XML
- GitLab issue tracking & merge requests
- Docker containers
- Kubernetes deployments
With this kind of approach:
- The ability to build and maintain relationships and work confidently with people at all levels
- An enthusiastic and approachable personality
- A good communicator (both written and verbal) with the ability to earn trust and credibility
- The ability to work independently and take the initiative
- A team player with the emotional maturity to tolerate ambiguity and uncertainty
- The ability to lead by example and manage others, including delegation where appropriate to meet deadlines with competing priorities
What's in it for you?
Besides the obvious that we've mentioned - a workplace where we really value our peers, and a caring, respectful, open and innovative workplace - what about:
- a workplace where you have the unique opportunity to build and shape a global open source software project
- a competitive salary
- a truly flexible work-life blend approach - we are open to working remotely from home or out of our Barcelona office with flexible hours
- an environment where you can bring your whole self to work
- the knowledge you are helping millions of people reach their goals
Moodle is committed to equal employment opportunities regardless of race, color, ancestry, religion, sex, gender identity, national origin, sexual orientation, age, citizenship, marital status, medical conditions, genetic information, or disability.
Does this all sound good? if yes...
- Click on the 'apply for this job' button or follow this link: https://moodle.workable.com/j/929856C1E7
- Add a cover letter, resume and anything else you'd like to share. Note that we particularly value living, breathing projects and demos. Please some send code through but also show or tell us why you wrote it, what it’s for, what you like about it, how it helps someone, etc.
- Please do let us know how your experiences and perspectives (personal, professional, academic, or otherwise) could contribute to the diversity of our team.
- Press send!
Note: applications from recruitment agencies will not be accepted at this time.