Service Engineer [Rust]
Build the software at the intersection of cloud and product.
Narrative Select is our latest effort to improve the lives of professional photographers. While conceptually this is a simple product, the challenges we face are humongous. Select has to be fast, insanely fast! Select needs to keep pace with the mind of the photographer. Every time the next image glitches, every time it takes a moment to zoom in, every time the photographer has to wait - we have failed. Delivering a polished, speedy, simple experience is not enough for us. We are constantly pushing on the edges of what is possible. We are constantly asking how we can go further. We live and breath this stuff. We are looking for an exceptional engineer ready to join us in building the future of image selection.
You might work on:
- Integrating with our cloud service APIs to power distributed image selection and management capabilities.
- Wrapping C and C++ libraries with safe Rust abstractions that allow us to leverage existing code ecosystems without impacting stability or reliability within our applications.
- Sharing knowledge about how to write better Rust with the team, and even the wider Rust community.
- Building out and maintaining our automated testing and CI infrastructure.
- Working with the front-end team to define back-end services that will be needed to power new features and capabilities.
- Integrating our ML models, and building processing pipelines around them.
- Building insanely fast image processing pipelines, to deliver assets just-in-time to the client.
We're looking for someone who:
- Has at least 6 years of experience, building high quality software.
- Has professional experience with Rust (or similar).
- Has familiarity with highly concurrent, and parallelised systems.
- Has a high bar in code quality, and customer experience.
- Is relentless in the face of challenges.
- Has exceptional communication, and inter-personal skills.
Nice to have:
- Experience with C(++) codebases, and thinking about manual memory/resource management.
- Have played with ML models and running them in the wild.
- An interest in photography or some knowledge of image formats/image processing (e.g. JPEG, EXIF, XMP, and the many RAW formats).
About our technology:
Narrative Select is an Electron app build using Web technologies such as React and Typescript. We use Canvas2D and WebGL for the image rendering and transformations. Select’s brain is speedy daemon called Maxwell, written in Rust.
Maxwell does all the heavy lifting for Select by offloading tasks like image processing and ML analysis into asynchronous work pools backed by Tokio and Rayon. Maxwell also acts as a bridge to established C and C++ libraries like LibRaw and libjpeg-turbo, allowing us to leverage the functionality of these libraries to accelerate the development of Select.