Senior Software Engineer, Canvas Core
Команда Canvas Core создает и поддерживает фундаментальную платформу, обеспечивающую визуальный опыт Mural: бесконечный холст, ключевые компоненты редактора, поведение редактирования документов, управление активами, совместную работу в реальном времени и системы для быстрого и надежного взаимодействия с холстом. Также команда отвечает за UI Mural, протокол обмена сообщениями в реальном времени и API для внутренних команд, которые создают функции диаграммирования, воркшопов, презентаций, интеграций и AI-возможностей.
Миссия — сделать редактор Mural быстрым, надежным, интуитивным и удобным для разработки. Приоритеты: производительность, простота, developer experience и качество платформы.
Задачи:
- Владеть и поставлять новые возможности платформы Canvas от определения проблемы до внедрения, релиза, измерения и итераций.
- Работать с Product и Design над созданием качественного пользовательского опыта, балансируя прагматичную техническую реализацию и долгосрочные потребности платформы.
- Проектировать и развивать поддерживаемые системы Canvas с ответственностью за качество, производительность, надежность и developer experience.
- Вносить вклад в разработку API, границ сервисов и контрактов платформы, на которых внутренние команды могут быстро и безопасно строить.
- Использовать AI-инструменты и агентные рабочие процессы для прототипирования, реализации, тестирования, документирования и оценки работы.
- Укреплять команду через технические ревью дизайна, демо, код-ревью, менторство и улучшение инженерных практик.
- Развивать системы Canvas с богатыми моделями документов и объектов: иерархические структуры сцены или документа, пространственное индексирование и запросы, поведение раскладки, управление активами, механика выделения.
- Работать над крупномасштабными системами конкурентной и совместной работы в реальном времени, поддерживающими синхронизацию общих документов между пользователями, включая решения по порядку событий, задержке, обработке конфликтов и управлению сбоями.
- Участвовать в проектировании и интеграции AI-возможностей продукта на пересечении с холстом, моделью документа, системами реального времени и платформой разработчика.
- Улучшать производительность через профилирование, анализ узких мест, упрощение архитектуры, точечную оптимизацию и вынос дорогих операций из критических путей взаимодействия.
Требования:
- Свободное владение современным JavaScript/TypeScript, знакомство с React, Node.js или аналогичными современными фреймворками.
- 6+ лет разработки и поставки крупномасштабного production-софта в составе agile-команды.
- Сильное инженерное мышление, опыт проектирования масштабируемых, надежных, высокопроизводительных систем и абстракций для разработчиков, балансирующих простоту, developer experience и долгосрочную поддерживаемость.
- Опыт проектирования чистых API-контрактов и границ сервисов: продуманные модели данных, версионирование, валидация, обработка ошибок, документация, долгосрочная поддерживаемость.
- Опыт создания распределенных, конкурентных, совместных или низколатентных систем: инструменты коллаборации, MMO-игры, системы общего состояния, протоколы обмена сообщениями, с пониманием синхронизации, консистентности, порядка событий, задержки, режимов сбоев и компромиссов производительности.
- Опыт работы со сложными системами с богатыми объектными моделями: иерархические структуры сцены или документа, пространственное индексирование и запросы, поведение раскладки, управление активами, механика выделения, чувствительные к производительности пользовательские взаимодействия.