Облачные сервисы VK WorkSpace должны работать стабильно, быстро и предсказуемо каждый день. За этим стоит большой набор высоконагруженных backend-систем: сервисы загрузки и скачивания файлов, потоковая и multipart-загрузка, антивирусная проверка, очистка и восстановление данных, а также метаданные облака и бизнес-логика хранения. Всё это должно выдерживать сотни тысяч запросов в минуту, работать с терабайтами данных и корректно масштабироваться и сохранять целостность данных даже в сложных сценариях.

Мы ищем ведущего разработчика в команду, которая развивает ключевые сервисы облачной платформы. Предстоит работать с распределёнными системами, файловыми хранилищами, очередями, многокомпонентной backend-архитектурой и metadata-layer на базе Tarantool и Lua. Это роль для сильного инженера, которому интересно не только писать код, но и влиять на технические решения, надёжность сервисов и развитие инженерной среды команды.


Задачи

  • развивать и поддерживать распределённые системы и сервисы облачной платформы;
  • реализовывать новые продуктовые возможности и улучшать существующие пользовательские сценарии для миллионов пользователей;
  • работать над производительностью, надёжностью и отказоустойчивостью сервисов под высокой нагрузкой;
  • участвовать в проектировании архитектурных решений: маршрутизация запросов, очереди, хранение данных, безопасность, масштабирование, отказоустойчивость;
  • участвовать в оценке, декомпозиции и планировании крупных задач вместе с командой;
  • проводить код-ревью, участвовать в развитии инженерных практик, поддерживать качество кода и стабильность сервисов;
  • вести и актуализировать техническую документацию;
  • взаимодействовать с разработчиками, смежными командами и другими участниками процесса для согласования и реализации решений.

Требования

  • коммерческий опыт разработки на Go от 4 лет;
  • опыт работы с системами реализованными на разнородном стеке, в том числе на разных языках;
  • уверенный опыт разработки под Linux/Unix;
  • навыки работы с Linux-дистрибутивами (CentOS, AlmaLinux или аналогами);
  • опыт проектирования и разработки высоконагруженных распределённых систем и многопоточных сервисов;
  • понимание принципов работы сетевых протоколов, клиент-серверного взаимодействия и модели OSI;
  • практический опыт профилирования, отладки и оптимизации приложений;
  • опыт работы с PostgreSQL, Kafka, Docker, Kubernetes;
  • готовность разбираться в Lua и взаимодействовать с СУБД класса Tarantool;
  • высокий уровень самостоятельности, ответственности за результат и качества принимаемых технических решений;
    навык выстраивания систем мониторинга и контроля за состоянием системы, опыт работы с syslog, Grafana.

Будет плюсом

  • опыт работы с Tarantool;
  • опыт работы с Puppet;
  • опыт работы с Protocol Buffers;
  • опыт написания spec, умение собирать RPM пакеты;
  • опыт работы с другими языками программирования помимо Go (Python, C, C++, Lua, Perl) и готовность разбираться в существующем разнородном стеке.