Ты сегодня лучше всех! 😎

Андрей Михайлов (lolmaus)

фронтенд‑разработчик, EmberJS‑энтузиаст

My face

Обо мне

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

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

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

В этих ваших интернетах

Навыки

Фронтенд-разработка

  • Более шести лет во фронтенд-разработке
  • Уверенно владею 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-библиотеки

breakpoint-slicer
★ Star
Это внешняя ссылка на GitHub.
через GitHub, чтобы ставить звездочки проектам, не покидая этот сайт.
317

нарезка media queries без труда

singularity-quick-spanner
★ Star
Это внешняя ссылка на GitHub.
через GitHub, чтобы ставить звездочки проектам, не покидая этот сайт.
2
stalled

подборка удобных mixin'ов для системы модульных сеток Singularity

Ember-аддоны

ember-cli-custom-assertions-collection
★ Star
Это внешняя ссылка на GitHub.
через GitHub, чтобы ставить звездочки проектам, не покидая этот сайт.
26
Ember Observer Score

набор кастомных assertion'ов, цель которого — заменить Chai в мире QUnit. Пишите свои собственные assertion'ы!

ember-dialogs
★ Star
Это внешняя ссылка на GitHub.
через GitHub, чтобы ставить звездочки проектам, не покидая этот сайт.
8
Ember Observer Score

решение для диалогов alert, confirm and prompt, не блокирующее поток, поддающееся стилизации и обладающее простым API

ember-drag-sort
★ Star
Это внешняя ссылка на GitHub.
через GitHub, чтобы ставить звездочки проектам, не покидая этот сайт.
46
Ember Observer Score

компонент для drag'n'drop сортировки с поддержкой вложенных списков

ember-element-query
★ Star
Это внешняя ссылка на GitHub.
через GitHub, чтобы ставить звездочки проектам, не покидая этот сайт.
13
Ember Observer Score

реализация element queries для ваших приложений

ember-emojione
★ Star
Это внешняя ссылка на GitHub.
через GitHub, чтобы ставить звездочки проектам, не покидая этот сайт.
13
Ember Observer Score

полное решение для поддержки эмодзи в вашем приложении

ember-katex
★ Star
Это внешняя ссылка на GitHub.
через GitHub, чтобы ставить звездочки проектам, не покидая этот сайт.
1
Ember Observer Score

рендеринг формул LaTeX с помощью KaTeX

ember-scroll-to-mk2
★ Star
Это внешняя ссылка на GitHub.
через GitHub, чтобы ставить звездочки проектам, не покидая этот сайт.
3
Ember Observer Score

компонент в виде кнопки или ссылки, осуществляющей анимированную прокрутку до указанного селектора

ember-sliding-sticky
★ Star
Это внешняя ссылка на GitHub.
через GitHub, чтобы ставить звездочки проектам, не покидая этот сайт.
1
Ember Observer Score

Альтернатива для position: sticky, которая работает внутри элементов с overflow: hidden

ember-svg-pie
★ Star
Это внешняя ссылка на GitHub.
через GitHub, чтобы ставить звездочки проектам, не покидая этот сайт.
11
Ember Observer Score

чрезвычайно простой компонент для круговых диаграмм на основе SVG

ember-gist
★ Star
Это внешняя ссылка на GitHub.
через GitHub, чтобы ставить звездочки проектам, не покидая этот сайт.
1
PoC

позволяет использовать gist.github.com в качестве замены бэкенда

ember-zen
★ Star
Это внешняя ссылка на GitHub.
через GitHub, чтобы ставить звездочки проектам, не покидая этот сайт.
2
PoC

эксперимент с централизованным хранением состояния, более подходящим для Ember, чем Redux

ember-cli-stained-by-children
★ Star
Это внешняя ссылка на GitHub.
через GitHub, чтобы ставить звездочки проектам, не покидая этот сайт.
29
Ember Observer Score stalled

отмечает записи как dirty, когда связанные записи становятся dirty

ember-prismic
★ Star
Это внешняя ссылка на GitHub.
через GitHub, чтобы ставить звездочки проектам, не покидая этот сайт.
0
stalled

интеграция Prismic.io с Ember

ember-stamplay
★ Star
Это внешняя ссылка на GitHub.
через GitHub, чтобы ставить звездочки проектам, не покидая этот сайт.
7
stalled

интеграция с BaaS Stamplay.com

Приложения на Ember

intercom-test-assignment
★ Star
Это внешняя ссылка на GitHub.
через GitHub, чтобы ставить звездочки проектам, не покидая этот сайт.
1

тестовое задание, которое я выполнил для Intercom.io

lolma.us
★ Star
Это внешняя ссылка на GitHub.
через GitHub, чтобы ставить звездочки проектам, не покидая этот сайт.
2

этот сайт, см. подробое описание ниже

yuidork
★ Star
Это внешняя ссылка на GitHub.
через GitHub, чтобы ставить звездочки проектам, не покидая этот сайт.
5
WIP

просмотр YUIDoc- и JSDoc-документации любого проекта, любой его ветки/тэга/коммита непосредственно с GitHub

ember-app-state-slider
★ Star
Это внешняя ссылка на GitHub.
через GitHub, чтобы ставить звездочки проектам, не покидая этот сайт.
9
PoC

простая и наивная реализация иммутабельного состояния и слайдера для "путешествий во времени" в Ember

JavaScript-библиотеки

assertron
★ Star
Это внешняя ссылка на GitHub.
через GitHub, чтобы ставить звездочки проектам, не покидая этот сайт.
2
stalled

самостоятельная assertion library, спроектированная для простого контрактного программирования

Старые jQuery-плагины

jquery.closestchild
★ Star
Это внешняя ссылка на GitHub.
через GitHub, чтобы ставить звездочки проектам, не покидая этот сайт.
5

метод, противоположный closest(): находит ближайшего потомка, соответствующего селектору, игнорируя вложенных в него потомков

jquery.dragbetter
★ Star
Это внешняя ссылка на GitHub.
через GitHub, чтобы ставить звездочки проектам, не покидая этот сайт.
29

избавляет от мозго#$%&ва с событиями dragenter и dragleave, предоставляя их аналоги, работающие как mouseenter и mouseleave, а не mousein и mouseout

Опыт

сент. 2017 — н. в.

Frontend-разработчик на EmberJS в Perforce.com, США

В сентябре 2017 г. компания Perforce поглотила Deveo. Сервис был переименован в Helix TeamHub, команда разработки вошла в семью Perforce.

Helix TeamHub предоставляет git-хостинг и управление с уникальными функциями, возможными благодаря технологиям Perforce.

  • Frontend-разработка на EmberJS
  • HTML и CSS на Sass.
  • Юнит- и приемочное тестирование.
  • Имитация API/слоя модели при помощи Mirage.
  • Поддержка и рефакторинг старого кода.
  • Разработка нового захватывающего функционала.
янв. 2017 — авг. 2017

Frontend-разработчик на EmberJS в Deveo.com, Финляндия

Продукт, создаваемый с любовью разработчиками для разработчиков.

  • Frontend-разработка на EmberJS
  • HTML и CSS на Sass.
  • Юнит- и приемочное тестирование.
  • Имитация API/слоя модели при помощи Mirage.
  • Поддержка и рефакторинг старого кода.
  • Разработка нового захватывающего функционала.
сент. 2015 — дек. 2016

Frontend-разработчик with EmberJS в Firecracker.me, США

Захватывающее приключение! Команда была для меня словно семья.

  • Разработка фронтенда на EmberJS.
  • Юнит- и приемочное тестирование.
  • Имитация API/слоя модели при помощи Mirage.
  • Проработка конвенций, структуры проекта и стиля кода.
  • Участие в разработке API.
  • Глубокая верстка с Sass.
  • Рзаработка CSS-методологии для обеспечения неограниченного масштабирования стилей и предотвращения протечек.
  • Второй уровень техподдержки.
авг. 2014 — сент. 2015

Frontend-разработчик на EmberJS и AngularJS в Hell'o Baby, Россия

Основной продукт Hell'o Baby был изначально реализован на Backbone, я руководил его переписыванием на Angular. Я занимался фронтенд-разработкой сам и руководил аутстафф-разработчиками.

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

На основе выборок предоставлялась различная аналитика с графиками на базе Highcharts.

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

Домашняя страница сервиса содержит сложные canvas-анимации, изготовленные художниками Hell'o Baby. С целью обеспечения приемлемой производительности, я реализовал оркестрацию анимаций так, чтобы только находящиеся на виду анимиации проигрывались, а остальные ставились на паузу. Соседствующие анимации синхронизированы.

авг. 2014

Фронтенд-разработчик для NasonPearl.ru, Россия

Разработал фронденд для интернет-магазина ювелирного дома NasonPearl.

июнь 2014 — июль 2014

Фронтенд-разработчик Healthfundr (теперь Health Rosetta.com), США (исп. срок)

Я был нанят как опытный фронтенд-разработчик, однако в действительности команде был нужен CakePHP-разработчик со знанием Bootstrap.

Для меня это был шаг назад, поэтому мы прекратили сотрудничество по взаимному согласию.

март 2014 — июнь 2014

Фронтенд-разработчик в Hivemind, Россия

  • Прототипирование интерфейса (см. ссылку выше).
  • Разработка фронтенда.
  • Работа с Rails API.

MVP был выполнен, однако запуск проекта не состоялся по нетехническим причинам.

См. прототип от 2014.

июль 2013 — март 2014

Руководитель технического отдела в STKomp.ru, Россия

  • Управление IT-инфраструктурой компании.
  • Разработка и поддержка сайта компании.
дек. 2011

Окончил МГТУ "Станкин" (ПО и вычислительная техника, специалист)

дек. 2008 — июнь 2013

Вэб-разработчик и сисадмин в Альфа Медиа Баинг, Россия

  • Администрирование сети и серверов компании.
  • Разработка и поддержка сайта компании.
июль 2008 — дек. 2008

Менеджер вэб-проектов в ADV.ru, Россия

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

В мои обязанности входило:

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

МГИМО финишд! (бакалавр)

Об этом сайте

Я задумал данный сайт как скромную демонстрацию моих навыков.

Он использует следующие возможности 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.