Рубріки: Інтерв'ю

«Це простіше, ніж тестувати сайти, але зарплати вищі»: Олексій Матіясевич з 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.

Останні статті

Офіційно: GitHub Copilot Chat тепер доступний на iOS та Android

Сервіс GitHub, який належить Microsoft, випустив Copilot Chat на iOS та Android. GitHub Copilot Chat…

08.05.2024

OpenAI знищила 100 000 книг, за якими тренували GPT-3. Причетні теж кудись зникли

Компанія OpenAI видалила два величезних набори даних «books1» і «books2», які використовувалися для навчання моделі…

08.05.2024

Реєстр військозообов’язаних «Оберіг» показуватиме статус отримання повістки

В реєстрі військовозообов'язаних «Оберіг» буде відображатися статус отримання повістки. Але цей процес буде відбуватися згідно…

08.05.2024

«Хакнуть» систему — босам «зріжуть» бонуси: Microsoft удосконалює програму кібербезпеки

Корпорація Microsoft в світлі останніх подій вирішила прив'язати зарплати керівників до функціонування систем безпеки: якщо…

08.05.2024

Українські програмісти створили Lağoda QT — гру-головоломку кримськотатарською мовою

Українські програмісти створили безплатну гру-головоломку Lağoda QT.  Кожен рівень — вірш одного з видатних кримськотатарських…

07.05.2024

В Copilot для Microsoft 365 додали українську мову

Корпорація Microsoft оголосила про підтримку української мови у Copilot для Microsoft 365. Українська мова входить…

07.05.2024