Работа в CSSSR

High Middle JavaScript-разработчикДистанционно и на фуллтайм

Мы отказались от идеи клонирования сотрудников, поэтому продолжаем искать крутых middle JS-разработчиков на наши проекты. Сейчас есть возможность присоединиться к командам, работающим в банковской сфере или на проекте, связанном с безопасностью.

Что нужно делать:

  • разрабатывать веб‑приложения;
  • учиться у сильных, помогать слабым и делиться знаниями;
  • работать: много и хорошо.

Стек технологий:

  • JavaScript, TypeScript (как преимущество);
  • уверенное знание одного из фреймворков: React — Flux (Redux), Rx.js, Angular 1, Angular 2+;
  • знание двух и более фреймворков, опыт разработки на Node.js будет большим плюсом;
  • Babel (ES 2016+);
  • Webpack или Gulp;
  • Git;
  • БЭМ.

Кроме того, горячо приветствуем:

  • умение работать в команде;
  • технический и аналитический склад ума;
  • здоровый перфекционизм.

Взамен мы гарантируем:

  • возможности для карьерного и профессионального роста;
  • коллектив, который всегда готов помочь и поддержать;
  • адекватное руководство и четко выстроенные процессы;
  • интересные задачи и проекты, реализацией которых вы будете гордиться;
  • удалённую работу с графиком 10–19 по Москве;
  • конкурентную зарплату, официальное трудоустройство и честные правила игры;
  • никто не будет стоять за спиной и смотреть, как вы кодите.

P. S. Для жителей Санкт-Петербурга, Нижнего Новгорода и Новосибирска предлагаем вакансии в офисах компаний-партнёров.

P. P. S. Подсказка для самых внимательных и любопытных.

faq.alt

Есть вопросы? Ответы в FAQ

Тестовое задание

Мы приготовили для вас четыре небольших кейса. Сделать нужно хотя бы один.

React

Slomux — упрощённая, сломанная реализация Flux. Перед вами небольшое приложение, написанное на React + Slomux. Это нерабочий секундомер с настройкой интервала обновления.

Исправьте ошибки и потенциально проблемный код, почините приложение и прокомментируйте своё решение.

~ 25 минут
потребуется на решение
~ 25 минут
потребуется на решение

Angular 1

1. Реализуйте таймер обратного отсчёта. Формат — два знака после запятой. В конце работы таймер должен вызывать колбэк onFinish с параметром $endTime, куда будет передан new Date().

Ожидаемый результат .

2. Исправьте отображение статуса. В чём была проблема?

3. Попробуйте добавить 100 таймеров на страницу. Есть ли проблемы с производительностью таймеров? Если есть, то с чем они связаны и как их решить?

~ 15 минут
потребуется на решение
~ 15 минут
потребуется на решение

Angular 2

Суть: приложение реализует таблицу, которую получает через «ApiService» (его реализацию изменять не нужно). Каждые 5 секунд сервис присылает один и тот же пересортированный список.

Проблема: при пересортировке слетает значение, введённое в поле «Note».

Задача: нужно сделать так, чтобы введённое значение после пересортировки сохранилось на строке с тем же номером (№), что и до сортировки.

Актуальное поведение

Ожидаемое поведение

Нужно исправить проблему и написать в комментариях, в чём она заключалась.

После внесения изменений не забудьте сохранить (ctrl+s либо кнопка сохранения), затем нажмите кнопку «Share», скопируйте оттуда «Editor url (also works on Medium)» и пришлите его нам.

Дополнительное задание, которое сократит количество вопросов на собеседовании: как можно оптимизировать AppComponent с точки зрения работы change-detection? Реализуйте предложенную оптимизацию и расскажите об одном или нескольких способах оптимизации в комментарии.

~ 15 минут
потребуется на решение
~ 15 минут
потребуется на решение

Node.js

Необходимо реализовать класс Mailbox. Ссылку на ваш исправленный вариант и комментарии к коду оставьте в соответствующих полях ниже.

Дополнительные задания:

1. Если считаете, что Mailbox не хватает еще каких-то технических функций для более готового к использованию API, добавьте их или напишите, что бы вы добавили.

2. Если считаете, что данное API содержит какие-то проблемы с точки зрения проектирования, опишите их и предложите рефакторинг.

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

~ 20 минут
потребуется на решение
~ 20 минут
потребуется на решение

Расскажите о себе

Дополнительные способы связи: