Привет!


Мы ищем full-stack разработчика в рекламный отдел и дружную команду Пикабу
Незаменимый человек в продакшен-команде рекламного отдела, который поможет реализовать все наши безумные идеи. А придумываем мы не только темы для нативных статей, но еще простые и сложные спецпроекты, игры, тесты, опросы и генераторы. Возможно, что-нибудь еще, но мы пока не придумали!

Что мы от вас ждем:
  • Хороший опыт работы и знание php 5.6+, MySQL и Redis, HTML5 (понимание роли тегов, верстка с макетов), JavaScript ES5+, CSS 3+ (RWD, анимация, эффекты), безопасности (защита от атак, мероприятия и принципы разработки безопасного кода)
  • Желательно владеть SVG (знание формата, его элементов, анимации, эффектов), Canvas 2d (знание элемента, методов и принципов отрисовки графики, анимация), знать регулярные выражения (настройка роутов в nginx, валидация данных), уметь работать с audio и video на HTML5 + JS, Less и/или Sass, со сборкой фронтенда (npm, gulp, grunt, webpack)
  • Готовность работать с большим количеством простых рутинных задач.
Что нужно будет делать:
  • Создавать рекламные проекты: лендинги (как здесь), интерактивные виджеты, тесты, игры (как здесь).
  • Работать в тесном контакте с дизайнером и рекламным отделом.
Что от нас:
  • Рыночное вознаграждение по результатам тестового и собеседования.
  • Работа в офисе (м. Бауманская).
  • Возможна работа на дому, если вы готовы гарантировать доступность и оперативность.
  • Полный ненормированный рабочий день, гибкий график.
  • Официальное оформление по ТК.

Если вам интересна вакансия, вы проживаете в РФ, пожалуйста, ответьте на 13 теоретических и 6 практических вопросов.

Теоретическая часть

1. Почему Вы хотите быть разработчиком в команде Пикабу?

2. Назовите плюсы и минусы работы программистом.

3. Опишите, каким на Ваш взгляд является хороший разработчик?

4. Опишите, каким на Ваш взгляд является хороший руководитель?

5. Почему одни предпочитают коллективную ответственность, а другие - индивидуальную?

6. Руководитель в отпуске, а отдел работает так же хорошо. Как Вы это объясните?

7. Почему при одинаковых зарплатах в одних организациях люди воруют, а в других - нет?

8. На Ваш взгляд из-за чего следует сразу уволить разработчика?

9. Из-за чего случаются конфликты в коллективе?

10. Расскажите случай критики, который оказался для вас полезным.

11. Почему одни программисты стремятся применять более современные технологии и подходы, а другие предпочитают использовать старые, проверенные временем технологии?

12. В компании "А" принято комментировать и форматировать код по принятому стандарту. В компании "Б" уделяют этому меньше времени в угоду реализации проекта в срок. Какой подход лучше и почему?

13. Расскажите об опыте работы в IT. Как вы попали в сферу разработки? Какой был Ваш первый язык программирования?

Практическая часть

14. Необходимо написать функцию hasCollision() на php, которая проверяет, пересекается ли заданный круг хотя бы с одним кругом из списка. Круг - это индексный массив, содержащий три элемента типа int [ x, y, radius ], где x и y - координаты центра круга.

function hasCollision(array $circle, array $circlesLists): bool {
    // ...
}

15. Необходимо написать функцию sortMat(array $mat): array, которая наиболее компактным кодом выполняет сортировку произвольной матрицы NxM: бОльшие по значению элементы должны располагаться ниже, слева направо.
Пример исходной матрицы:

$mat = [
	[6, 5, 13],
	[1, 4, 2],
	[3, 9, 8],
	[5, 10, 7],
];
результат выполнения функции sortMat для исходной матрицы $mat будет иметь вид:
$result = [
	[3, 2, 1],
	[5, 5, 4],
	[8, 7, 6],
	[13, 10, 9],
];

16. Предложите запрос на создание наиболее оптимальной MySQL таблицы user_scores, которая будет хранить результаты выполненных пользователями тестов и будет удовлетворять следующим требованиям:

SELECT
	user_id,
	is_winner,
	score
FROM `user_scores`
WHERE is_winner = 'y'
ORDER BY score DESC
LIMIT 100

17. Дан фрагмент HTML, для которого нужно написать стили CSS (допускается LESS или SASS). Итоговый HTML должен выглядеть как на картинке ниже: круг и внутри цифра. Однако не все так просто: изначально в кружке печатается цифра 4, но если кликнуть на кружок, то цифра в нем должна уменьшается на 1. Если кликнуть по кружку, когда в нем цифра 1, то цифра сбрасывается до 4. Необходимо описать такой внешний вид и поведение, используя только стили CSS (LESS/SASS). HTML менять нельзя, применять JS и прочие языки также не допускается.

<div class="button">
	<input id="check1" type="checkbox">
	<input id="check2" type="checkbox">
	<label for="check1"></label>
	<label for="check2"></label>
</div>
пример внешнего вида

18. Напишите на JavaScript es6+ наиболее быструю функцию getFatDiv, которая вернет HTMLElement самого "толстого" DIV-элемента на произвольной странице или NULL, если нет ни одного DIV элемента на странице. Под "толстым" понимается количество вложенных элементов. Например, DIV у которого 450 дочерних элементов будет менее толстым, чем DIV, у которого 500 вложенных элементов.

19. Секретный агент Пикабу передал зашифрованное изображение. Вам необходимо расшифровать изображение и вывести его на страницу средствами JS (без сторонних библиотек). Алгоритм дешифрования известен:

Зашифрованное изображение (чтобы избежать проблемы с CORS изображение лучше скачать себе на локальный сервер):
зашифрованное изображение

Заключительная часть

Спасибо за прохождение теста :)
Пожалуйста, напишите Ваше имя, возраст и немного о себе:

Ваш email для связи:


Отправить