Job Posting: Frontend developer with design skills

Thanks for your interest in working at Read the Docs. We are a small team of 5, and we’re looking to add 2-3 people in 2021, and we’d love for you to be one of them.

About the company

Read the Docs is a large open source project providing documentation building and hosting. You can think of it a continuous integration for docs. We serve over 500 million pageviews each year. We are a small team, but this role will have a large impact on millions of users. Our codebase is almost entirely open source, and we feel strongly about supporting the open source community while sustaining the project in an ethical manner.

We have two primary products:

This role would primarily be working on the core Read the Docs codebase and extensions to Sphinx that we maintain.

About the job

This job will be our first frontend developer hire. We have a couple members of the team who have some knowledge in this space, but we hope you will grow to lead our efforts in this area over time.

At the beginning of the year, we received a grant to support scientific software. Given this grant, the job will have two major parts:

  • Around half your time will be spent working on work related to scientific software. This focuses on improving our documentation embedding client in JavaScript, and working to integrate it into widely used scientific development platforms (eg. Jupyter).
  • The other half of your time will be spent working on Read the Docs itself, outside of the grant funding. We are working on a site redesign, along with many other places where we have long-standing UX and design issues.

We have two major places that users interact with Read the Docs:

  • Our application, where users manage their documentation builds.
  • The “documentation pages” which we publish, where 99% of users only read docs, and might not even know Read the Docs is hosting.

Our goal is to improve both of these experiences for our users.

We are working on a full dashboard redesign which is around 80% finished. One of our first priorities would be for you to come onboard and help us get it finished. This project will give you a very wide understanding of the platform from the start.

The other major priority with the grant work will be a greenfield implementation of a JavaScript client to embed documentation from the Read the Docs API. We have some initial prototypes of this work, but you will be responsible for architecting and shipping this new library for the grant. We have some ideas on the direction we want to go here, but you’ll have a lot of influence in this major new initiative.

Technical Details

Read the Docs is a large open source web application. The current technologies that we’re using are:

  • Semantic UI for views and styles in our application
  • Knockout for view/model binding
  • Webpack for bundling of CSS and JavaScript
  • Django templates for our application views
  • Jinja templates for our marketing content and Sphinx theme design

You don’t need to be familiar with these exact technologies, but having experience with a web-based stack is helpful (eg. Rails, Node, PHP).

Our team has more experience with Python and Django than with JavaScript, so our application UI is driven by a hybrid system that primarily relies on application code and Django templates for display. Most of the work that will go into maintaining our application views will be working with Semantic UI inside Django templates, with Knockout connecting HTML to client side code where client side rendering and interaction is preferred.

Our marketing and landing page content will be a separate project that will use some of the same underlying technologies, but will have very few visual constraints compared to our application. We will be looking for your guidance here in building this project out.

Separate from our application, we also maintain a widely used Sphinx theme. You’ll share some of the maintenance effort on this theme, however it is also a fairly mature project that mostly requires bug fixes.

Additional Responsibilities

All of our team members are responsible for some of the basic operations of the project. As a small team, there are a lot of jobs to be done and not many hands to fill them. This means you will learn a lot about the functioning of a small open source project.

User support is one of the main things you will be handling that spans the company. We have GitHub issues and emails that come in each day, and we have a support rotation for dealing with them. You can expect being the first line of support one day a week, but you can always ask the team for help with issues.

Requirements

We hope for someone with experience and vision to improve the product. We are a small team and you will be given a lot autonomy in building and improving things, so being self-driven is an asset.

Being familiar with some or most of the tools listed above would be great, however we believe experience with similar tools should translate easily as well. Having some knowledge of the data science community is also useful, given the grant work that will be part of this role. We realize that you might not know all of our tools, please reach out if you think you’d be a good fit.

We are a fully remote company and our team is currently based in the US, South America, and in Europe. We hope to work with people that are based in timezone where we have some overlap with the entire team, which is around UTC-8 to UTC+1.

Structure

We are currently only able to offer contracts to work on the project. We would contract you to work 4-5 days a week. Half of our team works 4 days, and the other half works 5 days, and we are happy to be flexible with whatever works best for you.

After an initial interview, we normally do a small paid project (4-6 hours) to see how we work together. Assuming that goes well, we will offer a contract until the end of the calendar year.

The pay rate will vary with experience and the number of days worked. As a small, self-sustaining open source project we are not able to pay as much as large companies. We are able to provide a supportive and very flexible work environment, with a strong sense of mission. All of the members of our team have worked with us for more than 2 years, and we strive to have a stable team working to build something meaningful.

Applying

We will be accepting applications on an ongoing basis until the position is filled.

Please fill out the below form to apply for this role. Normal response time is around 2-3 weeks, and we intend to reply to all candidates.

Thanks for your interest, and we hope to hear from you soon.