👀 Дизайнеры, с какой командой вы мэтчитесь по вайбам? Проверяйте на Вайб-чеке→ vibe.habr.com

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

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

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

Компания

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

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

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

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

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

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

Удаленная работа не рассматривается. Точка. Удаленка - зло, да, вот так просто и прямо. Удаленка - это несерьезно, это детсад. Удаленка - это срыв сроков и некачественный код. Удаленка - это текучка. Это все факты, как ни сгибай реальность. Если вы думаете иначе, то вы не знаете как должно быть, что такое быстрая и качественная работа. Любая мало-мальски серьезная организация набирает в офис. Общение, сотрудничество, распитие пива по пятницам - это все не просто традиции, это необходимость для мозга.

Что касается переезда именно в Черногорию из РФ, Белорусии, Казахстана и всего вокруг да около. Сейчас некоторые, по понятным причинам, опасаются. Скажем сразу: мы делаем это уже в как-нибудь 300-й раз, и уже какой-нибудь 30-й во время пандемии. Самолеты летают. Дорожки проторены, опыт накоплен (мы даже способны сделать изменения в системе Timatic, если там информация, которая не соответствует действительности, сейчас - это частое явление), мы полностью сопровождаем ваш переезд, помогаем и оплачиваем и за ручку держим, потому что мы понимаем, что это - серьезный шаг, вы приезжаете на готовое.

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

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

Требования:

  • Отличное знание 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-и минутах пешком, место - фактически в центре Европы, на машине (а летом многие страны ограничения ради денег туристов отменят точно) все рядом.

Для интервью нужно будет сделать небольшое тестовое задание.