C/C++ разработчик
Зарплата
Требования
Местоположение и тип занятости
Компания
Описание вакансии
Условия работы
Нам нужен С/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-и минутах пешком, место - фактически в центре Европы, на машине (а летом многие страны ограничения ради денег туристов отменят точно) все рядом.
Дополнительные инструкции
Для интервью необходимо сделать тестовое задание.