Software Engineer

  • Full-time

Company Description

Hello, we’re OpenPlay! 👋

We’re looking for a full-stack engineer to work with us on our web-based music distribution application. You’ll work with us to design, develop, and deploy new application features for one of the world’s largest record companies. This is a full-time position that can be local (Los Angeles) or fully remote.

What’s an OpenPlay?

We’re a small software team making distribution and workflow products for some of the world’s largest music companies. We’re big on testing, constant incremental improvement, craftsmanship, and pragmatism, and so far have been able to use those buzzwords to quickly deliver lots of features to keep the music industry running. We strive to make well engineered software that looks great and is friendly to use. We’re collaborative, supportive, enjoy learning, and most of all enthusiastic about building new things and making old things better.

Job Description

What you’ll be doing:

  • Refining requirements. We follow an agile process focused on rapid incremental delivery. You’ll take rough features born from an interesting idea, a customer request, or an overdue refactor (or a bug 😬), and collaborate designing the user experience and technical direction necessary to release the next (or first) version.

  • Programming. It wouldn’t be an engineering position without some programming. We try to get to this step with minimal planning time so we can see how an idea takes shape in the real world. Our languages of choice are Ruby and Javascript. We tend to practice outside-in development: most features start with a rough end-to-end (or system, or integration, etc.) test, then we attach some UI, give it an endpoint to communicate with, and finally add in the persistence layer. You’ll be responsible for your feature iterations from start to finish, but you’ll have a team to help and design support for visual polish.

  • Deploying. We offload and automate devops as much as possible, but a small part of every feature is still getting it deployed and ensuring it’s working as expected. We deploy features to production a few times per day on a typical day.

 

Skills we’re looking for:

  • Practical experience in full stack web application development. At least a few years working on both the server and client side of production web applications. Experience with any client/server development (i.e. mobile) would probably also be pretty applicable. Console game development sounds really cool but probably wouldn’t transfer over as well. TI-86 calculator programming experience wouldn’t be a great fit either.

  • Academic knowledge of software development. In addition to being able to make something work, you’ll need to be able to research and articulate why it’s a particularly good solution. A computer science degree is one good barometer we’re looking for, but we understand it’s not the only path to understanding engineering principles and isn't required.

  • A desire to collaborate with others. As a team we often discuss new and better ways to approach problems. We do code reviews and we write comments explaining our rationale when code looks smelly. If you enjoy thinking about new solutions to old problems, and can balance that with small, iterative, deliveries, you’ll probably enjoy working with us.

Qualifications

Key technology experience:

  • Ruby. Experience with ruby would be ideal, but experience with other object-oriented dynamic languages would transfer over pretty well, especially python (you won’t be the only convert). Extensive experience in any programming language might fit as well. If you’re new to Ruby but enjoy object-oriented programming you’ll probably love it.

  • Javascript. Experience with other semi-prototypal web-browser-based scripting languages with a nonsense hodge-podge standard library would probably transfer over too, but happily for the world we’re not sure any exist. In any case, the more experience you have with Javascript the better.

  • Testing. The heart of our workflow is a full suite of end-to-end tests that we rely on to rapidly and safely build and deploy new features and refactor old code. Prior experience with test driven development or behavior driven development would be a big plus.

 

More specific technologies we use:

  • Our server-side code is MVC-structured and built around Sequel (ORM) and Sinatra. If you’re familiar with Rails or similar MVC frameworks you’ll feel at home pretty quickly.

  • Our core distribution product (OpenPlay Music) is a traditional multi-page application driven by server-side HTML and using Javascript to apply bits of dynamic behavior.

  • Our project management and workflow tool is a more recent single-page-application built in React and backed by Ruby communicating over JSON.

  • We enjoy both of them and think they are both appropriate technologies for different types of applications.

  • We do things typical of web applications like:

    • Store data in and query from a relational database (PostgreSQL)

    • Index data and query it with filtering and full text searching (Elasticsearch)

    • Handle slow tasks with background processing

    • Push notifications to clients with WebSockets

    • Export XML files, PDFs, CSVs, Excel spreadsheets, and other formats that just won’t seem to go away

    • Communicate with lots of external systems across all manner of APIs

    • Provide a JSON API for our customers to build on top of

    • Offload as much devops as possible to Heroku 😅

Additional Information

Benefits

  • Competitive compensation

  • Medical, dental, and vision insurance

  • Work life balance: We expect you to generally work 40 hours/week but understand that sometimes it’s summer. We might rarely have a big push where we end up working long hours. The last time this happened was in 2019 for about a week. The time before that was in 2016 for about 3 weeks.

  • Flexible work and vacation schedule: We have found so far that if the work is enjoyable it isn’t necessary to police when people are working. So we try to keep the work enjoyable.

  • Free to work remote: Our process works just as well in person or remote. It can sometimes even feel remote at the office when we’re sitting next to each other talking on Slack with our headphones in.

  • Company Minecraft server with lots of odd elevated stone platforms.

  • Office by the beach with a small-but-growing collection of vinyl figurines.

 

All your information will be kept confidential according to EEO guidelines.