Remote Full Stack Developer

Website OpenCraft

OpenCraft is mostly flat, preferring the creation of lateral roles over the entrenchment of managerial layers. Team members may take roles that handle responsibilities sometimes associated with traditional middle managers, such as an Epic Owner, or a Sprint Planning Manager, but these people are not anyone’s boss. While a small core management team does exist, it has a policy of letting team members make their own decisions wherever possible while providing organizational support.

OpenCraft fosters a highly collaborative environment. We have a process for setting rates, and raises are applied company-wide. This reduces competition between members. Everyone on the team is rock solid and dependable. We hold each other to high expectations and know that we can depend on one another to get the job done.

What You’ll Be Doing When You Join?

As developers at OpenCraft, we all work on a variety of projects. Almost all the work we do is related to the Open edX platform and its ecosystem. Some of the common tasks are as follows:

  • Creating pull requests to Open Source projects to upstream changes,
  • Developing new features, documentation, tests, and bugfixes—for example, adding a new type of interactive exercise in a course, or adding a new – core feature to the platform, like Content Libraries,
  • Deploying and managing instances of Open edX, improving automated deployment systems (DevOps), and
  • Automating repetitive work done by the team through development, allows them to focus on more interesting problems.Developers at OpenCraft are often generalists with a specialization in full stack software development. At times, you will be the leader on a project, meeting with the client to create a roadmap, budget, and tasks. At other times, you will be a contributing developer, completing those tasks and performing code reviews.You will not be stuck on one project for too long. In fact, we encourage you to try a large variety of tasks on different projects during your trial period to best demonstrate your abilities, and you’ll have the ability to take on tasks from different projects during most sprints.

Job Requirements

Basic Requirements:

  • Experience with contributing to free software projects – small contributions are completely fine, but you must have at least one patch or pull request merged in a third-party project, or been a maintainer of an open source project with significant adoption. (Note that you can contribute now to satisfy this requirement – see for example the Open edX release issues, fixing one of these issues guarantees an interview.)
  • Senior developer with 3+ years working with Python
  • Experience with Python web frameworks, specifically Django
  • 3+ years of HTML, Javascript, and CSS (experience with React and/or Typescript is a big plus!)
  • Experience with unit testing
  • Comfortable working in a Linux environment, specifically Debian or Ubuntu
  • Experience with databases: MySQL, MongoDB, PostgreSQL

Additional Skills:

You will work on tasks from the following categories, but you can pick up the skills on the job if you haven’t mastered these yet:

  • DevOps experience, especially on Debian/Ubuntu servers, Terraform, Vault, Packer, Prometheus, ELK, Docker. We are building modern infrastructure and having a strong DevOps presence on top of core software engineering skills is a big plus with us.
  • Managing clients & projects from beginning to completion (senior developer)
  • Cloud computing, like AWS or OpenStack
  • Configuration management tools such as Ansible, Consul
  • RabbitMQ, Redis & Elasticsearch
  • Mobile development (iOS and/or Android)
  • Public speaking at conferences (you would present a talk every year at the Open edX Con)

Benefits

We do include benefits and time off, although in a different manner than in most places. We let each team member decide on their own compensation level, which is meant to include the benefits each of us chooses, rather than the ones a company decides on behalf of everyone.

Everyone at OpenCraft is hired for a full-time, permanent contract position. This simplifies hiring across borders tremendously but comes with some differences compared to traditional employment.

The unit used to determine the compensation is the time spent working, and only the time spent working (excluding vacations, breaks, etc.). Team members set an hourly rate that allows them to live the quality of life they seek. During the hiring process, you will have the opportunity to set your rate. Your rate should include things like

**Taxes
**Healthcare plans or other benefits traditionally offered by employers in your country
**Enough buffer for you to save up for vacations to take when you like

It is not uncommon for team members to set aside cash and take month-long vacations. The vacations are not paid, but your rate can include a good bit of overhead, so how you plan and save for vacations is up to you. Team members have a great deal of flexibility in the time they take off. You will need to give sufficient warning and follow the vacation checklist, but otherwise, you can take what you need.

We encourage team members to frequently take time off, whether it’s vacation time or just a few days to recharge their batteries or take care of personal business. Team members can also request a temporary reduction of their work hours, or even a temporary reduction of their availability to/from specific projects, clients or roles.

You can read more about how rates and compensation work in our handbook.

To apply for this job please visit opencraft.com.