Skillshot.pl logo
Praca w branży gier

Senior Rust WebGL Developer

dla Luna w Kraków or remote

Praca stała Programowanie


Senior Rust GPU Developer

Luna is looking for a senior Rust GPU developer to take charge of the design, development, and evolution of a new WebGL-based GUI for Luna, a project said by NASA and Singularity University to be one of the 20 most exciting new technologies worldwide.

About Luna

Luna is a visual programming language designed to be widely applicable to both the game industry and procedural graphics creation, such as procedural level generation and game logic scripting. We are working together with several game studios to bring the future of game scripting to life. Luna is like Unreal Engine blueprints, but taken to the next level:

  • Luna is a double representation language - when connecting nodes, real code is generated. When editing the code, the graphs are updated.
  • Luna is fast. The current internal Luna 2.0 JIT compiler performs up to a few hundred times faster than Python.
  • Luna is expressive - you can create custom data types, create and share libraries, use FFI – it is a real programming language under the hood.
  • Luna allows foreign language interoperability. Being built on top of GraalVM it can talk directly with C, C++, Python, JavaScript, and Java to name a few.
  • Luna is a general-purpose language, making its areas of applicability far broader than just graphics processing.

If you bring strong technical skills and a passion for performance, this could be the role for you.

What You'll Do

As a senior graphics developer, you'll be responsible for designing and building a high-performance WebGL-based rendering engine for the Luna IDE:

  • Working closely with stakeholders and customers to design the new GUI for the Luna IDE.
  • Designing and developing the new renderer in a high-performance manner on top of WebGL and Rust (via Web Assembly).
  • Building a next-generation UI framework using this renderer for use in Luna's IDE.
  • Using this UI framework to build the new GUI for the Luna IDE itself.
  • Debug performance issues to ensure that the renderer is capable of achieving high performance even on low-powered hardware.
  • Creating data visualizations (each node visualizes its results). These could range from the ability to visualize 3D models to animation visualization and texture painting views.

The Skills We're Looking For

We have a few particular skills that we're looking for in this role:

  • A strong focus on both user experience and aesthetics.
  • 3+ years experience with WebGL (or OpenGL).
  • A deep understanding of graphics abstractions including: VAOs, FBOs, PBOs, buffer types, and asynchronous computation modes.
  • A deep understanding of GPU techniques including: efficient buffer management, efficient GLSL construction, high-performance vector and font rendering, post-processing, 3D scene description (with nested objects), lights, cameras, and animation.
  • 2+ years experience with Rust, including experience writing unsafe code for FFI and performance, and using the macro system for metaprogramming. You should be able to write idiomatic rust code.
  • Practical experience building high-performance graphical interfaces for end-user-facing applications.

As part of the hiring process for this job posting we're very interested in your previous work in these areas. Please link us to your Rust projects, blog posts and shadertoy shaders if you have them! It's important for us to understand your experience at the start of the hiring process.

It would be a big bonus if you had:

  • Experience with Rust's WASM toolchain, with wasm-bindgen, and experience with WASM itself.
  • Experience with visual programming systems such as Unreal Engine Blueprints, Houdini, Max/MSP, Lab VIEW, or Touch Designer.
  • Knowledge of the runtime and memory models used by various JavaScript virtual machines.

Avoid the confidence gap. You don't have to match all of the skills above to apply!

Who You'll Work With

At Luna, we have a world-class team, with developers, community managers, and business developers from all walks of life and backgrounds, and work in close collaboration with industry advisers such as Robert Gentleman, the creator of the R programming language and computational biologist at 23andMe, and Edward Kmett, a skilled language designer and machine intelligence researcher at MIRI.

You'll be joining a distributed, multi-disciplinary team that includes people with skills spanning from compiler development to photorealistic visual effects creation. Though you'll have your own area to work on, our internal culture is one of collaboration and communication, and input is always welcomed.

We firmly believe that only by working together, rather than putting our team members in their own boxes, can we create the best version of Luna that can be.

The Details

As part of the Luna team you'd be able to work from anywhere, whether that be at home, or on the go! We have team members distributed across the world, from San Francisco, to London, to Kraków. We welcome remote work and flexible schedules, or you can work from the Kraków office (or our planned SF office) if you'd like. We can provide competitive compensation and holiday, as well as the possibility of equity as time goes on.

How To Apply?

Apply via the Skillshot application form and tell us a little bit about yourself and why you think you'd be a good fit for the role! You can also tell us about:

  • Some of your past work or projects.
  • Why you'd like to work on Luna, and where you imagine Luna being in 5 years.
  • The most important features of a team that you'd like to work in.
  • Whether you take pride in your ability to communicate clearly and efficiently with your team.

Data publikacji: 2020-01-30

Liczba wyświetleń: 261