С-разработчик в команду Tarantool Language Runtime, удаленно

С-разработчик в команду Tarantool Language Runtime, удаленно

Tarantool — платформа, которая объединяет в себе свойства хорошей распределенной базы данных и возможности написания кода на различных языках программирования рядом с ней. Ключевыми особенностями нашего продукта являются скорость, надежность и масштабируемость, что в свою очередь требует выбора эффективных алгоритмов и структур данных, грамотного использования возможностей операционной системы и компилятора, написания чистого понятного кода.

Наш продукт быстро растет, и мы ищем С разработчика в команду Language Runtime, который будет вместе с нами продолжать работать над расширением возможностей сред исполнения Lua и SQL.

Задачи

Нам нужен инженер, который будет заниматься развитием нашей программной среды в Tarantool. Lua — основной язык программирования для написания кода на Tarantool. Его runtime — центральная компонента платформы, обеспечивающая взаимодействие различных подсистем. В качестве реализации у нас использован LuaJIT, который включает в себя как среду исполнения языка, так и трассирующий JIT компилятор. Также мы активно работаем не только над улучшением самой среды исполнения Lua, но и над встроенными модулями, а также сопутствующими инструментами разработчика.

Примеры задач, которые мы решали в последнее время:

  • #1700 Handle fiber switches made on JIT traces: Tarantool использует Lua корутины для исполнения пользовательского кода. Однако, в Tarantool использован иной примитив для многозадачности -- fiber. Смена fiber-а является внешней операцией для Lua мира, и поэтому необходимо уведомлять подсистемы Lua среды (JIT, GC и т.д.) для сохранения консистентности платформы.
  • #5187 LuaJIT platform metrics: В рамках развития Lua runtime мы добавили возможность получения различных метрик платформы (количество различных аллоцированных объектов, число созданных и использованных строк, характеристики работы JIT компилятора и т.д.).
  • #5442 LuaJIT memory profiler: Развитие среды разработчика мы начали с профилировщика памяти, который позволяет следить за аллокацией/реаллокацией/освобождением памяти в Lua среде, а также инструментами для анализа этого профиля.

В ближайшее время мы планируем заниматься такими задачами:

  • #1898 Detect infinity loops in Lua: В парадигме кооперативной многозадачности, реализованной в Tarantool, средства исполнения Lua кода (fiber) самостоятельно передают управление друг другу. Таким образом, бесконечные циклы без передачи управления в своем теле могут приводить к деградации всей платформы. Для предотвращения этой проблемы, мы хотим реализовать механизм принудительной передачи управления, сохранив при этом консистентность кооперативного взаимодействия fiber-ов.
  • #4001 LuaJIT platform profiler: Имеющиеся средства профилирования не покрывают всех потребностей разработчиков, использующих Tarantool. Системные утилиты (perf) снимают только host stack traces; встроенный профилировщик LuaJIT (jit.p) работает только с Lua guest stack. В реальной жизни необходимо иметь инструмент, покрывающий обе среды и реализующий функциональность обоих профилировщиков.
  • #5857 Inter-fiber debugger for Tarantool: Отладчик является ежедневным инструментом разработчика на разных языках программирования и платформах. Имеющиеся отладчики для Lua не подходят для работы со сложным кодом в Tarantool из-за различных особенностей платформы (многозадачность, асинхронность, неблокируемость), поэтому необходимо разработать отладчик платформы, который позволяет удобно и эффективно вести разработку на Lua в Tarantool.

Требования

  • отличное знание языка С;
  • навыки системного программирования под Linux.

Будет плюсом

  • опыт работы с языком ассемблера x86 или ARM;
  • опыт работы с языком Lua;
  • уверенные знания технологий компиляторов и виртуальных машин;
  • желание писать код в open source.

Мы предлагаем

Официальная зарплата
Гибкий график работы
Бонусы и скидки от партнеров
Офис в центре города
ДМС
Профессиональная команда

Tarantool

Про Tarantool его разработчики говорят, что это сервер приложений и база данных в одном флаконе. Платформа может заменять более 30 серверов с обычной СУБД и обрабатывать до 1 млн запросов в секунду. Tarantool — open-source решение: когда пишешь код, создаёшь свою репутацию на GitHub.

Мы предлагаем

Официальная зарплата
Гибкий график работы
Бонусы и скидки от партнеров
Офис в центре города
ДМС
Профессиональная команда

Похожие вакансии

Системный администратор Linux

Одноклассники
Санкт-Петербург

Инженер доступности сервисов / SRE

Технический департамент
Москва

DevOps-инженер (развивай.рф)

Развивай.рф
Удаленно

Hadoop Infrastructure Engineer

Голосовые технологии (Маруся)
Москва

Руководитель группы технической поддержки

VK
Удаленно

SRE / Системный администратор Linux

Одноклассники
Москва

Инженер по информационной безопасности (SOC)

Технический департамент
Удаленно

QA Automation (Python)

Антиспам
Москва

С++ разработчик

Поиск
Москва

Разработчик в группу Автоматизации

Технический департамент
Удаленно

Senior DevOps Engineer

Tarantool
Удаленно

С++ разработчик

Поиск
Москва

Архитектор облачных решений

VK Cloud Solutions
Москва

Руководитель команды инженеров внедрения

VK Cloud Solutions
Удаленно

Системный администратор Linux в группу эксплуатации

ВКонтакте
Москва

Разработчик решений

Tarantool
Москва

С++ Разработчик

VK Teams
Удаленно

Big Data Platform Engineer

Одноклассники
Санкт-Петербург

DevOps-инженер (VK Customer Experience Hub)

E-Commerce
Удаленно

Разработчик в команду Tarantool Ecosystem

Tarantool
Удаленно

PHP-разработчик

Проект myTracker
Москва

Разработчик решений

Tarantool
Удаленно

Golang разработчик в команду В2В Почта

VK Цифровые технологии
Удаленно

Эксперт по информационной безопасности

Одноклассники
Москва

Специалист по информационной безопасности (команда ВКонтакте)

ВКонтакте
Удаленно

Инженер доступности сервисов в Команду ВКонтакте

ВКонтакте
Удаленно

Младший Системный администратор

VK Cloud Solutions
Удаленно