Как разработчику масштабироваться в IT

  • 29 июня, 12:59
  • 1474
  • 0

Эксперт, веб-разработчик Сергей Кукунин, руководитель масштабных международных IТ-проектов, победитель крупнейшего в Украине соревнования DevChallenge - 2019, член жюри европейского соревнования по блокчейну UtonHack и участник многочисленных конференций дал интервью 24 каналу.

– В каких известных инновационных диджитал-проектах вы принимали непосредственное участие?

 – Я работаю вебразработчиком более 11 лет. В 2014 году мой друг и партнер из Лос-Анджелеса Аарон Шифф позвал меня в новосозданную компанию Matic Insurance Sevices, Inc., которая на сегодня занимает лидирующие позиции в своем сегменте на рынке недвижимости в США.

Мы создали новую услугу – диджитализированного страхового брокера для рынка недвижимости. Matic – это агрегатор, помогающий жителям США с "выбором страховки в один клик".

До этого, для оформления страховки на недвижимость надо было собирать и обрабатывать очень много разных данных вручную, ведь оценка страховых рисков формируется из многих составляющих: как из самих характеристик недвижимости, так и чисто экономических факторов на рынке страхования и кредитования.

Matic по API работает с кредитными учреждениями и страховыми компаниями. Система обеспечивает клиентам выбор наиболее выгодной страховки в течение нескольких секунд.

Инновационная услуга оказалась актуальной. Matic собрал 16 млн долларов от ведущих американских инвесторов, среди которых Anthemis, Clocktower, Fenway Summer, Nationwide Insurance, National General Insurance, Kemper Insurance, Г Cooper Mortgage, New Residential Mortgage (двое последних занимают 3 и 4 позиции на ипотечном рынке США).

Сегодня Matic работает с более чем 25 страховыми компаниями во всех 50 штатах. Это добавило около 20 тыс. клиентов с конца 2018 года. В I квартале 2020 года Matic продавал в среднем 2 тыс. новых полисов ежемесячно.

– Каков Ваш личный вклад в развитие этой компании?

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

Через несколько месяцев после запуска основатель сказал, что нам необходимо активно развиваться и предложил открыть офис для разработчиков в Украине.

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

– Затем Вы перешли в новый проект?

– Да, Spotlight Media Labs Inc – это стартап, ориентированный на американский медиарынок, реализуется в Кремниевой долине. В нем я ответственен за всю техническую составляющую проекта.

В США есть очень много печатных изданий, но продажи сильно сокращаются, нужно развивать новую нишу в онлайн. Самим издательствам этот переход представляется очень сложным. К тому же они привыкли жить от доходов с офлайновой рекламы, размещаемой в изданиях.

Мы создали онлайн-платформу для издательств, где они могут продуцировать контент и находить новую аудиторию. Платформа имеет веб-конверсию, приложения для iOS и Android.

Издатели получили новый способ монетизации контента, ведь компания делится с ними доходами от онлайн-рекламы. Среди них более 100 партнеров из университетов с аудиторией более 2,5 млн студентов, более 50 коммерческих газет, среди которых такие глобально известные как Bloomberg News, Reuters, INN, Texas Tribune и Texas Observer. Spotlight заключил многочисленные рекламные сделки, в частности с Disney+. Эта медийная трансформация будет значительно динамичнее, когда включится соответствующий инвестор.

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

– Участие в DevChallenge – хороший способ посоревноваться и оценить свои профессиональные возможности максимально объективно, ведь это многоуровневый конкурс с актуальными сложными задачами, и опыт участия в нем особенно ценится в профессиональных кругах. Престиж конкурса можно оценить и по уровню партнеров: его, к примеру, поддерживают лидеры украинского рынка мобильной связи "Vodafone Украина", компания "Киевстар", которые заинтересованы в инновациях.

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

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

Такие соревнования – возможность выйти за привычные границы, испытать что-то новое. На отборочном туре я не начал сразу писать код, а потратил целый день на то, чтобы обдумать, каким образом лучше решить задачу. Этот подход оправдал себя. Основное различие моего кода было в том, что я вместо обычной базы данных применил другой продукт, который работает для полнотекстового поиска и предполагает масштабируемость "из коробки", поэтому не должен обходить недостатки баз данных в этой задаче, как другие.

– А что было в финале?

– В финале нас ждал сюрприз: нужно было доделать задание с предыдущего раунда, расширив его до нового функционала.

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

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

– Вы были судьей на престижном европейском хакатоне Utonhack-2019. Увидели ли Вы на конкурсе образцы рационального воплощения технологии блокчейна, которые будут иметь экономическую ценность, ведь ожидания по блокчейну и потенциала криптовалют в обществе сегодня очень перегреты?

– Нужно понимать, что криптовалюта – это лишь специфическое использование блокчейна. Блокчейн – это система децентрализованного обмена информацией, при которой никто никому не верит, то есть нет какого-то авторитетного центра как серверы Google или Facebook, но при этом мы можем доверять этой информации.

Мне интересен блокчейн собственно с технической точки зрения, и благодаря работе в этом направлении, меня пригласили на Utonhack в состав жюри.

Utonhack организовала компания из Беларуси в партнерстве с компанией из Китая, которая производит криптоматы, собственные смартфоны и планшеты. Общий призовой фонд на 8 номинаций составил около 40 тыс. долл. Я даже невольно в какой-то момент пожалел, что не участник (смеется). Конкурс является примером реализации крауд-сорсингового (от слова crowd - толпа) подхода: потенциальные инвесторы обращаются к разработчикам – у вас есть миллион идей, демонстрируйте, мы хотим узнать, что можно сделать на основе такой технологии, и таки было представлено много классных идей.

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

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

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

– Что нужно учитывать разработчикам для успешного сотрудничества с бизнесом, чтобы реализовать реально работающие продукты?

– Очень распространено среди программистов жить в своем мире, и ценить чисто технические критерии без учета бизнес-потребностей. На самом деле нет классного или плохого кода, есть достаточный и наиболее эффективный код.

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

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

– Вы являетесь одним из менторов новой бакалаврской программы для IТ-студентов, запущенной в 2016 году. На что следует обратить внимание молодым специалистам, чтобы быть конкурентными на международном рынке?

– В общении со студентами я уже не раз акцентировал на том, что в Украине, пожалуй, до 90% программистов – моноспециалисты. Это видно на сайтах по поиску работы в разделе резюме и вакансий. В большинстве это – Ruby software developer, или PHP, или JavaScript software developer. Максимум в поле специализации – fullstack разработка, это значит, что разработчик пишет на JavaScript и еще на одном бэк-ендовом языке.

Если же посмотреть на рынок кадров в США, то там нет такой узкой специализации. Работодатели пишут, что есть вакансия software engineer, им нужен разработчик в широком смысле. Таким и должен быть нормальный подход: если не знаешь чего, возьми и разберись в этом, изучи, а не позиция типа "Я – рубист, потому что 5 лет назад начал работать на Ruby, и вашу Java писать не буду".

Меня всегда драйвило учиться, пробовать что-то новое. Вот и получилось, что за 11 лет такого подхода у меня накопился большой багаж умений.

– Однако, Вы специалист экспертного уровня собственно по программированию на Ruby. После запуска Matic начали активно делиться опытом с коллегами в этом направлении?

– Да. Я имею опыт участия в качестве спикера в национальной конференции RubyC в 2017 и 2018 годах. Представлял, в частности, коллегам доклад охватывающий критерии хорошей архитектуры и способы ее применения в экосистеме Ruby. Также я выступал на международной конференции GrillRB 2018 с докладом "Чистая архитектура, которая вредит вашему коду".

– Какие языки программирования Вы считаете сегодня наиболее актуальными?

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

Если брать мейнстримовые языки – Java, Ruby, PHP, JavaScript – то для них за 20 лет наработан багаж решений, библиотек. В каждой из этих языков можно найти какие-то свои узкие места, но благодаря развитым экосистемам и востребованности использования их бизнесом, именно они до сих пор являются наиболее эффективными.

Я для большинства своих проектов использую Ruby из-за того, что речь – известная, мощная и с 20-летней экосистемой.

Есть тип задач, с которыми Ruby не справляется от слова "вообще". Если очень нужна скорость, или управлять асинхронными процессами, то Ruby – не ваша речь. Более эффективными будут новые языки, например Go или Elixir (Erlang).

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



0 комментариев
Сортировка:
Добавить комментарий