Интервью с Hip Hyena — участником Telegram Contests: о рисках, соперничестве и нюансах конкурсной разработки.
Интервью с Hip Hyena — участником Teleg.
Конкурсы, которые проводит Telegram — это интересная возможность для разработчиков (и не только) испытать свои навыки и в случае победы получить значительную сумму денег. Кроме того, каждый анонс на contest.com интересен еще и тем, что позволяет понять, над чем в данный момент работают в команде мессенджера и какие нововведения мы можем ждать в будущих обновлениях. Сейчас, например, конкурсанты активно занимаются созданием легкой веб-версии мессенджера и независимого новостного агрегатора.
«Код Дурова» пообщался с одним из победителей многочисленных конкурсов Telegram с ником Hip Hyena и выяснил, как они в целом проходят, какая атмосфера внутри коммьюнити, сколько времени и какие знания нужны для участия, а также что нужно делать, чтобы ваша работа понравилась жюри.
— Когда ты впервые узнал о ĸонĸурсах в Telegram? И почему решил принять в них участие?
— За развитием мессенджера я слежу давно — с тех пор, как о нём стало известно публично. Поэтому я сразу узнал о первых конкурсах. Они изначально были анонсированы не в самом мессенджере, а в одной из посвящённых ему групп ВКонтакте — это было семь лет назад. Те конкурсы были посвящены разработке мобильных клиентов Telegram, и именно в них зародились официальные приложения.
Интерес к конкурсам, соревнованиям и олимпиадам у меня есть ещё со школьных лет, и к тому же на тот момент, осенью 2013-го, я покинул своё тогдашнее место работы, и у меня было достаточно свободного времени, чтобы погрузиться в подобное развлечение. И хотя опыта в Android-разработке у меня почти не было, мне было интересно узнать, получится ли у меня решить поставленную задачу.
— Первый твой ĸонĸурс в рамках contest.com — JavaScript Chart — состоялся в прошлом году, и в нём ты выиграл $4000. Рассĸажи об этом опыте. Сĸольĸо часов и усилий ты потратил, чтобы победить?
— Это был один из первых конкурсов Telegram на новой платформе, сделанной специально для проведения соревнований. Тогда стало понятно, что команда Павла Дурова решила серьёзно взяться за их организацию.
Одновременно было запущено три «ветки» конкурса на разработку компонента для рисования графиков: для веб-приложений, iOS и Android. Так как больше всего опыта у меня именно в веб-разработке, я выбрал эту категорию.
Сложно вспомнить, сколько именно времени я на него потратил, но тот конкурс продолжался всего неделю.
«Такой формат мне ближе всего — короткий срок позволяет максимально сосредоточиться на задаче и не утерять творческий запал»
К тому же задача была очень узкая — это не создание полноценного приложения с кучей экранов, а лишь умение превратить массив данных в визуальную диаграмму.
— После этого ĸонĸурса последовала целая серия побед в двух раундах Blockchain Contest, еще двух раундах Javascript Contest, Data Clustering Contest и т.д. Ты полностью сосредоточился на разработке для Telegram или это своего рода хобби?
— Для меня это всегда было и остаётся приятным развлечением, к тому же дающим полезные навыки, а иногда и ощутимые деньги. При этом, я иногда участвую не только в конкурсах Telegram. Если я узнаю о подобных соревнованиях, проводимых другими компаниями, я нередко присоединяюсь и к ним. Но Telegram организует их довольно часто, а их формат мне наиболее комфортен.
— В ĸаĸой атмосфере проходят ĸонĸурсы. Вот ты узнал о задачах, что дальше? Сĸольĸо часов или дней ты тратишь на конкурсные работы?
— Первое, что нужно сделать, — это внимательно прочитать все условия, изучить предоставленные материалы, проникнуться сутью задачи.
«Нужно подумать, какой продукт хотят получить судьи, что будет в приоритете, и на основе этого выбрать наиболее эффективный подход к решению. А дальше сесть и начать писать :)»
Время, которое я трачу на участие, сильно зависит от моей занятости и от увлечённости конкретной задачкой. Если есть драйв и нет других дел — можно хоть сразу, только позавтракав, взяться за работу и не останавливаться до поздней ночи. Но, конечно, не в каждом конкурсе так, и даже в самых интересных иногда приходится делать перерывы. Когда-то полдня отдыхать, а когда-то и день-другой не грех пропустить, чтобы снова набраться сил. Иначе накапливается усталось, и это становится малоприятной рутиной.
Особенно тяжело мне даются длительные конкурсы и поздние этапы, когда надо не «похекать» какое-то хитрое задание, а много возиться над доработками прошлого этапа. Тут интерес часто спадает и я переключаюсь на другие вещи.
— Код проверили и опублиĸовали. О чудо, ты попал в списоĸ счастливчиĸов. Каĸие дальше действия? Просто смотришь за репортами пользователей и совершенствуешь работу?
— Когда как. Чаще всего хочется просто выдохнуть и расслабиться. Бывает и такое, что буквально через несколько дней стартует другой конкурс, и это неплохой повод сменить фокус, очистить голову. Иногда есть смысл разобраться с найденными проблемами, подготовиться к следующему этапу. Но это обычно происходит в гораздо более расслабленном режиме, чем на протяжении конкурса — не хочется всю жизнь посвящать только этому.
— Рассĸажи о ĸоммьюнити воĸруг ĸонĸурсов. Получается ли найти хорошие ĸонтаĸты? Есть ли общение и «атмосфера будущего» внутри ĸоллеĸтива?
— Честно говоря, я практически не общаюсь с другими участниками. Как-то я заглядывал в русскоязычный чат для обсуждения конкурсов, но его атмосфера меня не очень впечатлила: флуда много, а дискуссий по сути мало, да и те не всегда дружелюбны и взаимоуважительны.
«Есть ощущение, что люди нередко воспринимают соперничество слишком серьёзно и эмоционально»
Если говорить об «атмосфере будущего» — я её точно вижу не такой. Вообще нетворкинг мне в принципе малоинтересен, новых знакомств я не ищу. Слышал, что некоторые ребята стали объединяться в команды, чтобы бороться за призовые места. Правилами, насколько я знаю, это не запрещено, но мне такое не близко. По моим ощущениям, это становится похоже на какой-то чит: ты не оцениваешь, на что ты способен сам, а просто строишь систему, увеличивающую шансы получить приз (пусть и меньший). Можно же и сто индусов нанять, а потом по десять баксов каждому заплатить — но разве не веселее что-то сотворить самолично, без помощников?
— После победы в ĸонĸурсе ĸод становится собственностью Telegram? Связываются ли разработчиĸи с автором на этапе внедрения конкурсной работы в мессенджер?
— Честно говоря, я не очень беспокоюсь о юридических вопросах. Кажется, да, они вправе использовать наработки участников у себя. Со мной о подобных интеграциях ни разу не связывались, но были случаи, когда победителей брали на работу, и они сами продолжали развивать то, что создали на конкурсе.
При этом я не думаю, что если я сам захочу выложить работу в опенсорс или использовать где-то ещё, то у меня возникнут какие-то сложности или разногласия с Telegram.
— Что тебя мотивирует делать работу для Telegram в рамĸах ĸонĸурсов? Не хотелось бы войти в штат мессенджера и совершенствовать продуĸт внутри ĸоманды?
— Я люблю поломать голову над сложными, но интересными задачами. Это главный источник мотивации.
«Мне очень подходит тот баланс между чёткостью поставленной цели и пространством для собственного самовыражения, которые предлагает Telegram»
На втором месте — спортивный интерес и возможность прокачать навыки в сжатые сроки. И, наконец, деньги, окупающие затраченное время и силы. Замечу, что это единственный фактор из перечисленных, который не гарантирован при участии в конкурсе. Поэтому я не понимаю некоторых людей, которые настроены скептически и боятся участвовать только из-за опасений, что они потратят много сил, но рискуют не получить ничего.
Предложений присоединиться к команде мне пока не поступало. Не уверен, что согласился бы: приятно чувствовать себя вольным художником и заниматься делом из собственных побуждений, а не по трудовому контракту.
— Наверняка многие твои работы сейчас используют в рамĸах мессенджера миллионы людей. Это мотивирует совершенствоваться? Чем ты вдохновляешься?
— Сомневаюсь, что какие-то из моих работ действительно были встроены в мессенджер. Я нечасто занимаю первое место, и даже в этом случае Telegram не всегда использует работы конкурсантов у себя. Но мне действительно нравится делать полезные людям вещи, время от времени я запускаю собственные хобби-проекты по той же причине. Я считаю, что умение и стремление делать качественные продукты — это тот вклад, который может вносить хороший разработчик в улучшение мира.
— Поговорим о неприятном. Я слышал ĸомментарии о том, что ĸонĸурсантов обижают: обделяют вниманием и не платят призовые деньги. Слышал ли ты что-то об этом? Можешь ĸаĸ-то проĸомментировать?
— С моей точки зрения, конкурс по определению отличается от работы по найму высокими рисками.
«Соглашаясь играть, ты соглашаешься, что можешь и проиграть — скучны те конкурсы, в которых выигрывает каждый участник»
И надо помнить, что судить тебя будут не роботы, а живые люди, и это тоже надо принять сразу. Ты можешь «поймать волну» и понять, что они оценят высоко, а можешь промахнуться и вложить много сил не туда. Это не вина судей, и это не твоя вина — просто не сложилось.
Есть соревнования, например, олимпиадное программирование, где критерии оценки предельно формализованы, и ты можешь быть уверен, что твой труд оценят объективно. Здесь не так: надо искать субъективно «хорошее» решение, и надеяться, что твоё понимание «хорошести» совпадёт с судейским. Это кажется не таким справедливым, но это ближе к жизни: в реальности люди тебя всегда оценивают субъективно, не замеряя миллисекунды и не взвешивая килобайты.
Хочу ещё отметить, что сейчас взаимодействие с судьями стало прозрачнее, чем раньше. Они публикуют конкретные комментарии ко всем работам, и у участников сейчас даже есть возможность возразить и обратить их внимание на какие-то фактические ошибки. Но большинство разногласий всё-таки касается субъективного вердикта, чья работа лучше.
— Давай немного поговорим о деньгах. На что ты потратил свой первый приз? Может быть исполнил свою давнюю мечту?
— Не могу сказать, что у меня есть сейчас какая-то конкретная мечта (а если и найдётся, то она не будет сильно привязана к финансовой плоскости). В целом мои траты слабо привязаны к источникам дохода: чаще всего я что-то покупаю просто когда хочется, а не из-за того, что у меня резко появились деньги. Но выигрыши все равно радуют, конечно, потому что дают возможность копить, чувствовать себя спокойнее и делать паузы между периодами формальной трудоустроенности.
— Что ты думаешь о разработĸе посредствам ĸонĸурсов? Каĸие в этом плюсы и минусы? Не лучше ли все делать in house?
— Сложно сказать. У меня нет опыта управления командой, я по сути ремесленник, а не менеджер. Но мне кажется, что открытые конкурсы — это неплохой способ «выжать максимум».
«Человек, устроенный на фиксированную ставку, не слишком мотивирован работать по принципу «harder, better, faster, stronger», ему достаточно выполнять норму»
С другой стороны, конкурсы требуют больших финансовых затрат, а полученный в процессе конкурса продукт нередко требует полного переписывания, так как слабопригоден к реальной жизни. Но вот сделавшего такой продукт участника можно и нанять к себе.
— Каĸ ты думаешь, почему жюри Telegram нравятся твои работы? Дай 5 советов, что нужно сделать, чтобы понравится модераторам?
Мне кажется, у меня неплохо получается чувствовать, что они ждут от участников. Это какой-то отдельный навык: не просто буквально читать задание, а видеть за ним общий вектор. Порекомендовать я могу следующее:
- Как в «Бойцовском клубе», первое правило — не ставить целью понравиться модераторам. Работайте для себя, ищите вдохновение. Если работается через силу — вряд ли будет хороший результат.
- Внимательно прочитайте условия. Глупо проигрывать из-за того, что вы что-то упустили или неправильно поняли. Нередко в описании конкурса указано, что будет критически важно, какие факторы будут приниматься во внимание при оценке.
- Во всех аспектах, не затронутых в задании, пользуйтесь здравым смыслом. Если моей работой будет пользоваться случайный человек, какое поведение он будет ожидать? Что ему понравится? Что можно сделать, чтобы работа выглядела качественно?
- Дополнение к предыдущему совету: не бойтесь экспериментов. Даже если что-то не требовалось сделать, но вам кажется, что это выставит работу в выигрышном свете, смело пробуйте. Особенно, если вам будет кайфово это делать. Только не перестарайтесь и не уйдите от темы слишком далеко — помните об обязательных требованиях.
- Ну и, конечно, самые очевидные вещи: работа должна выглядеть привлекательно (и следовать макетам, если они есть), она должна быть функциональной, она должна быстро и без багов работать. Развивайтесь в собственных умениях, прокачивайте скиллы — это всё будет самым важным итогом конкурса (а вовсе не признание модераторов). Это банальнейший пункт из всех, но чтобы победить, вам нужно сделать качественную работу.
— Каĸие знания необходимы потенциальным ĸонĸурсантам, чтобы участвовать в ĸонĸурсах Telegram?
— Зависит от конкурса, конечно же. Но, честно говоря, я подключался к некоторым из них, даже не имея каких-то специализированных знаний за плечами — хватало абстрактного опыта в программировании и способности подхватывать недостающую информацию по пути. А для тех, кто программированием не увлекается вовсе, Telegram проводит и другие соревнования, например, для дизайнеров, на создание образовательных викторин, шаблонов для парсинга новостных сайтов (тут, правда, был полезен технический бэкграунд).
— Какие устройства ты используешь? На чем тестируешь?
— Раньше в основном разработку вёл на «макбуке». Это удобно, позволяет соревноваться, даже путешествуя по миру. Но сейчас из-за пандемии практически всё делаю за настольным компьютером на Windows. Тестирую тоже в основном на этих двух компьютерах и на своём «айфоне». Но скрупулёзное тестирование — не моя стезя, в этом мало удовольствия.
— Какие у тебя сейчас планы? Планируешь ли дальше продолжать участвовать в конкурсах и «допиливать» свой web-клиент?
— Прямо сейчас у меня очередной период отдыха после конкурсов по Data Clustering и JS. Скорее всего попробую заняться своими личными проектами. Давно присматриваюсь к сфере геймдева, например. Но, конечно, как только Telegram запустит ещё один интересный конкурс, с удовольствием поучаствую.
Насчёт web-клиента пока нет конкретных планов. У меня есть ощущение, что в этом конкурсе дошёл до упора в плане того, что было спроектировано изначально, и теперь в нём многое нужно рефакторить. Но, возможно, я опубликую какие-то наработки: например, там внутри довольно интересная замена популярным фреймворкам типа Vue или React. Реализацию протокола Telegram тоже можно вынести в отдельную библиотеку.
— Если бы тебе дали неограниченные ресурсы и время, чтобы ты улучшил в Telegram? Какую интересную функцию добавил бы?
— Честно говоря, после работы над клиентом основное желание — переделать всю архитектуру мессенджера :) Видно, что внутри много «легаси»: каких-то вещей, которые постепенно наслаивались друг на друга (как это нередко случается в процессе эволюции проектов). Но для переделки таких вещей действительно нужны неограниченные ресурсы и время.
Из улучшений я бы занялся развитием ботов. Думаю, есть перспективы сделать их ещё полезнее и функциональнее.
«Ещё мне кажется, что Telegram стоит подумать над тем, что называется discovery — способами узнавать о новом контенте и об интересных источниках»
Сейчас мессенджер довольно закрыт: для публичной активности можно завести канал, но о нём можно узнать только какими-то сторонними способами.
А вот, например, функция удаления полученных сообщений на стороне собеседника мне кажется излишней — я бы, наоборот, убрал её за персональную настройку.