Artem Malko (artem-malko), 34 года, Россия, НовосибирскArtem Malko (artem-malko), 34 года, Россия, Новосибирск

Artem Malko

Front-end engineerФронтенд разработчикФулстек разработчикВедущий (Lead)
От 500 000 ₽Не ищу работу

Контакты

Войти
Возраст: 34 года
Опыт работы: 14 лет и 11 месяцев
Регистрация: 27.03.2011
Последний визит: 3 дня назад
Гражданство: Россия
Местоположение: Россия, Новосибирск
Дополнительно: готов к удаленной работе
Знание языков:

Обо мне

Английский язык на уровне Upper Intermediate.


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


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


В свободное время встречаюсь с друзьями, играю на гитаре, online-игры. Очень люблю путешествовать.

ЧАВО


Q: Какие самые сложные/интересные/важные задачи ты решал?                        


A: Ответ можно разбить на несколько: задачи в менеджменте людьми/управлении проектом, в программировании.


В менеджменте/управлении проектом:


  • Построил процессы технических собеседовании во frontend в компании 2GIS. Описание процессов, проведение обучающих встреч, 1-1 по проведенным вместе собеседованиями. Как результат: в компании появился более менее стандартизированный способ проведения собеседований, который любая команда может подстроить под свои нужды. Большинство кандидатов позитивно отзываются о прохождении технических собеседований у нас, даже если мы их не берем.
  • Занимался развитием ребят. Как новеньких, кто джунами пришел к нам, так и мидлов, кто уже чему-то успел в компании научиться. Большинство ребят уже имеют свои команды, либо имеют более высокий грейд у нас в компании или в другой.
  • Построил почти с нуля команду, которая выросла с 3 человек до 20 буквально за 1 год.
  • Успел поработать в нескольких side-проектах внутри компании. Например,  если когда-то видели буклеты на ресепшенах компаний или наклейки на витринах со ссылкой на отзывы в 2GIS — частично моих рук дело)

В программировании:


  • Не столько существенно на данный момент, но в 2016 году я сделал backend сервиса, который отображал «Новое в продукте» в 2gis.ru. Тогда у меня не было особого опыта в back'е. Но удалось сделать сервис, который имел Error Budget в районе 20 минут за целый год.
  • Сделал полностью своими силами сервис для поиска похожих людей. Сделано было все: front/back/дизайн/деплой/логирование/межсервисное взаимодействие. Модель только не обучал сам (слишком это было дорого). На back была нагрузка порядка 50RPS, кол-во пользователей ~ 250 000 уникальных посетителей в месяц. Проект продан.
  • В 2014-2016 годах сделал framework для gulp, который даже в вакансиях указывался, как требуемый навык. Речь про TARS.

Q: Что самое важное в работе? 

A: Для меня есть два столпа, на котором строится все остальное: заниматься темчто приносит пользу, а также команда, с которой мы на одной волне.


Причем не обязательно, что у проекта должна быть многомиллионная аудитория. Важно, что работа делается для кого-то, есть обратная связь, что реальные проблемы решаются. Это позволяет не просто делать тикеты, а именно вникать в суть проблем. Ну и работать хотелось бы в команде единомышленников. Кто поддерживает такой подход. Техническая составляющая всегда вторична.



                    Навыки

                    Внутри навыка можно посмотреть пройденные и доступные тесты
                    Git
                    JavaScript
                    TypeScript
                    React
                    Golang
                    PostgreSQL
                    Docker
                    CSS-in-JS
                    Node.js

                    Участие в профсообществах

                    Опыт работы

                    • Все организации города, их контакты, адреса, время работы + трехмерная карта + маршруты проезда
                      НовосибирскОт 1000 до 5000 сотрудников
                      Фронтенд разработчик (Ведущий)Frontend developer
                      Апрель 2014 — По настоящее время (11 лет и 2 месяца)

                      Большую часть времени работы в 2GIS я занимался Online версией (2gis.ru, urbi.ae и т.п.) Online 2GIS — это изоморфное приложение, в основе сервер на ExpressJS + ReactJS + Typescript + разные эксперименты по работе с запросами данных (redux, react-query).

                      На данный момент — Lead frontend в команде frontend-разработчиков. Занимаемся разработкой сервиса, который предоставляет нашим пользователям инструменты по построению разных типов пространственного анализа данных, чтобы помочь ответить на различные бизнес-вопросы типа: где открыть бизнес А, в какой точке города есть необходимость в дополнительной инфраструктуре (больницы, школы и т.д.).
                      Проект закрыт регистрацией https://pro.urbi.ae, но всегда можно запросить demo-доступ.

                      На данный момент отвечаю в проекте за:

                      • техническую часть проекта
                      • доступность сервиса на бою
                      • найм/организацию процессов в команде/развитие разработчиков
                      • планирование/работа со сырыми брифами (на начальной стадии)

                      Не все тащу на себе, конечно же. Отдельные части делегируются ребятам в команде, потому как могу им всем доверять)

                      Технически стек похож на 2GIS Online, только мы в основу взяли NextJS (правда от него уже мало что осталось) + наша 3d-карта на WebGL + DeckGL для различных визуализаций на карте.

                      Далее о скилах подробнее.

                      SoftSkills
                      Со стороны работы с людьми.

                      За время работы в 2GIS успел позаниматься развитием джунов до самостоятельных разработчиков (middle+). Некоторые из них уже сейчас имеют своих подопечных. За время работы со своими ребятами понял, что лучший подход по работе с людьми — это искренность, умение выслушать и понять, предложить вариант решения. И обычно решением занимается сам подопечный.

                      Провел десятки собеседований, как в нашу команду, так и в смежные команды.

                      Со стороны работы над задачами.

                      В 2GIS распространена практика, когда из разных команд выделяются ответственные за какую-либо новую функциональность в продукте. Эти ответственные занимаются декомпозицией фичи в рамках команды (иногда и вне ее), следят за выполнением, хотя чаще всего выполняют задачу сами.

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

                      Иногда рассказываю доклады внутри компании и снаружи. Например вот из последнего: Семь раз отмерь, один раз отправь про то, как и зачем стоит уменьшать размер JS-бандла на бою.

                      Hardskills
                      Как frontend разработчик в основном использую React. Но для себя пробую и другие популярные решения. На данный момент активно разбираюсь с 18 версией React, много там вкусного появилось. Тут можно наблюдать за этим. 

                      Полюбил typescript, чувствую себя «голым» без него) 

                      Для тестирования в 2GIS используем Jest. Но для своих проектов выберу mocha + sinon. Как по мне, Jest слегка монструзоен, а с typescript еще и работает весьма медленно. Но для работы в большом проекте Jest предпочтительнее, так как множество вещей у него доступно из коробки, есть стандартные подходы к тестированию. В 2GIS уделяем особое внимание тестам. При этом стараемся не писать тесты ради тестов. Важно покрыть именно поведение, функциональность кода, а не просто пройтись по веткам в условиях и т.п. В 2GIS пишу Unit'ы. и интеграционные тесты.

                      Иногда занимаюсь проектами с классическим backend'ом. Обычно это либо какие-либо утилиты на NodeJS, которые должны быть доступны по API,  либо классическая раздача JSON'ов. 

                      Пример первого проекта — генерация PDF-ок по каким-либо входным данным. Например, генерация рекламных материалов. API + утилита на основе puppeteer. Плюс еще и конвертация всей цветовой палитры в CMYK. Все же потом это все в печать в типографию идет.
                      Пример второго проекта — сервис раздачи новостей о продукте. Тут уже это классический REST API.

                      Для своих проектов для backend части использую Golang (все же нет у меня столько денег, чтобы сервер на NodeJS держать для pet-проекта). Golang нравится, backend'ы писал в основном с нуля, без каких-либо фреймворков. Максимум — chi для роутинга. Делал так, чтобы максимально разобраться в вопросе.

                      Также не чужд мне и python. Хотя его я выберу только в том случае, если не будет альтернатив.

                      DevOps часть

                      Docker — открытие 2019 года для меня. Теперь с ним не расстаюсь. nginx для локальной разработки в нем, база данных для локальной разработки в нем — все в нем =) В 2GIS используем k8s. Тут я только пользователь, никогда сам не разворачивал k8s-кластер сам.

                      Мой любимый стек технологий

                      В общем виде, если потребуется сделать прям сейчас классический проект с front и backend частью, то поступлю так (опишу то, с чем мне комфортной работать):

                      Golang + PostgreSQL (как мультипарадигменная БД) на backend-части

                      React + redux (для состояния приложения) + react-query (работа с внешними API) + css in JS на фронте. Возможно возьму NextJS. Готов делать на этом стеке как чисто клиентское приложение, так и изоморфное.

                      Тестирование — mocha + sinon || Jest для Unit-тестов. + cypress

                      Деплой с помощью Docker + Docker swarm на сервере.

                      Логирование — filebeat для сбора логов с docker'а и отправка этого всего дела в ELK или Grafana.

                      Конечно, все будет зависеть от специфики проекта. Но для типового я выберу то, что описал выше. То есть с этими технологиями я чувствую себя комфортно.

                      Разное

                      Также, во время работы в 2GIS разработал фреймворк для сборки проектов на —Gulp — TARS. Сейчас проект уже не развивается, но в 2017-2019 годах проект был весьма популярен. Даже были вакансии, в которых TARS был необходимым навыком.

                      Итого

                      За время работы в 2GIS разработал и выпустил в бой (чисто мои сервисы, в разработке которых не участвовал никто, кроме меня) 3 сервиса (front + back), более 10 сайтов (чистый front) различной сложности, участвовал в разработке и релизе мобильной версии 2GIS online и редизайна десктопной версии (большая часть всей моей работы в 2GIS). В качестве ведущего разработчика довел со стадии прототипа до релиза сложный гео-аналитический сервис. Провел от джуна/стажера до мидла больше 5 человек.

                    • Ведущий медиахолдинг России
                      НовосибирскОт 100 до 1000 сотрудников
                      Фронтенд разработчикFront-end developer
                      Июнь 2013 — Апрель 2014 (11 месяцев)

                      Разработка Frontend-части городских порталов. Сделал первый адаптивный сайт НГС — info.ngs.ru. Позже сделал еще и первый адаптивный новостной портал для Самары — samara24.

                      Основной командой была auto.ngs.ru Крайне прогрессивное web-приложение для своего времени. Это было время backboneJS. Уже тогда у нас были механизмы генерации HTML на клиенте из ответов нашего сервера.

                      Тогда я погрузился в JavaScript серьезно. Перестал быть просто JQuery-программистом.

                      Также успел сделать браузерное расширение для проекта https://pogoda.ngs.ru/.

                    • Частная практика, работа без зачисления в штат
                      Новосибирск
                      Фронтенд разработчикFront-end developer
                      Май 2012 — Июнь 2013 (1 год и 2 месяца)

                      Front-end + wordpress development.

                      Вот сайт-портфолию где можно ознакомиться с моими проектами: http://artmalko.ru/

                      Фронтенд разработчикFront-end developer
                      Июнь 2011 — Июнь 2013 (2 года и 1 месяц)
                    • deepsign
                      Новосибирск
                      Seo-специалист, верстальщик
                      Апрель 2012 — Февраль 2013 (11 месяцев)
                      Обязанности: - Выполнение задач по SEO - Техническая поддержка сайтов клиентов - Верстка
                    • Конференционный бизнес, Сибирские интернет-недели
                      Новосибирск
                      Технический директорТехнический директор
                      Март 2011 — Январь 2012 (11 месяцев)

                      Обязанности:

                      - Обслуживание техники на площадках

                      - Закупка оборудования и расходных материалов

                    • ИП Helper
                      Новосибирск
                      Эникейщик
                      Июнь 2010 — Январь 2011 (8 месяцев)
                      Обязанности: - Обслуживание компьютерной техники у клиентов на дому и у юридических лиц

                    Высшее образование

                    • НГТУ

                      Новосибирский государственный технический университет
                      Новосибирск2894 выпускника
                      Автоматики и вычислительной техники; АВТФ
                      Январь 2008 — Январь 2013 (5 лет)
                      Направление "Вычислительные машины, комплексы, системы и сети". Самообразование дает больше практических знаний...