Ведущий инженер по графике
Студия визуализации, создающая интерактивные 3D-опыты в реальном времени для веба, ищет ведущего инженера по графике.
Наша главная миссия — предоставить самые передовые графические возможности в реальном времени, которые может обеспечить браузер — от высокопроизводительных настольных GPU до iPad — при этом оставаясь на переднем крае эпохи WebGPU.
В этой роли вы будете техническим авторитетом во всем, что связано с визуализацией: конвейер рендеринга, материалы, шейдеры и производительность, которая обеспечивает плавную работу всего этого. Одновременно вы будете писать фронтенд-код, который напрямую предоставляет эти возможности пользователям.
Обязанности
- Архитектура и качество рендеринга. Проектировать и реализовывать наш конвейер рендеринга от начала до конца — PBR материалы, составной стек постобработки (SSAO, SSGI, SSR, bloom, DOF, TAA), HDRI/IBL освещение и корректный линейный → тональный маппинг (ACES / AgX) рабочий процесс.
- Граф рендеринга / система проходов. Определять порядок и состав проходов, как устроены G-буфер и MRT цели, и как проходы обмениваются данными — при этом поддерживать удобочитаемость и масштабируемость.
- Конвейер GLB / материалов. Владеть соглашениями по слотам материалов, системой отделки/вариантов и переключением материалов во время выполнения, работая в тесном сотрудничестве с командой по ассетам.
- Шейдеры. Писать и поддерживать код шейдеров и узловых материалов (TSL / WGSL / GLSL), когда стандартного набора инструментов недостаточно — и иметь суждение, чтобы понять, когда это так.
- Интеграция рендерера и продукта. Проектировать, как 3D-слой живет внутри реального React + TypeScript приложения — чистые API, разумное состояние и производительность на уровне приложения, а не только GPU.
- Производительность на разных устройствах. Достигать и удерживать бюджет кадров на ограниченном оборудовании (например, iPad: 30+ FPS с полным стеком постобработки), поддерживаемый масштабируемой системой качества, адаптирующейся к возможностям устройства.
- Техническое руководство. Устанавливать стандарты, проверять графический код и быть человеком, которому команда доверяет по всем вопросам, связанным с рендерингом.
Требования
- Значительный опыт работы с vanilla Three.js — реальные проекты, а не демо — включая современный WebGPU рендерер, систему узлов и TSL.
- Глубокое, актуальное понимание ландшафта WebGPU на сегодняшний день: модель ресурсов (bind groups, pipelines, render & compute passes), что стабильно, а что еще меняется, и реальная поддержка и ограничения в браузерах. Вы активно следите за развитием этой экосистемы.
- Сильный опыт написания шейдеров вручную на любом языке (WGSL / GLSL / HLSL / Metal). Важна модель исполнения на GPU, а не синтаксис — вы можете писать и отлаживать нетривиальные шейдеры с нуля и свободно освоить WGSL/TSL, если еще не знакомы.
- Реальный опыт работы с PBR материалами и HDRI/IBL освещением в продуктовой среде.
- Хорошее понимание композиции постобработки: порядок проходов, устройство G-буфера, взаимодействие проходов и что ломается при их перестановке.
- Основы графических API на WebGL2 и WebGPU: цели рендеринга, MRT, глубина/трафарет, форматы текстур и точность — и как отличаются два бэкенда. Вы понимаете автоматический fallback WebGL2 в Three.js WebGPU рендерере и его последствия (compute проходы отсутствуют в WebGL2, TSL не отображается 1:1 на оба бэкенда), и проектируете конвейеры с плавным деградированием.
- Мышление, ориентированное на цветокорректность — линейный рабочий процесс, цветовые пространства, тональный маппинг — и инстинкт замечать, когда что-то выглядит неправильно.
- Свободное владение профилированием и оптимизацией реальных GPU нагрузок, особенно на мобильных / тайл-базированных GPU.
- Сильные навыки фронтенда и базовой инженерии. Нетривиальный опыт React + TypeScript, а также чистая объектно-ориентированная архитектура, продуманные паттерны проектирования там, где они оправданы, и реальное разделение ответственности — вы строите поддерживаемое приложение вокруг рендерера, которое выдерживает рост, а не только сам рендерер.
Желательно
- Опыт проектирования архитектуры графа рендеринга / системы проходов для большого, развивающегося конвейера.
- Глубокая оптимизация ассетов glTF / GLB: Draco, meshopt, KTX2 / Basis, атласирование текстур, квантизация мешей, стратегии LOD и инстансинга.
- Временные техники (TAA, временное апсемплирование), GPU-управляемый рендеринг, частицы или симуляция на compute.
- Профилирование мобильных GPU в реальных условиях: тайминги кадров, запросы таймеров, бюджеты вызовов отрисовки и пропускной способности, Spector.js / инструменты платформы.
- Вклад в open-source проекты Three.js или более широкую экосистему веб-графики.
Условия
- Удаленная работа и гибкий график.
- Оплачиваемый отпуск и больничные.
- Зарплата в долларах США.
- Прямое трудоустройство для Великобритании/Канады и контракт для других регионов.