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 backend 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, Italy, The Czech Republic and France.
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 Moodle and MoodleNet.
Benefits
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.
Desired Skills and Experience
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 backend for
MoodleNet's decentralised platform featuring ActivityPub-based federation and GraphQL API.
You will work on implementing features based on a technical roadmap and
issue tracker, collaborate closely with MoodleNet's Technical Architect
and front-end developer, prototype solutions, develop and implement open
source libraries, test, bug fix and create documentation.
This is a flexible position (3-5 days/week) and can be based either
remotely or out of our office in
Barcelona.
The successful applicant will however be expected to overlap at least 4
hours per working day with the UTC timezone, as they will work closely
with the team which is 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
- Contributing to free and open source software projects, particularly those including decentralised technologies
- Technical development of complex early-stage software projects
- Prototyping solutions, with the attitude of being happy to fail fast and learn quickly
- These technologies:
- Elixir language
- Relational databases like Postgres (both raw SQL and ORMs)
- Implementing REST APIs (like ActivityPub)
- Creating GraphQL APIs (using Absinthe)
- Implementing diverse 3rd party APIs and libraries
- Git version control
- JSON (like ActivityStreams)
- Agile project management
- English,
with the ability to write good documentation, as well as excellent
communication skills for liaising with team members and stakeholders
And If You Know This, Even Better
- ActivityPub protocol and ActivityStreams web standard, and implementations such as Mastodon
- Using and/or developing the Moodle software
- Phoenix Framework (a web framework for Elixir)
- Erlang (which underlies Elixir) and the actor model paradigm
- PHP (for integration with Moodle core)
- Web scraping and DOM parsing
- JavaScript / Node / React
- JSON-LD (JSON Linked Data), JSON, RSS feeds & XML
- Jira issue tracking
- 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
Does this all sound good? if yes...
- Click on the 'apply for this job' button
- 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.