The Roon team has a common passion for music, sound, and user experience. We are proud to deliver high quality, well-loved software (and some hardware) to music lovers and audiophiles all over the world. Our subscribers are more than customers; they’re fans who share our passion for music and participate vigorously in the community that surrounds our product, which has become the gold standard for music players in the “audiophile” world.
Roon Labs is a self-funded, profitable small business founded in 2015 which currently has 20 employees. All of its principals are hands-on and work for the company full time. We’re growing at a quick but manageable pace – 80-100% year-on-year subscriber growth.
When we founded the company, we set out to delight the most demanding music enthusiasts and audiophiles, not to acquire a billion users. That vision stands today… we don’t have outside investors because we don’t want our product vision to conflict with our business goals. Roon is a premium-priced offering designed for a specialist audience, so we don’t need massive scale and we avoid the risk of being forced into an exit by business pressures.
Roon Labs is notionally headquartered in New York, but we have no offices. Instead, our team is distributed across three continents, and everyone works remotely. Many members of our team travel extensively around the world. We have a long history of working this way, and we love the flexibility and lifestyle that it allows.
Roon Labs is looking to hire several software developers during the first half of 2019.
Experience with our technology stack is a plus, but we place more value on the breadth of technologies you’ve worked with in the past. It is important that you are comfortable and experienced working in a large pre-existing codebase and with a variety of languages, toolkits, and technologies, picking up new skills and expertise as needed.
This role is open to all generalist developers who can comfortably work on all areas of our systems and get stuff done.
We are also interested in growing the team in a few specific directions. These are some possible areas of focus, based on the work we have coming up. Experience relevant to these areas is a bonus, and if any of this resonates with you please let us know.
Our mobile applications share one UI codebase across platforms--so this isn’t about building screens. There is some technical debt in our mobile infrastructure, and some expected product touch points are missing or not done well. Furthermore, as we expand the scope of our mobile apps to include streaming/playback away from the home system, there will be a lot of under-the-hood work required to make a lot more of our code run (and perform) on tablets and phones.
A few months ago, we launched Roon Radio, our first machine-learning feature. We have a healthy roadmap planned for future features that incorporate machine learning, and could use some help making these plans a reality. This work would encompass everything from data acquisition/warehousing, batch processing, learning/training steps, and surfacing the results via cloud services, dashboards, or our client applications. In parallel, we are working on ETL and Analytics systems for the rest of the company.
We recently moved our cloud operations to a new provider and containerized everything. While things are up and running, there are definitely some aspects that require shoring up and long term ownership, and we still have some rough patches in the system that we are slowly moving through. Adding fresh perspective, experience, and ownership in this area would be a great help to us.
If Roon were a web based product, we’d call this “full stack development”. We are always at work implementing new features or integrating with other products. This generally involves work in several layers--cloud services, the media server, and the user interface. We're looking for developers that can handle the detailed aspects of projects like this without losing sight of the larger goal.
Roon functions like an IoT product in the home. The core of the product is a media server, which manages a music library and streams audio to multiple zones around the home. This can run as software or on a dedicated appliance. In addition, Roon supports many different control points and networked audio devices. The Roon user experience is backed by a set of cloud services which serve up music metadata, recommendations, and so on.
Roon’s client applications are all built in C#, with C/C++ underpinnings. We use Xamarin tooling on iOS and Android. Our software is portable across Windows, Mac, iOS, Android, and Linux. The user interface is built using an in-house UI toolkit that combines a functional-reactive programming paradigm with an OpenGL-based rendering engine.
Our cloud services are built in C#, Node.js, and Python. Our cloud infrastructure runs on Docker Swarm and Google Cloud Platform. We use Postgresql, Nginx, and Elasticsearch.
Our data and learning systems are built using Python (numpy, scipy, scikit-learn, pandas, …), C++, SQL, and Airflow.
While a lot of our code is written in C#, this is not a Windows/Visual Studio/Microsoft’s Latest Dogfood kind of place. We use a limited subset of .NET as a portable runtime environment and most of our developers live on Mac/Linux machines using vim/emacs, make, zsh, and git.
The most active portion of our work day is 12PM-5PM EST. Your typical work hours should overlap that period sufficiently to facilitate collaboration with others. Aside from that, we do not care where you are located or if you need to split up your work hours in a non-standard way.
We offer Health/Dental/Vision (80/20), 401k with match, paid parental leave, and flexible time-off.
If this sounds like it might be a good fit for you, please contact us at email@example.com.
Roon Labs is committed to creating a diverse environment and is proud to be an equal opportunity employer. All qualified applicants will receive consideration for employment without regard to race, color, religion, gender, gender identity or expression, sexual orientation, national origin, genetics, disability, age, or veteran status.