Full Stack (вакансия Softo ltd.)
Письма со стандартными резюме и таблицей скиллов отправляйте на spam@softo.co.

Но если вам действительно интересна наша вакансия, ответьте пожалуйста на максимальное количество вопросов ниже. Почти все они основаны на наших действующих проектах и имеют прикладную ценность.
Теория
Если считаете, что на вопрос нет конкретного ответа, напишите просто свои мысли об архитектуре.
1. Вы работаете над проектом https://clideo.com/resize-video. Frontend находится на servA, а обработка видео происходит на servB. В процессе обработки видео на servB непрерывно пишется лог-файл, из которого можно получить конкретный % прогресса обработки видео. Как передать этот процент в браузер пользователя с минимальными задержками и нагрузкой на серверы? *
Your answer
2. Вы работаете над проектом https://clideo.com/crop-video. Видео-файлы пользователей загружаются на сервер и там обрабатываются, но у многих пользователей низкий upload bandwidth, что вызывает большие задержки при загрузке файлов. “Бизнес” попросил ускорить процесс загрузки или сделать обработку видео, не загружая его на сервер. Ваши действия? Ваши предложения? Возможно ли это вообще? *
Your answer
3. Два разработчика работают над одним файлом, но имеют разные понятия о красоте и стилистике кода, из-за этого один разработчик своим коммитом поправляет стиль кода “под себя”, а второй, сделав коммит поверх - поправляет стиль написания кода “под себя”. Чтобы вы предприняли, чтоб разорвать этот замкнутый круг? *
Your answer
4. Вы пишете приложение на Vue.js, в котором есть два компонента, не являющиеся друг для друга родителем и потомком. Компонентам нужно обмениваться друг с другом информацией. Каждому компоненту нужно знать о состоянии и о происходящих событиях во втором компоненте. Как вы это реализуете?
Your answer
5. Используете ли вы какие-то модели ветвления Git? Если да, то какие именно?
Your answer
6. Объясните на пальцах: чем оперирует Git и что такое коммит в вашем понимании?
Your answer
7. Разработчик сделал ветку `feature-new`, реализовал там новый функционал, влил эту ветку в `master`, удалил ветку `feature-new` и сделал `git push origin master`. После код-ревью ему поставили задачу исправить код в этой ветке и заново влить в `master`. Может ли они это сделать? Если нет, то почему? Если да, то как?
Your answer
8. Для лендинг-страницы понадобилось добавить большие видео-файлы. Разработчик добавил их в git и “пушнул” в origin. Другие разработчики начали жаловаться на то, что с репозиторием стало сложно работать и папка .git стала большой. Почему? Как исправить ситуацию?
Your answer
9. Какое место в MVC занимает Eloquent?
Your answer
10. Нужно сделать так, чтоб после сборки проекта на Laravel + Vue.js, пользователям сайта сразу отдавалась новая версия JS-файла. Как вы будете это делать?
Your answer
11. У вас очень ограниченный по ресурсам (HDD, CPU) сервер и большой проект на Laravel + Vue.js. Проект не использует БД или тяжелые вычисления, но время открытия страниц большое. Вы обнаруживаете, что сервер сильно загружен по I/O. Как бы вы искали причину и исправляли ситуацию? Какие вообще оптимизации Laravel-проектов или PHP-приложений в целом вы используете на практике?
Your answer
Практика
В ответах к этим вопросам вы можете дать ссылку на рабочий fiddle или написать идеи решения / сниппеты кода прямо в поле ответа.
1. К вам подошел коллега и спросил, почему в этом коде не отрабатывает watch: https://jsfiddle.net/guruphp/q5rnp1hb/. Почему? Поправьте код, чтоб watch отрабатывал.
Your answer
2. Юному разработчику дали задачу написать vue-компонент, отображающий списком файлы из vuex, отсортированные по популярности (популярность задана через prop этого компонента). Он написал такой код: https://jsfiddle.net/guruphp/3o4eLb70/ . В этом коде очень много ошибок архитектурных, синтаксических и самое плохое - код не запускается вообще и props заданные по-умолчанию не работают. Исправьте код компонента, чтоб он заработал. *
Your answer
3. https://jsfiddle.net/guruphp/xo8Lqwfm/ . В этом коде при нажатии на кнопку “Start Loading” на некоторое время должна появиться надпись “Loading Image…” после чего уже появится изображение. Но надписи “Loading Image” нет. Почему? Можно ли это исправить? Если да - исправьте. (Убирать Dummy load нежелательно. Представьте, что мы там видео обрабатываем очень интенсивно для пользователя :-) )
Your answer
4. Необходимо сформировать SQL запрос к таблице files (schema: https://pastebin.com/j4hyDwhh), который выводит количество файлов по успешности конвертирования и наличию хорошей оценки у зарегистрированных/незарегистрированных пользователей. Формат вывода: `user_type` ('Visitor', если id_user = NULL; 'User' в противном случае), `flag_converted`, `is_best_rating` ('1' - если rating = 5; '0' в противном случае), `count` (количество записей). Результаты нужно отсортировать по `count` и `is_best_rating` в обратном порядке. И выводить только группы, где `count` больше 1.
Your answer
5. Вы хотите создать новый репозиторий и добавить в него папку bootstrap. Вы выполнили следующую команду: mkdir ~/test && cd ~/test && git init && mkdir bootstrap && git add -A && git commit -m 'initial commit', но получили ошибку: “nothing to commit”. Странно, ведь мы создали в проекте папку bootstrap и проект не пустой. Почему так произошло? Можно ли исправить ситуацию?
Your answer
Общее
1. Имя *
Your answer
2. Возраст *
Your answer
3. Образование *
Your answer
4. Опишите кратко свой карьерный путь в IT, сделав акцент на последнем месте работы
Your answer
5. Ссылки на примеры вашего кода в открытом доступе (GitHub, Bitbucket, etc.)
Your answer
6. Email *
Your answer
Submit
Never submit passwords through Google Forms.
This form was created inside of Softo. Report Abuse