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

Full-stack разработчик/программист (backend, frontend)

Зарплата

от 120 000 до 200 000 ₽

Требования

ПриложенияPHPMySQLHTMLCSSJavaScriptNode.jsNoSQLMongoDBMemcacheAjax

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

ОдинцовоПолный рабочий день

Компания

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

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

Мы ищем в команду человека с широким техническим кругозором, знающим плюсы или минусы того или иного технического решения, умеющий обосновать свое видение другим членам команды.

Который сможет наиболее целесообразно выбрать подходящий инструмент под конкретную задачу, а некоторых случаях наоборот добиваться результата с ограниченным инструментарием.

Задачи:

- Участие в разработка нового проекта (frontend + backend + API для мобильных приложений)

- Активное взаимодействие с другими разработчиками команды, координирование действий, участие в проектировании

Требования:

- Опыт работы от 3 лет

- Хорошее знание PHP. Участие или самостоятельная разработка крупных проектов. Опыт работы с популярными фреймворками: Laravel 5 (предпочтительно), Yii, Symfony, Phalcon, etc

- Уверенное знание MySQL. От начального проектирования БД c учетом того, что ожидается большой объем данных и высокая нагрузка, до построения сложных и оптимизация "тяжелых" запросов.

- Знание HTML, CSS

- Знание Javascript. VanillaJS, jQuery. Будет плюсом знание различных фрейворков: Vue, React, etc

- Опыт работы с SVN (Git, Mercurial)

Будет преимуществом и также почти обязательно:

- Опыт написания RESTful APIs и понимание HTTP протокола

- Опыт создания интерактивных и динамических интерфейсов (AJAX, Websocket)

- Кроме PHP вы знаете другие языки программирования, имеете опыт применения в реальных проектах. Perl, Ruby, Python, Go

- Так же знаете, что JavaScript бывает не только в браузере. NodeJS, ES6-7, Babel

- Что кроме MySQL существуют варианты NoSQL. Знаете сильные и слабые стороны, знаете когда применить, а когда отказаться.

- AMQP, Redis, Memcached

- Консоль linux (Ubuntu)

Мы почему-то считаем, что у вас точно есть:

- Понимание заголовка вакансии. Можете полностью спланировать и реализовать решение возникающих задач.

- Интерес к новыми технологиями и решениям. Делаете выводы, что просто модно, а что практично.

- C интересом изучаете опыт других компаний и разработчиков в решении тех или иных технических задач

Полная занятость, полный рабочий день.

Возможность периодически работать удаленно, а так же плавающий график может обсуждаться по результатам начала работы.

Полная удаленка невозможна.

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

Просим Вас прислать решение данной задачи, чтобы мы могли рассмотреть Ваше резюме:

Имеется две таблицы MySQL

Таблица person

+----+----------------------------------------------------------------------+

| id | fio |

+----+----------------------------------------------------------------------+

| 1 | Чан Вячеслав Сергеевич |

| 2 | Беломестныха Бронислава Емельяновна |

| 3 | Бочарова Лада Брониславовна |

| 4 | Румянцева Вера Мефодиевна |

| 5 | Эсмонд Демьян Тимурович |

.....

+----+----------------------------------------------------------------------+

Таблица coordinates

+----+-----------+-----------+-----------+

| id | person_id | latitude | longitude |

+----+-----------+-----------+-----------+

| 1 | 1 | 55.716698 | 37.751972 |

| 2 | 2 | 55.723782 | 37.162460 |

| 3 | 3 | 55.784401 | 37.664227 |

| 4 | 4 | 55.665569 | 37.749336 |

| 5 | 5 | 55.677280 | 37.634632 |

.....

+----+-----------+-----------+-----------+

Полный дамп базы доступен по ссылке, при выполнении задания необходимо использовать его

https://www.dropbox.com/s/6f7davl4rztjled/data.sql...

1. Разработать backend, реализующий API для п.2. Данные возвращаются в формате JSON.

2. Необходимо создать web страницу, на которой будет выведено:

a) Интерактивная карта Google Maps, на которой размещены маркеры по всем имеющимся координатам.

Маркеры, находящиеся в радиусе 10км от Кремля должны иметь зеленый цвет, остальные - красный цвет.

При клике на маркер должен всплывать "ballon" в котором выводится ФИО персоны и расстояние до Кремля в км.

б) Таблица со списком уникальных ИМЕН (не фио) персон, отсортированных в алфивитном порядке и указанием количества повторений имени в базе.

В таблице у каждого имени есть чекбокс (по умолчанию все включены), а также общий чекбокс "выбрать/снять всех".

При их изменении на карте остаются только подходящие под условия маркеры.

Загрузка данных во frontend осуществляется асинхронно из п.1.

Фильтрация производится на backend'е!

Язык программирования PHP, БД MySQL, остальной интрументарий и решения - без ограничений.

Применение громоздких CMS для реализации 1 страницы - недопустимо.

Сделать упор на скорость решения задачи.

Оформление страницы, индикация загрузки и обработка ошибок и т.п. - минимально необходимые на ваш взгляд, без которых страницу нельзя показывать никому :), но существенно не увеличивающие время выполнения задачи.