«Это проще, чем тестировать сайты, но зарплаты выше»: Алексей Матиясевич из Ambisafe — о том, как стать тестировщиком в блокчейне
Чтобы работать в сфере блокчейна, не обязательно быть программистом и уметь разрабатывать продукты. К примеру, Алексей Матиясевич пришел в эту нишу как QA Automation, а сегодня он Lead Smart Contracts Engineer в компаниях Ambisafe и ChainSafe.
О смарт-контрактах и особенностях их тестирования, а также причинах высокого уровня зарплат в блокчейне он рассказал в интервью Highload .
Много лет я занимался тестированием
Алексей Матиясевич, Lead Smart Contracts Engineer
Мой папа очень интересовался компьютерами: с раннего детства, когда мне было 6 лет, дома был компьютер. Большую часть времени он был включен — либо мой папа со своими друзьями что-то настраивали, либо старший брат программировал, либо кто-то играл. А я любил сидеть и смотреть, чем они занимаются, пытался что-то понять. Мечтал стать администратором компьютерного клуба, чтобы сидеть, ничего не делать, играть в игры, да еще и получать за это зарплату. Просто Dream Job!
Родители поддерживали увлечение — устроили в класс с уклоном в информатику, чтобы с раннего детства я изучал программирование. С годами интерес не исчез, поэтому выбор профессии был очевиден.
Первая моя работа — системный администратор в неайтишной компании. Позже, в 2006 году, устроился на позицию QA. Тогда эта профессия только появилась и была не слишком распространена. Много лет я занимался тестированием: сначала мануальным, потом автоматизацией, а потом уже стал профессионально программировать продукты.
Разобраться в блокчейне можно без опыта программирования
Я бы не сказал, что для входа в блокчейн необходимо быть разработчиком со многими годами практики. Конечно, чем больше опыта, тем проще будет разобраться в новой технологии. Но это можно сделать, не имея опыта программирования и разработки каких-либо продуктов. Сейчас в западных университетах блокчейн попадает в обучающие программы, студенты делают курсовые или дипломные с использованием блокчейн-технологий. Люди выходят из университета и уже представляют, как там все работает.
Сама по себе технология блокчейн революционного класса, но она не сверхсложная.
Кто угодно, если поставит цель разобраться в ней, сможет это сделать.
Сначала не было никакого понимания, зачем нужны смарт-контракты
Я всегда работал в офисе, а где-то в 2015 году решил поискать удаленную работу. Так случилось, что меня пригласил основатель блокчейн компании Ambisafe работать ремоут в компании клиента Tether — именно она первой выпустила массовый криптодоллар. Там я проработал почти год, и именно там я разобрался, как работает Bitcoin, Omni Protocol, их возможности. Мне это понравилось. В конце 2015 года Tether остановил разработку, чтобы развивать и популяризировать свой продукт. Тогда суммарное количество выпущенных ими криптодолларов было около 450 тысяч, а сейчас это миллиарды долларов.
После этого начал работать напрямую в Ambisafe. Они одни из первых начали использовать Ethereum, чтобы запускать на нем продукты, выпускать токены для некоторых компаний. Поначалу пришел к ним как проджект-менеджер под конкретный продукт. В то же время в компании начали разрабатывать смарт-контракты на Ethereum, и всей работой по ним занимался один разработчик. Он понимал, что количества ресурсов, которые тратятся на тесты смарт-контрактов, недостаточно, поэтому нужен еще специалист. У меня был большой опыт автоматизированного тестирования (а смарт-контракты всегда тестируются с помощью автотестов), поэтому я начал разбираться, как помочь, что я могу сделать, как работают смарт-контракты.
Сначала у меня не было понимания, зачем нужны смарт-контракты и кто будет ими пользоваться. Частично прояснил ситуацию наш разработчик, также я несколько раз перечитал документацию по языку программирования Solidity, и все стало более-менее понятно.
Тогда меня захлестнуло представление, насколько это революционная технология!
Пару месяцев было очень сложно, не мог разобраться в отдельных моментах. Потом тоже было сложно, но любопытство уже превышало сложность. Появился драйв, когда хочется постоянно работать, можешь целый день решать проблему, но этот процесс доставляет удовольствие — потому что знаешь, что решение все-таки будет найдено. С тех пор занимаюсь разработкой и тестированием смарт-контрактов, а также провожу ревью смарт-контрактов других разработчиков.
Сейчас есть множество курсов на разных платформах
В 2016 году, когда начинал заниматься разработкой смарт-контрактов, почти никаких учебных материалов не было, даже на форумах не удавалось найти варианты решения проблем — с ними еще никто не сталкивался, или сталкивался и не написал ответ, просто потому что никто не спрашивал. Информации было не достаточно. Поэтому, чтобы научиться, пользовался документацией, писал вопросы в чате разработчиков, иногда на Stack Overflow, часто сам писал ответы другим пользователям.
Фото с FB Алексея
Со временем учиться стало легче. Сейчас есть множество курсов на разных платформах. Например, есть известный интерактивный курс CryptoZombies.io, о котором очень много хороших отзывов. Также есть качественные книги — например, Mastering Ethereum. Материалов в интернете очень много, их легко найти, они доступны.
Тестирование смарт-контрактов в целом проще
Тестирование смарт-контрактов в целом проще, потому что они значительно меньше, чем любые обычные программы или сервисы, которые мы можем увидеть где-то. То есть количество используемого кода значительно меньше. Смарт-контракт сам по себе это просто класс (если брать подход объектоориентированного программирования), в котором есть какие-то функции и переменные. Есть множество инструментов, которые позволяют взаимодействовать с таким смарт-контрактом через интерфейс, в интерфейсе будут поля для параметров и кнопка «выполнить функцию», и ты сможешь смотреть результат.
Но в то же время ты можешь тестировать с помощью юнит-тестов, потому что это просто часть кода. Это гораздо эффективнее, быстрее и надежнее. Они помогают поддерживать код в рабочем состоянии, быстро получать фидбэк о том, что код работает именно так, как задумано, и ничего не сломалось. Хотя смарт-контракты можно тестировать вручную, стандартом в их тестировании является написание автотестов.
Еще один момент: смарт-контракты чаще всего используются не напрямую, а с помощью какого-то юзер-интерфейса, некого сайта, который позволяет пользователю отправлять транзакции в смарт-контракт. Этот сайт может быть тяжелым проектом с бэкендом, базами данных, в котором может быть сложная логика и что-то может ломаться. Здесь тестирование идет как в обычных продуктах.
Обычно смарт-контракты и фронтенды тестируются отдельно. Единственный уникальный момент — когда идет взаимодействие с контрактом, то есть пользователь отправляет транзакцию, открывается кошелек и просит подтвердить действие.
Где крутятся деньги, там и зарплаты выше
Почему тестировать смарт-контракты проще, чем сайты, но зарплата в блокчейне выше? Потому что специалистов с опытом работы в блокчейне гораздо меньше, чем нужно рынку. Поэтому оплата может быть выше. Это основная причина, распространяющаяся преимущественно на джуниоров. Если говорить о разработчике на позиции senior, то здесь другие факторы.
В блокчейне стоимость ошибок значительно выше, чем в других проектах. Когда у тебя более высокий уровень ответственности, то и платят тебе больше.
Если ты пишешь тесты на смарт-контракты, то ты должен писать их так, чтобы ничего не пропустить. Если пишешь смарт-контракты, ты должен быть гораздо внимательнее, чем при работе над обычными Web2-сервисами. Все потому что ущерб, который может быть причинен в результате ошибки в коде смарт-контракта, будет значительно больше и быстрее.
Кроме того, сейчас очень многие блокчейн-проекты работают именно с финансами, соответственно здесь большое денежное обращение. Где крутятся деньги, там и зарплаты выше.
В продолжении интервью Алексей расскажет, возможно ли джуниору работать в блокчейне, какие особенности имеет язык Solidity и как из-за уязвимости можно выманить у смарт-контракта миллионы долларов. Не пропустите скоро на Highload.
Сообщить об опечатке
Текст, который будет отправлен нашим редакторам: