Graphics (WebGL) Engineer
Phase is a visual and intuitive digital design tool, reworked for the new age. Phase team is based in Taipei and Berlin. We come from different backgrounds, among us there are ex-hackers, architects, professional jugglers, serial entrepreneurs, MMA fighters and robotics experts. Some of us are husbands and dads.
About the Position
Phase is building a simple, visual, intuitive Digital Design product that everyone has always dreamed of! We want to help people enjoy being creative!
Designing websites and apps — what we at Phase call Digital Design — is fundamentally different from Print Design. Digital Designs are more about designing screens rather than pages, flow layouts adapting to dynamic websites and apps, advanced element interaction states, along with deep and practical component libraries.
The output of digital design is <Code />
.
Phase is building exported code with fully customized configurations. We aim to make things like selectors, events, conditions in our Digital Design products with visual and intuitive tools that enable your designs to become reality fast.
Phase team is based in Taipei and Berlin. We come from different backgrounds, among us are ex-hackers, architects, professional jugglers, along with serial entrepreneurs, MMA fighters and robotics experts. We are a team consisting of members who are growth-oriented, user-centric, team players with extreme ownership, and able to look at the big picture.
Why you should work with Phase
PHASE is a company working semi-remote, caring about culture, and believing in fair!
Requirements
2 years minimum experience in the following
- Developing applications for Web with JavaScript (min ES6+) or TypeScript, HTML5, and CSS
- Developing interactive graphical applications for the 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 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)
Experiences 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 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 in the use of profiling tools to optimize 2D or 3D graphics applications (E.g. Chrome DevTools for debugging and performance optimization in Web)
Recommended 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