Graphics (WebGL) Engineer
- Software Development
- Taipei, TW
- Remote friendly
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.
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.
2 years minimum experience in the following
Developing interactive graphical applications for the Web using WebGL or graphical libraries like Three.js, Two.js, PIXI.js, Babylon.js
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)
5+ years minimum experience
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
Need to be available to come to the office for in-person discussions as required.