Luna is looking for a senior WebGL rendering engine developer to take charge of the architecture and development of a new WebGL-based GUI and visualization engine for Luna, a project said by NASA and Singularity University to be 1 of 20 most impressive technologies worldwide. If you bring strong technical skills and a passion for user experience, this could be the role for you.
What You'll Do
As a senior WebGL rendering engine developer, you'll be a key part of bringing the vision for Luna 2.0 into reality. This will involve:
- Designing and implementing an extendible GUI architecture, including interactive graph editor, node searcher, panel management system, visual component store, and data-controlling widgets.
- Designing and implementing a modular visualization engine for Luna, allowing its users to design custom data visualizations by connecting nodes together.
- Working closely with stakeholders and customers to design intuitive solutions that unobtrusively enable a fluid workflow.
- Contribute to the creation of a vibrant open-source project and its ecosystem.
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.
- Detailed knowledge of the WebGL 2.0 / OpenGL API.
- Deep understanding of GPU pipeline architecture, including shader pipeline, buffers management, FBOs, VAOs, PBOs, post-processing, deferred shading.
- Experience with development of high-performance shaders, in particular, knowledge of ray-marching and text rendering techniques.
- Good understanding of the functional programming paradigm. The rendering engine will need bindings to purely functional programming languages, in particular to Luna and Haskell.
It would be a big bonus if you had:
- Knowledge of Haskell, PureScript, Elm or some other strongly-typed functional programming language.
- Knowledge of existing WebGL rendering libraries, like Three.js.
- Experience with visual programming systems such as Houdini, Unreal Engine Blueprints, Max/MSP, Lab VIEW, or Touch Designer.