1) Продвинутое и глубокое знание JavaScript. Хорошо понимаю прототипы, прототипное наследование, знаю встроенные прототипы, их свойства и методы.
Хорошо знаю, как работают функции, замыкание, остаточные параметры, оператор расширения, рекурсия, контекст
Умею работать с промисами, цепочками промисов, Promise API, async/await
Умение работать с генераторами, итераторами.
Понимаю механизм сетевых запросов, как работает протокол HTTP и HTTPS, чем они отличаются. Знаю, как устроен алгоритм шифрования RSA, протоколы SSL и TLS. Знаю методы запроса, структуру запроса, какие бывают заголовки и что они означают.
Знаю, что такое объект window, его ключевые методы и свойства, а также их применение.
Умею работать с DOM, знаю как взаимодействовать с объектами, деревом объектов, как отслеживать события.
2) Понимаю, как правильно строить архитектуру приложения, как использовать модули, что такое экспорт/импорт, динамические модули. Знаю правила наименования модулей, функций, констант, классов. Понимаю, из каких разделов и подразделов нужно составлять приложение (в зависимости от ситуации).
3) Хороший опыт работы с React. Знаю, что такое Virtual DOM, и как он работает.Опыт работы как с классовыми, так и с функциональными компонентами. Знаю, какие бывают хуки и как их использовать. Также хорошо знаю redux, что такое action, action creator, reducer. Знаю, такое чистые функции. Знаю, что такое иммутабельность и spread операторы.
4) Общие навыки программирования, в том числе применяемые в JS: Паттерны проектирования, хорошее знание регулярных выражений, системы счисления, различные представления (в случае с Javascript, понимаю, как устроены 32-битные числа, как работают побитовые операторы). Понимаю систему оценки сложности алгоритмов. Знаю принципы ООП. Знаю, как устроены сети, какие основные протоколы используются на различных уровнях.
5) Хорошо владею инструментами разработчика в браузере. Знаю, как использовать отладку(в том числе conditional breakpoint, отладку в зависимости от событий), как оценить производительность веб-приложения, как эмулировать различные устройства: отображение страницы, скорость работы при различных типах связи, различные user agents,
6) Среда разработки — WebStorm(есть лицензия). Продвинутое владение фунциями данной IDE: настройка схем, шаблонов файлов, автоподстановки, автопроверки синтаксиса, знаю, как делиться настройками IDE/приложения через VCS, интеграция с JIRA(либо с другими таск-трекерами), тестирование кода.
7) Умею верстать:
- знание html, html5
- знание css3, препроцессоры : sass, scss
- знание bootstrap
- понимание flex, grid
- Работа с UI kit. Применял как готовые решения, так и самописные.
- знание взаимодействия с DOM с помощью Javascript, Jquery.
- понимание и использование кроссбраузерной и адаптивной верстки
- умение верстать с макета (Photoshop, Illustator, Figma)
8) Дополнительные навыки:
- Опыт работы с git (github, gitlab, bitbucket).Могу работать как через IDE, так и через командную строку. Практика code review.
- Опыт работы с Jira, Redmine, работал по методологиям scrum и kanban. Умение оценивать задачи, есть опыт работы с трекером
- Опыт работы в разных ОС: Windows, MacOs, Linux (Ubuntu).
Разработка моблиньгого приложения для сотрудников компании. Основные функции приложения: отображение данных о сотруднике, поиск по сотрудникам, установка графика отпусков, отправка скана больничного листа и отметка больничного на календаре, запрос документов, просмотр новостей компании, бронирование рабочего места, отправка информации о поломке оборудования в техническую поддержку, просмотр бонусных программ для сотрудников (например, скидки, ДМС), заказ пропуска, схема офиса.
Состав команды: product manager, аналитик, два frontend-разработчика, два backend-разработчика, один тестировщик, один дизайнер.
Стек технологий: react, redux, typescript
Работа над двумя веб-приложениями по оптовой купле/продаже продуктов. Одно приложение — для покупателя. Включает в себя просмотр списка товаров, просмотр карточки товара, поиск по товарам, фильтр, добавление товара в избранное. Также присутствует корзина и оформление заказа. Второе приложение — для поставщика. Включает в себя просмотр списка товаров, просмотр карточки товара, поиск по товарам, фильтр, добавление товара(форма, процесс заполнения которой состоит из нескольких этапов, есть поля, связанные друг с другом, в том числе механизм автозаполнения некоторых полей, валидация в зависимости от значения других полей). Также в похожей форме можно редактировать товар. Помимо отдельных форм, непосредственно в списке товаров можно менять статус товара, удалять товар.
В приложении использовал react, redux, typescript. Состав команды: я (frontend-разработчик), один backend-разработчик, один product manager, один тестировщик, один дизайнер, один fullstack-разработчик.
Разработка мобильных приложений для курорта, агрегатора ресторанов, каршеринга и футбольного клуба. также разрабатывал веб-приложения для админок двух из этих приложений(футбольный клуб и каршеринг). За время работы значительно улучшил свои навыки разработки приложений на React Native, глубоко погрузился в typescript, а также изучил новые для себя технологии клиент-серверного взаимодействия — graphql/apollo
Разработка ПО для терминалов оплаты — использовался чистый js, велась работа со старыми версиями Internet Explorer;
Разработка веб приложения для аутсорсинга бухгалтерии — на тот момент владел только чистым js, так что реализовал single-page application без использования фреймворков;
Разработка сайта и по для терминала по работе с криптовалютой — внутренний проект компании, созданный для криптовалютных операций;
Разработка веб-приложения криптовалютного кошелька — приложение, разработанное на React, инициатива внедрить React была моей, т.к. я полностью отвечал за frontend-разработку в компании;
Разработка приложения для pos-терминала (с использованием react native) — приложение для оплаты через pos-терминал с использованием криптовалют. Мой первый опыт с React Native, который сразу же поставил передо мной весьма интересные задачи, поскольку для реализации функций pos-терминала требовался индивидуальный подход и определенные решения.
Имел опыт руководства командой разработчиков.
Ушел из компании в 2018 году, причина — профессиональный рост. Несмотря на очень интересный и уникальный опыт, захотелось поработать бок о бок с другими, более опытными разработчиками.
Участие в разработке сайта и форума игры tera online. Решение как frontend, так и backend задач. Участие в разработке и поддержка сайта для турнира игры tera.
Причина ухода: в данной компании я стажировался, когда набрался достаточно опыта, пошел работать в качестве полноценного веб-разработчика
Бакалавр по специальности "Управление в технических системах"
Получил образование "переводчик в сфере профессиональных коммуникаций". Язык — английский