Андрей Бойко, Founder в Glivera-team. Андрей верстает, анимирует, обучается и обучает. За свою карьеру успешно завершил более 1500 проектов

https://www.upwork.com/fl/andreyb2
https://www.facebook.com/andru.boyko

Как ты попал в айти и с чего началась твоя история?
История началась с того, что работал около 7 лет в гос-структуре - Харьковском городском информационном центре - занимался гео-информационными системами (ГИС), а моя супруга работала там же - в IT отделе. В какой-то момент она решила создать свою компанию и ей нужны были верстальщики. Мой возраст на тот момент был 28 лет. Я задался целью и за полгода перелопатил весь Хабр вдоль и поперек (habr.com), это было где-то в 2007-2008 годах.
В итоге выполнял проекты для компании жены и параллельно с этим решил фрилансить. Мне хватило опыта работы в «системе» и поэтому уже хотелось работать в таком формате.

«Мой совет-лайфхак для начинающих - предлагать клиенту делать работу в полцены или даже бесплатно, таким образом можно получить необходимый опыт»

Как находили клиентов в 2007 году?
Всегда находил и нахожу клиентов с помощью личного общения. Изначально использовал максимальную e-mail рассылку, а потом постепенно стало срабатывать «сарафанное радио». Мой совет-лайфхак для начинающих - предлагать клиенту делать работу в полцены или даже бесплатно, таким образом можно получить необходимый опыт, клиента и пополнить портфолио реальными проектами. По сути, ты работаешь за отзыв, но это возможность получить первый рабочий проект. Несколько раз пользовался таким способом.

Какого уровня английского достаточно в айти?
Пожалуй, всем известно, что английский в данной сфере немаловажен. И хоть найти клиента и проект можно с любым уровнем, даже с совсем начинающим (будет зависеть, какое количество отказов получишь), на такие биржи, как UpWork желательно заходить с уверенным для общения английским. Но ограничений глобально нет, надо быть настойчивым и упорно работать. Не зря же существует закон Парето.

Как бы ты расшифровал закон Парето(80/20) для фрилансера?
Если ты - фрилансер, очень важно отслеживать коэффициент полезности действий.
Например, для начинающего фрилансера: необходимо выучить jQuery, не изучая полностью JavaScript. Таким образом, ты потратишь около месяца, а для изучения JavaScript могут уйти годы. Но, потратив месяц, уже получаешь возможность зарабатывать деньги и повышать свою квалификацию дальше. Постепенно, изучая потребности рынка (по заказам, например) и необходимый список инструментов, одновременно работаешь и обучаешься. В тот момент, когда твое время используется уже полностью на выполнение заказов, можно повышать стоимость, углубляться в специализацию определенных инструментов и становиться экспертом.

Ты в данный момент все еще пишешь код?
Я постоянно его пишу. Если бы не писал, то не смог бы ничего интересного рассказывать.

«Сейчас есть правило не работать более пяти часов в день»

Как ты планируешь свой день, работая фрилансером, находясь дома?
Сейчас есть правило не работать более пяти часов в день, имею ввиду написание кода. Более пяти часов - это уже экстренные ситуации. Потому как, если превышаю эту норму, то чувствую себя выжатым лимоном и уже не смогу на следующий день быть таким же продуктивным. Были, конечно, времена, когда сидел и по 14 часов. Одеваешь наушники утром, включаешь музыку и очнулся, когда пора ложиться спать. Бывает, что серьезная задача стоит и собираюсь с силами несколько дней. А бывает, что хочу работаю, хочу - не работаю. В принципе, уже могу себе это позволить.

Было ли эффективно проводить 14 часов за написанием кода?
Зависело от уровня сложности проектов. Когда начинал - это было эффективно. Проекты были не такими сложными как сейчас. И если тебе нравится то, чем ты занимаешься, время летит незаметно. Был момент, что нарабатывал скорость верстки на простых задачах (например, лендинг сайты 2-3-страничные). Сначала такие заказы выполнялись за 5 часов, потом 4, потом - 3, повышал одновременно и уровень, и скорость. Делал многое в итоге почти «на автомате».

Какие шаги были предприняты, чтобы ускориться и зарабатывать, естественно, больше? Я так понимаю, это был fixed price?
Да, это были проекты с фиксированной ценой. Около 40 долларов за сайт. Как и в любом поточном производстве (на примере «Ford»), есть определенные операции. Выбираешь самые сложные и чаще всего повторяющиеся и смотришь, как их можно оптимизировать и ускорить. Я приобретал все возможные плагины, даже не раздумывая. Как только выходил плагин, который мог бы помочь в работе, не жалел денег на подписку/приобретение.

«Оптимизировать процессы ты уже можешь, когда приобрел определенный опыт»

В какой момент пришло понимание, что нужно переходить от потоковых задач к более интеллектуальным? Спустя сколько времени?
Не могу сказать, что начинал с совсем простых задач. Первый мой сайт верстался сразу на Zend Framework, было более 20 макетов. Этот сайт делал около двух месяцев.
Оптимизировать процессы ты уже можешь, когда приобрел определенный опыт.
Когда только начинаешь, не можешь осознать, правильно ты делаешь или неправильно.

Какой бы ты дал совет людям, которые работают над своим первым проектом, и у них опускаются руки. До какого момента нужно делать прежде, чем сказать, что это «не мое»?

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

«Когда уровень заработка становится еще выше, скажем, ты можешь получать 500$ в день, сложно заставить себя работать, пропадает интерес - деньги перестают быть мотиватором!»

То есть, спустя 12 лет фриланса, все еще нет собственного сайта?
Есть пятиминутная заглушка, есть дизайн, сделанный хорошим дизайнером с анимацией, надо просто сверстать и закончить сайт.
Когда дело дошло до его реализации, на него не оказалось энергии и не смог заставить себя выделить время на этот проект. Работа над ним меня почему-то не мотивировала. Все время находил причины, почему не могу его сделать именно сейчас. А причина была по сути одна - я не получал за него деньги сразу, как за любой другой проект, сделанный на заказ. Вот и откладывал.
Из этой ситуации могу вынести предостережение для фрилансеров, да и не только. В определенный момент, когда достигаешь высокого уровня рейта, незаметно основной мотивацией могут стать исключительно деньги, интерес проекта уходит на задний план. Обратная сторона медали, что когда уровень заработка становится еще выше, скажем, ты можешь получать 500$ в день, сложно заставить себя работать, пропадает интерес - деньги перестают быть мотиватором! У каждого свой «порог отсечки»: у кого-то это 50$ у кого-то 1000$, но он есть практически у всех. Единственным выходом остается снова искать интерес к чему-то. Я вот и переключился на React и возобновил то состояние интереса, работаю над анимационными проектами.
Сейчас «лед тронулся» - часть сайта уже сделана.

У тебя есть сайты, которые брали SiteOfTheDay?
Были номинации, но таких - нет. На самом деле, большинство самых интересных даже не вышли в продакшн.
Как ни странно, компании - например, стартапы - которые делают анимационные крутые сайты, очень часто не доводят их до конца. Они ищут крутого аниматора, крутого разработчика. Но, когда весь процесс доходит до стадии продакшна, понимают, что это никому уже не надо.

Как думаешь, в чем проблема?
Думаю, просто нет понимания, как монетизировать проект. Я бы сказал, что это проблема многих людей. Это проявляется и в других сферах, иногда люди не знают, зачем живут, зачем что-то делают. К сожалению, по такому принципу часто и проекты разрабатывают.

«Когда делаешь что-то тысячи раз или тысячи часов, многие вещи становятся понятны интуитивно»

Как ты работаешь с оценкой проекта (эстимейт)?
Могу взглянуть на макет мельком и понимаю, что понадобится, допустим, 12 часов. Такого результата я достиг, благодаря приобретенному качественному и количественному опыту. Не помню, кто говорил, но согласен с тем, что когда делаешь что-то тысячи раз или тысячи часов, многие вещи становятся понятны интуитивно. Когда за моими плечами было 7-8 лет опыта, было уже сделано около 1500 сайтов. Они разные, конечно. Есть проект и на 250 макетов, есть лендинги, которые можно сделать за 2-3 часа. Только на Zend у меня более 300-350 завершенных работ. Так что, свой опыт «десяти тысячи часов» я уже набрал. НО! Оценка, сделанная на основе интуиции, может использоваться ТОЛЬКО для быстрого предварительного ответа заказчику о порядке стоимости и сроков.

Все обязательно проверяется расчетом с поблочной оценкой, при разбиении всего проекта на типовые и уникальные блоки. Также очень важно продумывать весь функционал на предмет js логики и анимаций. Так как реализация скриптовой части и анимации может в несколько раз превышать стоимость голой верстки. И только после этого можно говорить о реальных цифрах стоимости и сроков выполнения работ.
Обычно интуитивная оценка с расчетной совпадают с погрешностью 5-7%.

«Первый год необходимо максимально вкладываться в свои навыки и обучение»

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

«Прийти в любую сферу только из-за денег - неверный путь, который никуда не приведет»

Как понять, стоит ли тебе идти в ИТ?
Все очень индивидуально и зависит от подхода. Необходимо понимать, что лучше ставить перед собой долгоиграющие цели, и тогда не важно, как ты стартуешь. Важно, стартовать. Если же определяешь, что ты хочешь 15 USD в час и начнешь только из денежных побуждений, это будет провалом.
Прийти в любую сферу только из-за денег - неверный путь, который никуда не приведет. Ты не сможешь заниматься нелюбимым делом, условно, 24 часа в сутки и осознанно писать код по 14 часов.
Даже была история, что наш программист написал сложный алгоритм. Через пару дней мы его спросили, как он это сделал. И программист ответил, что не знает, что не помнит - он написал этот алгоритм, когда был пьян. Там даже был комментарий соответствующий, что мол не трогать, «работает, но не знаю как, был пьян». Вот это - правильное отношение к работе! Тебе не просто должно нравиться, тебя в любом состоянии должно драйвить от того, что ты делаешь, и тогда деньги сами придут. Казалось бы, занимаюсь только версткой, многие считают, что это просто: открыл Bootstrap, накидал и все хорошо. Потому я и ненавижу Bootstrap, сразу скажу. Важно не то, насколько легко, а то - как качественно ты делаешь свою работу и нравится ли это тебе.

Заказывают ли у вас верстку под React, Vue, Angular проекты? В каком виде вы доставляете вашу верстку?
Сейчас мы верстаем только под React, но наша верстка может быть с легкостью трансформирована под любой популярный JavaScript-фреймворк/библиотеку.
Вся моя команда изначально верстает по БЭМу. Но, скажем так, верстаем по духу, не по закону. Мы не раскладываем по папочкам, но при этом вся страница может быть разбита по компонентам за час.

Какой размер команды ты считаешь оптимальным для управления?
Мне трудно сказать, потому что еще расту и развиваюсь в этом направлении. Сейчас у меня 4 человека в команде. Начинал с одного, потом постепенно количество людей увеличилось. Кто-то уходил, появлялись новые участники. Искал правильное отношение и подходы. Было время, обучал с нуля. Сначала бесплатно, потом за деньги, но со временем понял, что это занятие отнимает слишком много времени.
О своих курсах не задумывался, потому что, в целом, больше люблю писать код. Обучение использую только для расширения своей команды, чтобы они делали работу по моим стандартам, которые уже отлично воспринимаются клиентами, но они несколько сложнее для большинства разработчиков.

«Если пользователю удалось сломать верстку, значит, она была неправильной, и верстальщик не продумал все до конца»

В чем заключаются твои стандарты верстки?
Все должно быть отверстанно и работать так, чтобы при любых условиях, расширениях и любом количестве контента, невозможно было сломать. Если пользователю удалось сломать верстку, значит, она была неправильной, и верстальщик не продумал все до конца. Верстальщик должен предусмотреть, как будет расти и меняться проект. Если он это будет иметь ввиду и все сделает правильно, то можно с фиксированного сайта сделать масштабируемый в любой момент и очень быстро. Также не будет необходимости менять большое количество кода. Суть правильного подхода в том, чтобы прогнозировать будущее проекта. Например, ты делаешь анимационный сайт и должен обязательно учесть, чтобы он одинаково работал на любом устройстве. Да, клиент может получить просто верстку в другом месте и дешевле. Но то, что ты сейчас продумаешь за него моменты, о которых он пока может даже и не догадываться, дорогого стоит, скорее всего, он еще вернется к тебе не раз.

Твое хобби?
Хороший вопрос. Наверное, сейчас уже и нет хобби. Что можно считать хобби?

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

Один из моих товарищей считает хобби то, что ты делаешь в кайф, не заботясь о результате
Дело в том, что я ничего не делаю, не заботясь о результате. Я сам по натуре перфекционист и считаю, что большая часть моей жизни - есть борьба с перфекционизмом. Неконтролируемый перфекционизм - плохая черта, которая мешает тебе достигать цели в жизни. Баланс в том, чтобы позволить себе делать все «достаточно хорошо». Потому что у перфекционистов нет такого понятия, вот и все. Болезнь перфекциониста - либо никогда не начнет, либо никогда не закончит, потому что всегда будет что-то «недостаточно хорошо». Ты можешь верстать сайт изо дня в день и переделывать его неделями. Или даже его не начать, так как при таком раскладе в твоем понимании, это слишком долгий путь. Вот в этом и проблема.

Кто в твоей картине мира Junior/Middle/Senior? Сталкиваешься ли ты с этими рангами и строишь ли ты так свою команду?
Нет, просто начинаю работать с людьми, которые готовы учиться. Основное заблуждение специалистов, которые считают себя Middle/Senior уровня в том, что им кажется, что больше не надо обучаться. Ярлыков не вешаю, в моей команде каждый, кроме базовых знаний, имеет свой узкий профиль, что ему нравится делать больше всего и это лучше всего получается. Кто-то хорошо делает анимации, кто-то предпочитает работу с Wordpress и так далее. Основной критерий - ответственность за качественный результат. Обучить, условно, коду можно и обезьянку. Важно то, чтобы этот код был основой для правильного продукта. Случалось работать в командах, где разработчик мог видеть баг, но не править его по той причине, что на него не заведен тикет. Таких я сразу увольняю бескомпромиссно.

Расскажи про книги,которые тебя впечатлили и, возможно, повлияли на твою жизнь
«Империя ангелов» Бернара Вербера(https://www.yakaboo.ua/imperija-angelov.html), потому что больше всего люблю фантастику. В хорошей фантастике есть все: и будущее, и философия, и настоящее. Эта книга сильно перекликается с действительностью и задает вопросы, которые стоит задать себе каждому. Давно живу эзотерикой, и книга в чем-то затрагивает эту тему. Еще могу из эзотерических книг, которые повлияли на мою жизнь, выделить произведение «Наедине с миром»(https://www.booklya.ua/book/naedine-s-mirom-12388/). Написал книгу Игорь Калинаускас, вот она реально поменяла меня.
И «Психологическое айкидо» Михаила Литвака(https://www.yakaboo.ua/psihologicheskoe-ajkido-1626008.html). Самая распространенная реакция в современном обществе - это агрессия. Особенно, когда ты находишься в подчинении и не можешь повлиять или изменить ситуацию, часто это выводит из себя. Книга учит тому, как совладать с такой ситуацией и показывает, что есть другие пути. Они действительно меняют жизнь.

Какой твой девиз по жизни, если такой имеется?
Наверное, нет. Но пусть будет - «Долби, пока не сделаешь».

Что необходимо успеть сделать до 45 лет?
Осознать, что жизнь очень быстро может закончиться, моментально. Что у нас есть один день, одна секунда. Мы живем здесь и сейчас, у нас нет завтра и вчера. Что жизнь может закончиться в любую секунду и не важно, готов ты к этому или нет. Этот факт необходимо принять, ты не можешь контролировать жизнь.

«Когда ты переступаешь через себя и выходишь на сцену, это дает большой прилив энергии»

Какая твоя мотивация выступать на конференциях?
Первой мотивацией было побороть страх. На моем первом выступлении испытывал очень неприятные чувства неловкости на сцене и не узнавал себя. Моя жена долго подталкивала, чтобы я переборол этот страх и все же стал спикером. Могу с уверенностью сказать, что когда ты переступаешь через себя и выходишь на сцену, это дает большой прилив энергии. Думаю, ты меня понимаешь.
Продолжил выступать, потому что у нас есть большое количество наработок и таким способом ими проще всего делиться, так наиболее эффективно. У нас много материала, который можно пускать в массы. Сейчас стали публиковать статьи, пока не регулярно, но работаем в этом направлении.
Наша верстка несколько отличается от той, что есть в других командах. И этот подход заслуживает распространения, потому что делает код гибким, стабильным, а его написание - быстрым.

В чем главное отличие от общепринятых стандартов?
В комплексе. Мы не работаем с отдельными сущностями, у нас нет отдельной кнопки, отдельных элементов, они все идут в контексте чего-то. Всегда есть контекст. Если ты контекст не задаешь, значит, верстка поломается в каком-то из условий. Есть четкая зависимость от самого верха до самого низа, вот в этом нюанс.

Сколько времени уходит на подготовку к конференции?
Последнюю закончил за 5 минут до выступления. А по общему времени, наверное, неделя: по 4-5 часов в день, около 20 часов. Все, что рассказываю, - из практики, никогда не придумываю истории. Чаще всего, надо извлечь кусок кода из работающего сайта и завернуть его в контекст, чтобы было понятно, как это работает.

Как прокачивать soft skills?
Нужно общаться, другого варианта нет. Даже, если не получается, из-за страха или еще из-за чего-то, неважно.

«Если это вообще возможно, я сделаю»

Как выходить из ситуации, когда тебя просят что-то сделать, а из-за множества неизвестных факторов ты не можешь гарантировать результат?
Чаще всего, если мы чего-то не знаем или не уверены, то употребляем выражения «я не знаю», «постараюсь», «попробую». Таким образом даем себе лазейку увильнуть от выполнения задачи на результат. Потому, я не принимаю такие ответы в своей команде.
Исключаю и у себя такие фразы, потому что они иногда случаются в тех зонах, где у меня недостаточно знаний. Правильной позицией будет ответ: «Если это вообще возможно, я сделаю». Бывает, что ты потратил на решение такой задачи втрое больше времени, но разобрался. И эта победа только добавит тебе навыков, которые помогут в решении подобных, а иногда и других задач.
У меня как раз есть пример. На конференции ко мне подошел парень, который на чистом CSS сделал в анимации кубик Рубика, где каждый кубик - это элемент. Вот это уровень настойчивости. Жизнь помогает людям, которые готовы идти до конца!

Опиши идеального сотрудника для себя: профессиональные и личностные качества?
Который не врет себе, знает, чего он хочет, - вот это самое главное, все остальное можно привить. Просто, когда человек врет себе, он не может нормально критику воспринимать, и за этим тянется куча других проблем.

Какой у тебя челленж в жизни на данный момент?
Построить большую команду. Масштабировать то, что уже сделал. Те наработки, которые я получил, использовать в команде из 20-30 человек.

«Когда ты принимаешь решение и делаешь шаг, ты открываешь для себя новые возможности и становишься свободным»

Скажи напутственные слова людям, которые хотят научиться выступать?
Есть хороший фильм «За́яц над бе́здной», в котором есть загадка: «Почему, если зайца загнать на самый край обрыва, то он прыгает в пропасть и смеется». Так вот, заяц смеется, потому что он свободен. Когда ты принимаешь решение и делаешь шаг, ты открываешь для себя новые возможности и становишься свободным. Всегда находите в себе силы чтобы сделать этот шаг с «обрыва».
https://www.youtube.com/watch?v=NnHYnbNKuxY )))