Created by Ivan Jovanovic

JS Remotely - Remote JavaScript Jobs

Find new remote JavaScript, Node.js, Angular, React, Vue or Electron job from 200+ posted jobs!

Post your job ad - $99 for 3 months ✏️

Senior WebGL Rendering Engine Developer (TypeScript)

Luna

Overview


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.

  • Practical knowledge and experience with JavaScript and browser-related optimizations, for example, how to implement a high-performance GPU picking in WebGL.

  • 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.