Обо мне
На работе я увлеченный разработчик, ярый приверженец правильных методик и паттернов, уделяю больше внимание читаемости, поддерживаемости и масштабируемости кода, верю в тестирование. Я из тех разработчиков, кто склонен тратить больше времени, но делать качественно.
В жизни я любящий муж и отец, неутомимый спорщик, задрот по настольным играм, велосипедист в оставке и просто приветливый парень со своеобразным чувством юмора.
Я живу в Москве, иногда уезжаю с семьей в теплые края и работаю по удаленке. Способен подстроиться под ваш часовой пояс, обеспечив частичное или полное перекрытие по рабочим часам.
В этих ваших интернетах
- GitHub: lolmaus
- StackOverflow
- Twitter: @lolmaus_en
- Telegram: @lolmaus
- Gitter: lolmaus
- Slack: @lolmaus
- E-mail: [email protected]
Навыки
Фронтенд-разработка
- Более шести лет во фронтенд-разработке
- Уверенно владею JS, ценю современные инструменты, практики и паттерны
- Sass-энтузиаст
- Большой опыт в Responsive Web Design, модульных сетках, mobile first и т. п.
- Использую BEM-подобную методологию, обеспечивающую неограниченную масштабируемость и исключающую протечки стилей
- Не дизайнер
EmberJS
- Более трех лет работаю исключительно со сложными Ember-приложениями
- Имею чутье на "путь Ember" и его best practices
- Делаю акцент на обеспечение поддерживаемости, читаемости и масштабируемости кодовой базы
- Предпочитаю работать по циклу Test-Build-Refactor
- Серьезно отношусь к тестированию: пишу юнит и приемочные тесты, TDD/BDD, моки API и слоя модели, непрервыная интеграция
- Имею опыт с продвинутыми возможностями Ember: полиморфные связи, FastBoot, Concurrency, Element Queries и т. п.
- Активый участник сообщества Ember, имею скромный open-source вклад
Прочие технические навыки
- Уверенно владею инструментами разработки: git, терминал, SSH, Docker, пакетные менеджеры, средства сборки, StackOverflow/Google и т. д.
- Пользователь Linux. Не DevOps, но имею некоторые админские навыки
- Опыт работы в распределенных командах, SCRUM
- Знаю Ruby, присматриваюсь к Elixir
- Имею активные профили на GitHub и StackOverflow
Нетехнические навыки
- Свободно говорю по-английски
- Печатаю вслепую
- Знаю собственные недостатки и сообщу вам о них
Вклад в Open Source
Sass-библиотеки
нарезка media queries без труда
подборка удобных mixin'ов для системы модульных сеток Singularity
Ember-аддоны
набор кастомных assertion'ов, цель которого — заменить Chai в мире QUnit. Пишите свои собственные assertion'ы!
решение для диалогов alert
, confirm
and prompt
, не блокирующее поток, поддающееся стилизации и обладающее простым API
компонент для drag'n'drop сортировки с поддержкой вложенных списков
реализация element queries для ваших приложений
полное решение для поддержки эмодзи в вашем приложении
рендеринг формул LaTeX с помощью KaTeX
компонент в виде кнопки или ссылки, осуществляющей анимированную прокрутку до указанного селектора
Альтернатива для position: sticky
, которая работает внутри элементов с overflow: hidden
чрезвычайно простой компонент для круговых диаграмм на основе SVG
позволяет использовать gist.github.com в качестве замены бэкенда
эксперимент с централизованным хранением состояния, более подходящим для Ember, чем Redux
отмечает записи как dirty, когда связанные записи становятся dirty
интеграция Prismic.io с Ember
интеграция с BaaS Stamplay.com
Приложения на Ember
тестовое задание, которое я выполнил для Intercom.io
этот сайт, см. подробое описание ниже
просмотр YUIDoc- и JSDoc-документации любого проекта, любой его ветки/тэга/коммита непосредственно с GitHub
простая и наивная реализация иммутабельного состояния и слайдера для "путешествий во времени" в Ember
JavaScript-библиотеки
самостоятельная assertion library, спроектированная для простого контрактного программирования
Старые jQuery-плагины
метод, противоположный closest()
: находит ближайшего потомка, соответствующего селектору, игнорируя вложенных в него потомков
избавляет от мозго#$%&ва с событиями dragenter
и dragleave
, предоставляя их аналоги, работающие как mouseenter
и mouseleave
, а не mousein
и mouseout
Опыт
Frontend-разработчик на EmberJS в Perforce.com, США
В сентябре 2017 г. компания Perforce поглотила Deveo. Сервис был переименован в Helix TeamHub, команда разработки вошла в семью Perforce.
Helix TeamHub предоставляет git-хостинг и управление с уникальными функциями, возможными благодаря технологиям Perforce.
- Frontend-разработка на EmberJS
- HTML и CSS на Sass.
- Юнит- и приемочное тестирование.
- Имитация API/слоя модели при помощи Mirage.
- Поддержка и рефакторинг старого кода.
- Разработка нового захватывающего функционала.
Frontend-разработчик на EmberJS в Deveo.com, Финляндия
Продукт, создаваемый с любовью разработчиками для разработчиков.
- Frontend-разработка на EmberJS
- HTML и CSS на Sass.
- Юнит- и приемочное тестирование.
- Имитация API/слоя модели при помощи Mirage.
- Поддержка и рефакторинг старого кода.
- Разработка нового захватывающего функционала.
Frontend-разработчик with EmberJS в Firecracker.me, США
Захватывающее приключение! Команда была для меня словно семья.
- Разработка фронтенда на EmberJS.
- Юнит- и приемочное тестирование.
- Имитация API/слоя модели при помощи Mirage.
- Проработка конвенций, структуры проекта и стиля кода.
- Участие в разработке API.
- Глубокая верстка с Sass.
- Рзаработка CSS-методологии для обеспечения неограниченного масштабирования стилей и предотвращения протечек.
- Второй уровень техподдержки.
Frontend-разработчик на EmberJS и AngularJS в Hell'o Baby, Россия
Основной продукт Hell'o Baby был изначально реализован на Backbone, я руководил его переписыванием на Angular. Я занимался фронтенд-разработкой сам и руководил аутстафф-разработчиками.
На Ember я реализовал внутреннюю админку компании. В ее основе лежал высокоуровневый конструктор запросов к БД. Сложная форма генерировалась динамически на основе структуры, предлагаемой бэкендом.
На основе выборок предоставлялась различная аналитика с графиками на базе Highcharts.
Также админка предоставляла конструктор писем — как массовых рассылок пользователям, так и разовых запросов. Все доступные шаблоны писем отображались отрендеренные в виде галереи с фильтрацией по различным критериям.
Домашняя страница сервиса содержит сложные canvas-анимации, изготовленные художниками Hell'o Baby. С целью обеспечения приемлемой производительности, я реализовал оркестрацию анимаций так, чтобы только находящиеся на виду анимиации проигрывались, а остальные ставились на паузу. Соседствующие анимации синхронизированы.
Фронтенд-разработчик для NasonPearl.ru, Россия
Разработал фронденд для интернет-магазина ювелирного дома NasonPearl.
Фронтенд-разработчик Healthfundr (теперь Health Rosetta.com), США (исп. срок)
Я был нанят как опытный фронтенд-разработчик, однако в действительности команде был нужен CakePHP-разработчик со знанием Bootstrap.
Для меня это был шаг назад, поэтому мы прекратили сотрудничество по взаимному согласию.
Фронтенд-разработчик в Hivemind, Россия
- Прототипирование интерфейса (см. ссылку выше).
- Разработка фронтенда.
- Работа с Rails API.
MVP был выполнен, однако запуск проекта не состоялся по нетехническим причинам.
См. прототип от 2014.
Руководитель технического отдела в STKomp.ru, Россия
- Управление IT-инфраструктурой компании.
- Разработка и поддержка сайта компании.
Окончил МГТУ "Станкин" (ПО и вычислительная техника, специалист)
Вэб-разработчик и сисадмин в Альфа Медиа Баинг, Россия
- Администрирование сети и серверов компании.
- Разработка и поддержка сайта компании.
Менеджер вэб-проектов в ADV.ru, Россия
Я был менеджером отдела поддержки и развития существующих проектов.
В мои обязанности входило:
- общение с клиентами,
- оценка времени и стоимости реализации новых фич,
- разбитие фич на задачи, которые удобно назначать исполнителям,
- распределение задач по дизайнерам, верстальщикам, фронтенд- и бэкенд-программистам,
- контроль сроков и качества.
МГИМО финишд! (бакалавр)
Об этом сайте
Я задумал данный сайт как скромную демонстрацию моих навыков.
Он использует следующие возможности EmberJS:
Все страницы заранее отрендерены в статический HTML и отображаются мгновенно при загрузке страницы. Все ссылки работают как обычные HTML-ссылки. Когда подгружается Ember-приложение, оно перехватывает управление, превращая сайт в SPA. Это возможно благодаря FastBoot и ef4/prember.
Интернационализация (i18n): сайт доступен на двух языках. Переведены элементы интерфейса, контент и даты. Для перевода интерфейса я использую jamesarosen/ember-i18n.
Responsive Web Design разработан с помощью моей Sass-библиотеки lolmaus/breakpoint-slicer. Она позволяет очень удобно и быстро описывать правила применения стилей. Я бы предпочел использовать lolmaus/ember-element-query для контроля над каждым элементом, но методика element queries требует JS, который недоступен в режиме FastBoot.
Во время сборки, сайт обращается к API GitHub и StackOverflow для сбора рейтингов. Поскольку оба сервиса жестко ограничивают использование API, Ember-приложение обращается к API только в том случае, если рейтинги недоступны из FastBoot.
Реализована аутентификация к GitHub: можно залогиниться, чтобы ставить/снимать звездочки, не покидая приложения.
Контент хранится в виде Markdown с Front Matter. Для работы с ним (а также с данными GitHub и SO) используются точечно переопределенные адаптеры и сериализаторы.
Я не мог использовать offirgolan/ember-burger-menu, поскольку он не работает во время загрузки JS. Поэтому я погуглил и реализовал сдвижное меню на чистом CSS. У этого подхода есть ограничения, но в целом получилось супер!
Исходники сайта доступны на GitHub: lolmaus/lolma.us.