Senior Graphics (WebGL) Engineer

Job description

Phase has built a custom WebGL render engine from scratch, for high-performance interactive design files, which are fully editable.

Our graphics team builds the engine, the graphics editing on top of it, and works with the rest of the engineering team to integrate this with our product's data model and UI. This isn't about using open source WebGL libraries. It's all custom built, from the ground up.

This role is for graphics engineers who go deep.

Responsibilities

Here's some of what we might expect of a new hire:

  • Capable of taking ownership in architecting own code, which fits correctly into the larger system architecture.

  • Provide useful code review (consistent with our company’s standards) on other engineers’ Merge Requests.

  • Proactive participation in group planning, meetings, and other discussions.

  • Capable of communicating a detailed explanation of our product vision (broken into specific features).

  • Complete a full BDD process (alongside designers, product, and QA) correctly completing the engineering role’s responsibilities in BDD.

Job requirements

Required Skills

  • 5+ year minimum experience in the following
    • Developing applications for Web with JavaScript (min ES6+) or TypeScript, HTML5, and CSS

    • Developing interactive graphical applications for Web using WebGL or graphical libraries like Three.js, Two.js, PIXI.js, Babylon.js
      OR

    • Developing GUI applications in C++, C#, Python, Rust, or similar programming languages

    • Developing GUI applications in C++, C#, Python, Rust, or similar programming languages

  • Developing interactive graphical applications, 2d or 3d games using Unity, Unreal Engine, Godot, or similar

  • Expert knowledge of vector math and linear algebra

  • Expert knowledge of rendering pipeline

  • Experience writing high-performance low level graphical applications, middleware, or rendering engines using WebGL, OpenGL, DirectX, Metal, or Vulkan APIs

  • Extensive experience in writing shaders in GLSL, HLSL, Unity shaders, Unreal shaders, Godot shaders, or similar

  • Knowledge of installing, compiling, and bundling web applications with Node.js, Webpack, NPM, or Yarn.

  • Experience in using git workflow with code hosting services such as GitHub or GitLab

  • Experience writing unit and integration tests for graphical 2D or 3D applications

  • In-depth knowledge of the use of profiling tools to optimize 2D or 3D graphics applications (E.g. Chrome DevTools for debugging and performance optimization on Web)

Recommend Skills

  • TDD using Enzyme, Chai, Jest, or Mocha

  • Experience in implementing various anti-aliasing algorithms and visual optimizations

  • Experience in implementing material-based pipelines and various visual effects in 2D and 3D: masks, blur, transparency, gradients, shadows, glow, depth of field, etc.

  • Experience in Multi-User Application development and offline support

  • Experience in developing multi-tab SPA and handling concurrency issues

  • Experience setting up build toolchains for web applications using Node.js, Webpack, NPM, Yarn, or similar

  • Working knowledge of leveraging Web Workers

  • Experience in building web applications with WebAssembly,
    • compiling code into WebAssembly

    • setting up WebAssembly build systems and integrating them into the toolchain

    • integrating WebAssembly modules into the React / WebGL web applications

We believe in fair Shared Ownership.