Luna · May 6th 2019
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.