Senior developer (contract)
At Electric Book Works we make beautiful, clever books for clients all over the world. Our books come in paper, on websites and in ebooks and apps. We need a senior software developer to join our team for six months to do some groundbreaking work, in particular on building a new API for book content.
We have a number of projects to get done, and the priority is to build an API that will let other services (such as WordPress and Android apps) reuse parts of our books. Ideally, we’ll build this with GraphQL, backed by a set of content transformations. It will have open-source components and closed, custom components for our clients.
We expect that you’ll need to be confident with GraphQL (or with REST APIs and keen to get stuck into GraphQL), static-site generators, and of course Git. Here’s a run-down of the tech we’re already using.
- We create our books with Jekyll, using a powerful, open-source Jekyll template we built called the Electric Book template.
- Book content, templates, data and styles are maintained in markdown, Liquid, YAML, and Sass, all managed on GitHub. The EB template also uses shell/batch scripts and Node for several pre-processing steps.
- Our clients and partners can edit and contribute to their books using our open-source CMS-like editor, the Electric Book Manager (EBM). The EBM syncs work to and from GitHub. It’s written in Typescript and Golang. You won’t have to work on that code, but if you can that’s even more awesome.
- We usually place our books, as generated static sites, in subfolders of our clients’ existing WordPress installations. We have a WordPress plugin that we hope to extend to handle more interactions between our books and their ‘parent’ WordPress instance.
- We’re also working on a data-visualisation project using R.
- We’re planning to create an Electron app to make it easier to use the Electric Book template without the command line.
We’re based in Cape Town, and hope to have the team co-located again post-pandemic, at least some of the time. Till then, we do work well remotely (via Basecamp). So if you’re remote, that’s fine.
Right now, we have the work and funding for a six-month contract. We’re hoping that this work will unlock other projects, so that we can extend the contract.
We’re a team of five people who are open, friendly and supportive. We’re very organised, highly transparent, always learning, and we’re good at delivering high-quality, finished work on time and on budget. We’ll be looking for someone who works well on a team, which means having top-notch communication skills, and the ability to translate between technical concepts and real user needs.
When we imagine a new team member, we reckon:
- you’ve worked in software development for several years, and have well-developed skills in many of the technologies we use
- for some of that time, you’ve been in a coaching or leadership position
- you’re known for being organised, and for writing code that others can follow easily
- you spend personal time learning about other human or computer languages, on some form of music or art, or exploring other complex cultural phenomena
- doing meaningful work that’s good for the world is a priority for you
- you have happy, healthy relationships with colleagues.
We have not predetermined the salary for this position. We’ll work that out with you based on your skills and experience.
If this sounds like a role for you, please write us a letter, short or long enough to give us a sense of who you are. If you have public work online we can see, please point us to that. A link to an online resumé (e.g. on LinkedIn) would be useful, too. You can email firstname.lastname@example.org.
This is an open invitation, so there is no closing date.