C/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 или что-то схожее;
  • Понимание VMM, модели памяти, кеширования IO;
  • Понимание построения компиляторов и VM (P-code? bytecode? Может, JIT? Что это?);
  • Знание хотя бы одного из языков высокого уровня: Python или Perl или JavaScript или PHP или какая-нибудь другая похожая фигня;
  • Понимание ценности functional programming;
  • Понимание ООП надо упоминать?;
  • Кристальное понимание, как работают sockets (в полной гармонии с select/poll/epoll/kqueue);
  • SYN/ACK!?
  • Понимание разницы между WebSockets и... sockets, хотя это почти оскорбление в купе со строками выше, да? Но все же;
  • Опыт написания parsers (хотя бы flex/bison, но понимание, что такое state machine и как бы это делалось "руками");
  • Все то, что вы хранили в загажниках своего ума! Вас заставляли переходить на Python (или вставьте что-то другое, что вас бесит), но вы говорили им, что вы за то же время и эффективнее решите ту же задачу на С/C++, и вам отвечали "да кто же это потом будет обслуживать"... И вам было нечего ответить (да, грустно);
  • Стрессоустройчивость (умение спокойно и содержательно объяснять своим коллегам, которые не знакомы с С/C++ проблемы их подходов).
  • Разговорный английский язык! (да, сорян)

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

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

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

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