С-разработчик в команду 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 его разработчики говорят, что это сервер приложений и база данных в одном флаконе. Ну а если серьезным языком — это «платформа in-memory вычислений с гибкой схемой данных для эффективного создания высоконагруженных приложений». Tarantool позволяет реализовать множество архитектурных паттернов высоконагруженных сервисов — от простого key-value хранилища до распределенного транзакционного кэша — и интегрировать их в ИТ-инфраструктуру.

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

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

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

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

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

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

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

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

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

Go разработчик в IAM

VK Cloud Solutions
Москва

Python-разработчик с знанием Storage (команда IaaS)

VK Cloud Solutions
Удаленно

Go-разработчик в myTarget

myTarget: рекламная платформа VK
Удаленно

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

VK
Удаленно

SRE инженер в VK Cloud Solutions (Private Cloud)

VK Cloud Solutions
Удаленно

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

Tarantool
Удаленно

Ведущий инженер Hadoop

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

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

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

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

Tarantool
Москва

Технический писатель

VK Cloud Solutions
Москва

Senior ML Engineer

MY.GAMES
Удаленно

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

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

DevOps-инженер

Рекламные технологии
Москва

DevOps инженер / системный администратор Linux

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

DevOps/Unix-системный администратор

Whalekit
Удаленно

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

VK Cloud Solutions
Удаленно

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

Поиск
Москва

Python-разработчик в команду IaaS

VK Cloud Solutions
Удаленно

Golang разработчик

Почта
Москва

Senior DevOps-инженер

Юла
Удаленно

DevOps-инженер

VK Teams
Удаленно

Старший Perl-разработчик

MY.GAMES
Москва

Python/Go-разработчик в команду PaaS (Runtime)

VK Cloud Solutions
Удаленно

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

MGVC
Удаленно

DevOps-инженер

VK Teams
Удаленно

Инженер по информационной безопасности в VK CS

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

Senior DevOps-инженер

Tarantool
Удаленно

Big Data Platform Engineer

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

Системный администратор / DevOps в отдел сетевой разработки

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

Системный администратор Linux / Site Reliability Engineer

VK
Санкт-Петербург

SRE в MCS Private Cloud

VK Cloud Solutions
Удаленно

Senior DevOps-инженер

Tarantool
Удаленно

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

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

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

Tarantool
Удаленно

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

myTarget: рекламная платформа VK
Москва

C++ в умные устройства

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

Аналитик-программист

Антиспам
Нижний Новгород

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

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

Разработчик систем хранения

Tarantool
Удаленно

DevOps-инженер

VK Workspace
Удаленно

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

VK Teams
Удаленно

Go-разработчик (команда IoT)

VK Cloud Solutions
Удаленно

Python/Go-разработчик в команду PaaS (DinApp)

VK Cloud Solutions
Удаленно

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

Tarantool
Удаленно