Системный разработчик C++

Зарплата

от 3000 до 5000 €

Местоположение и тип занятости

Будва (Черногория)Полный рабочий деньМожно удаленно

Компания

Разработка программного обеспечения для стартапов. Нестандартные решения.

Описание вакансии

Условия работы

Нам нужен С/C++ник. Да, он самый, вы не поверите, в эпоху node.js и Python. С - это то, что дает работу почти всем остальным - на нем написан Python, JavaScript, Erlang (да-да, а все те, у кого в голове про Erlang возникает слово "магия", я _не_ к вам обращаюсь) и почти все остальное из mainstream, как некоторые из вас догадываются. Нужно ли мне упоминать ядра Linux, FreeBSD и школьные поделки вроде uwsgi?.. Только сейчас мы идем на шаг дальше - все это теперь с code reuse, более четкой архитектурой, шаблонами вместо макросов, которые проверяет компилятор на реалистичность, большой библиотекой решенных проблем, другими ништяками (один auto чего стоит, а? Вместо очень много раз std::list<Nishtjak>::iterator it..., круто же! ;-)) и так далее - C++.

Заниматься нужно будет написанием ядра пропраетарной базы данных, использующей в том числе мощности GPU для той самой магии, которая понимает почти весь SQL, включая joins. В точки зрения технологической сложности - это высший пилотаж и поле для применения и раскрытия таланта! Очень важно, чтобы вы отлично понимали, что происходит "под капотом" структур данных (той же стандартной библиотеки), потому что вы будете как раз заниматься написанием того, что под копотом - нужно знать алгоритмы сортировки, поиска и т.п. Почему данные надо выравнивать в памяти?

Если вы понимаете, что такое pointer и чем отличается (char*)pointer+1 от (int*)pointer+1, то вам к нам. Если знаете о &&, то ваще круто. Если вы можете писать на языках высокого уровня (любых), но вам это _не_ нравится (хотя вы это делаете прекрастно!) и вы раз за разом возвращаетесь к тому, что некоторые называют основами, то вам тоже к нам. Да, вы смотрели Rust, изначально он показался вам отличной идеей, но потом (вы попробовали реальную задачу) вы все поняли...

На выбор: удаленная работа или офис. При удаленной работе, в силе дополнительные условия.

Основные задачи:

  • Писать новый код на основании требований лидов;
  • Участие в разработке тех самых требований с лидами, оформление предложений;
  • Следование идеологии Agile, включая многие ритуалы (стендапы, спринты, планирование спринтов);
  • Взаимодействие с коллегами по команде - у нас ансамбль, не соло проект.

Требования:

  • Отличное знание C/C++;
  • Отличное знание их standard library;
  • Отличное знание алгоритмов (сортировка, поиск и т.п.);
  • Понимание и опыт написания высоконагруженного сетевого кода;
  • CUDA - было бы хорошо;
  • OpenCL желательно;
  • OpenMP или что-то схожее;
  • Можно DPC++;
  • Понимание VMM, модели памяти, кеширования IO;
  • Знание хотя бы одного из языков высокого уровня: Python или Perl или JavaScript или PHP или какая-нибудь другая похожая фигня;
  • Понимание ценности functional programming;
  • Понимание ООП надо упоминать?;
  • Все то, что вы хранили в загажниках своего ума! Вас заставляли переходить на Python (или вставьте что-то другое, что вас бесит), но вы говорили им, что вы за то же время и эффективнее решите ту же задачу на С/C++, и вам отвечали "да кто же это потом будет обслуживать"... И вам было нечего ответить (да, грустно);
  • Стрессоустройчивость (умение спокойно и содержательно объяснять своим коллегам, которые не знакомы с С/C++ проблемы их подходов).
  • Разговорный английский язык!

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

  • Вам, как C/C++-нику, уважение коллег по причине кристального понимания всего, что они делают. Однако, вы должны доказать это на практике;
  • Очень интересную работу - сколько в мире систем распределенных RDBMS? Вам предоставляется шанс работать над одной из самых уникальных!
  • Оплачиваемые отпуска;
  • Гибкий, но определенный график (можно выбрать 8-17, 9-18 или 10-19, час - обед);
  • Испытательный срок (1-2 месяца) в любом случае проходит в офисе, нам всем необходимо "почувствовать" друг друга в работе, а личное общение - ключ. Однако, в случае если человек доказывает делом, что он - ответственный сотрудник, в состоянии работать в команде, то возможен переход на удаленную работу;
  • Для работающих в офисе:
  • Официальное трудоустройство и оформление ВНЖ в Черногории;
  • Оплачиваем переезд (лично вам), помогаем с поиском жилья (поиск, варианты, посмотреть, подтвердить), помогаем перевезти семью;
  • Комфортный офис в комфортном климате, море в 10-и минутах пешком, место - фактически в центре Европы, на машине (а летом многие страны ограничения ради денег туристов отменят точно) все рядом.

Дополнительные инструкции

Для интервью необходимо сделать тестовое задание.