Experience: * Proven experience in developing web applications using WebGL for at least 5 years; * A portfolio with examples of projects demonstrating skills in working with WebGL.
Deep knowledge of WebGL API: * Expert understanding of the low-level WebGL API and its capabilities.; * Ability to work with shaders (GLSL) for vertex and fragment programs; * Knowledge of the basic concepts of 3D graphics: transformation matrices (modeling, view, projection), lighting, texturing, buffers (vertex, index).
Knowledge of JavaScript: * Excellent knowledge of JavaScript (ES6+); * Understanding of asynchronous programming and working with DOM.
Mathematics for graphics: * Good understanding of linear algebra and geometry required for 3D graphics.
Working with API: * Experience integrating with RESTful API and other web services. Experience with other types of API (especially RPC) will be a plus; * Understanding of the principles of the HTTP protocol; * Ability to process data in JSON and other formats.
Working with version control systems: * Mandatory knowledge of Git and experience with GitLab, GitHub or Bitbucket; * Understanding of the principles of optimizing the performance of WebGL applications.
Knowledge of modern web technologies: * Good understanding of HTML and CSS.
English: * Spoken and written English at a level sufficient for reading technical documentation and communicating with the team (B1 or higher).
Additional desirable skills: * Experience with 3D engines and libraries for WebGL (e.g. Three.js, Babylon.js); * Knowledge of the principles of physics engines (e.g. Cannon.js, Ammo.js); * Knowledge of the principles of shader development (GLSL); * Experience with WebAssembly (Wasm) to improve graphics performance; * Knowledge of CI/CD (Continuous Integration/Continuous Delivery) principles; * Experience working in Agile teams; * Ability to estimate deadlines and stick to them; * Proactivity, responsibility, ability to work in a team; * Desire to develop and learn new technologies.
We offer: * An interesting project and non-trivial tasks that will allow us to show your professional attitude and creativity; * Friendly team; * Comfortable working schedule and working conditions; * Opportunity to work remotely as well as in an office located in the city centre; * Stable, competitive salary; * Paid vacation and sick leaves; * Opportunity for professional growth and career development; * English, paid professional courses, coffee/fruits and other pluses :)