Software Engineer (Frontend)

Berkeley, CA
Engineering
Full-time
With Ray, we're making it easy to program at any scale (from your laptop to the datacenter) by providing easy-to-use, general-purpose, and high-performance tools. In addition, we are building a rich ecosystem of libraries (for reinforcement learning, hyperparameter search, experiment management, machine learning training, prediction serving, and more) on top of the core distributed system so that users can rapidly build sophisticated applications. Help us build the future of software development.

We are looking for passionate, motivated people who are excited to build tools to power the next generation of cloud applications.

We are hiring strong software engineers for a variety of roles. Examples include:

Distributed systems engineering. Today, engineers working on scalable applications repeatedly solve the same problems over and over like scheduling tasks, handling machine failures, and transferring data efficiently. Build the next generation of tools and infrastructure to make developing and running distributed applications in the cloud as easy as on your laptop. Part of this work will be open source as part of Ray. This work will allow programmers to develop applications much more rapidly and at a much higher level of abstraction.

Scalable machine learning libraries. One of the things that makes Python great is the fact that it has great libraries. Developers can import numpy and pandas and start building powerful applications. But in the distributed setting today, we don’t have libraries. Instead, we have distributed systems like Spark, Horovod, and TensorFlow Serving. These systems cannot easily be composed together and used as elements of a larger application. For example, an online learning system that ingests streaming data, incrementally trains new recommendation models, and then serves recommendations to users will have to stitch together three different distributed systems (one for streaming, one for training, and one for serving) just to build a single application. In the future, people will build these kinds of applications by importing powerful distributed libraries from a rich ecosystem and by composing them together to build new applications. Help us build that ecosystem. This will include libraries for reinforcement learning, hyperparameter tuning, experiment management, model serving, distributed training, and more. Part of this work will be open source as part of Ray.

Frontend engineering. Developing scalable distributed applications is notoriously difficult, and debugging these applications is even worse. By exposing the right metrics and visualizations, providing high levels of observability into the underlying system and application behavior, and allowing users to take appropriate actions through the product frontend, we can make the experience of developing, running, and debugging software vastly more efficient and delightful.

We are looking for senior hires as well as less experienced but motivated individuals.

As part of your role you will
- Develop high quality software to empower software developers and simplify programming.
- Work with a team of leading distributed systems and machine learning experts.
- Communicate your work to a broader audience through talks, tutorials, and blog posts.
- Help us to build and shape a world class company.
Must be willing to work onsite in our Berkeley office.

We are excited to build a diverse team and encourage all to apply!