Ментор та випускник — інтерв’ю про crypto R&D інтернатуру
Привіт, я Анастасія, я працюю Head of customer solutions / Security software engineer в компанії Cossack Labs. Ми займаємося захистом даних, зокрема, прикладною сучасною криптографією. Це серйозно, складно та дуже захоплює, коли занурюєшся в тему. Потрапити в криптографію такого рівня зазвичай непросто. Так само буває досить непросто знайти фахівців, які б опанували ці специфічні знання та працювали б на стику технологій.
Нещодавно в інтерв’ю ДОУ я згадувала про нашу crypto R&D інтернатуру, й нас багато запитували коли буде наступний набір — я поки не маю точних дат, але точно буде. Раніше я вже трохи розповідала про інтернатуру (ми навіть потрапили до фіналістів у категорії «Найкраща програма стажування» за версією Ukrainian Recruiting Awards 2021), й наразі вирішила познайомити вас із «діючими особами» напряму.
Трохи розкажемо закулісних деталей від Артема та Назара.
Артем Сторожук має PhD з криптології, він розробник із великим досвідом роботи та викладання у галузі інформаційної безпеки. В Cossack Labs він працює над ZKP, zk-SNARKs, transaction privacy, multi-sig schemes, threshold crypto, і т. п. Артем був ментором для інтернів.
Назар Сергійчук — студент старшого курсу НТУУ КПІ ФІОТ, який зацікавився інтернатурою, успішно її закінчив та тепер працює над searchable encryption та differential privacy.
————————————
Я: Артем, пам’ятаєш як все починалося? Ми давно хотіли зробити щось на кшталт інтернатури, але зірки склалися тільки минулого року.
Артем: Так, прийшов момент, коли я розширював свою команду та шукав інженерів-криптографів із жвавим інтересом до досліджень. У мене достатньо знайомих інженерів, що працюють з криптографією, але напрямки моєї роботи досить нові — серед існуючих спеціалістів про них мало хто чув і, звичайно, мало хто з ними працював.
Справа у тому, що українська система вищої освіти дає непогану теорію (математичний апарат), але йде з тих часів, коли криптографія була «закритою темою», якою займались лише держспецслужби. Їй бракує практики: реальних кейсів, з якими стикаються сучасні криптографи, і де розвиваються такі напрямки, як zero-knowledge proofs, searchable encryption, private information retrieval й т. і.
Наприклад, київський НТУУ КПІ (фізтех та ФІОТ) та харківський ХНУ ім. Каразіна — я вважаю, що це «сильні» виши, які випускають гарних спеціалістів з захисту даних. Але рівень їхніх випускників та випускників європейських вишів незрівнянний. Думаю, було б чудово, якби вони могли покращити кооперацію із ведучими світовими університетами та навчальними центрами, які проводять дослідження в сфері computer science и cryptography (Technion — Ізраїль, Johns Hopkins University — США, University College London — Велика Британія). А ще — запровадити більш серйозні перевірки робіт на якість та плагіат. Це б істотно підвисило рівень підготовки вітчизняних наукових співробітників.
————————————
Я: Назаре, а як все починалось для тебе?
Назар: Це було ввечері на початку січня. Я просто гортав вакансії — і натрапив на ту, в якій були слова Rust і криптографія. Мене одразу зацікавило, тому що я активно вивчав Rust і захоплювався криптографією ще зі школи, але по-справжньому серйозно нею не займався. Тому я просто вирішив спробувати — і не пожалів. Я відправив листа о 12 ночі, а відповідь мені прийшла за півгодини. І тоді я зрозумів, що це мої люди :)
————————————
Я: Так-так, я пам’ятаю цей лист :)) Артем, Назар — які у вас були очікування з інтернатури? Чи реальність відрізнялась?
Артем: Я вже маю попередній досвід у навчанні студентів, й, в принципі, особливих очікувань в мене не було. Ми були готові до будь-якого розвитку подій: працевлаштувати усіх інтернів, якщо кожний себе зарекомендує, чи, навпаки, жодного, якщо ідея провалиться.
Назар: Я не знав чого очікувати від стажування, поки не побачив, тому у мене все було чудово в цьому плані :)
————————————
Я: А розкажи, що було найпростішим та найскладнішим на стажуванні?
Назар: Найпростішим було змушувати себе вчитись. Тому що це все було настільки цікаво, що мені не вистачало годин в добі :)
Із складнішого пам’ятаю деякі завдання, на які я витратив кілька днів. Тобто кілька днів на весь процес, який починався з рісьорча, читання купи складної літератури і закінчувався процесом дебага вже розроблених програм. Такі завдання були найцікавішими і надовго засідали в пам’яті (і моїх снах).
А неочікуваним для мене став той факт, що криптографія розвивається сьогодні швидкими темпами. До цього я (як і більшість людей) думав, що в криптографії вже давно все вигадали: всі шифри, хеш-функції, безпечні системи — що їх давно імплементували і більше там нема чого робити. Я дуже і дуже сильно помилявся :)
Артем: Так, ми заклали у програму кейси та завдання, з якими щодня стикаємось у робочих процесах, і де дослідження перетворюються на реальний продукт із багатою функціональністю.
————————————
Я: Чи це легко — бути ментором? Адже у crypto engineering — власне, програмування та математика — це лише частина айсбергу, а треба вміти спілкуватися з людьми. Чому, на твою думку, було особливо важливо навчити?
Артем: Менторство було частиною моєї роботи. Адже ж наша програма побудована так, що інтерн хоч і виконує учбові завдання, але вони досить близькі до тих, з якими працюють штатні інженери. Наприклад, процесс рев’ю коду для інтернів у нас був такий самий, як і для наших внутрішніх інженерів.
Вкрай важливим завданням було виробити робочу культуру: навчити відповідати на кожне питання та зауваження під час рев’ю, бути уважним до деталей, інформувати про те, як код працює через коментарі та в README. Серед завдань були дослідження та презентації, щоб навчити інтернів розмовляти з колегами та доносити свої думки. З цих простих на перший погляд речей і починається «mature» інженер.
Щодо досліджень, тут важливо не лякатися нового та ще не дослідженого (наприклад, багато інженерів, коли бачать математичні формули в документації, негайно закривають сторінку). А ще важливо відчувати баланс: наприклад, коли дослідження заводить вже в іншу область і треба вчасно зупинитися, щоб не змарнувати час й так і не вирішити завдання.
Наразі ми адаптували та допрацювали процес та програму інтернатури (додали терміни виконання завдань, переглянули наповнення модулей), так що наша наступна ітерація може принести ще більше успішних результатів.
————————————
Я: Назаре, дуже круто, що ти через все це пройшов. Як почуваєшся?
Назар: Я розумію, що після стажування маю твердий фундамент із криптографічних знань, та досить підтягнув свої інженерні знання. Саме на стажуванні я знайшов свої прогалини і успішно їх залатав. І тепер криптографія — це моя перша робота :) З цікавого — власне робота, інженерія та криптографія не можуть бути нудними.
————————————
Я: А якщо б почався новий набір на стажування в Cossack Labs, щоб ти сказав іншим студентам?
Назар: Тих, кому подобається криптографія, або математика, я б сам записав на стажування :) І ще тих, хто любить і хоче вчитись. Тому що, якщо хотіти, з інтернатури можна дістати купу прикладних знань, які однозначно будуть корисні навіть розробникам, які не працюють з криптографією напряму. Це дуже цінний досвід і навички.
Щодо Cossack Labs як компанії, чесно кажучи, я про неї боюсь розповідати іншим людям, тому що вони починають заздрити. Я відчував, що це непроста компанія, оскільки вона готова витрачати час і ресурси на новачків як я. І як виявилось, це КРУТА компанія, з крутими проектами, ідеями і людьми, які обожнюють свою роботу, живуть нею і отримують кайф, від якісно зробленої роботи. Я на власні вуха чув слова про те, що ми робимо софт для людей так, як для себе. Ця філософія мені найбільше до вподоби, тому я і знайшов своє місце тут.
————————————
Я: Тепер, коли ти вже не інтерн й працюєш як crypto R&D інженер, як змінилися рівень та складність твоїх завдань? Як це: бути crypto R&D інженером?
Назар: Бути crypto R&D інженером нелегко (думати — це одна з найважчих робіт, а тут думати треба багато). Але вся складність компенсується тим, що це дуже (я б сказав до біса) цікаво! За останні півроку мені вдалось попрацювати багато, як в інженерному плані, так і посидіти за дослідженнями. А цей тандем із чергування двох різних видів діяльностей дозволяє перемикатись і відпочивати у різних контекстах.
В R&D для мене складніша буква R, тобто research. В інтернатурі задача «дослідити щось» звучала як «Ось є така штука, треба почитати і розібратись з нею». Але у роботі вона іноді звучить «Ось є така штука, яку ніхто не досліджував. Тому ти будеш першим». І це, звісно, на декілька порядків складніше. Все ускладнюється ще й тим, що для мого внутрішнього вченого, виявляється, у добі замало годин.
Але загалом змінилось мало: очі досі великі і круглі, коли дивляться на красу криптографії. Руки самі тягнуться до інженерної справи. А голова, як і раніше не може спати, тому що надто збуджена якимись ідеями. Останні шість (чи навіть більше, хтось взагалі рахує?) місяців пройшли дуже швидко, і в пам’яті виглядають більше як маленький крок до всього цікавого, що на мене ще чекає попереду!
На початку роботи у мене часто питали друзі, чим я займаюсь. Після моїх відповідей ну я аналізую маленький e2eе протокол, або розбираюсь із деревами Меркла, або пишу специфікацію під HPKE, або імплементую маленький TOR-подібний криптографічний протокол, або ламаю searchable encryption схему... одним словом вони швидко перестали питати чим я займаюсь. Це показує специфіку моєї роботи (а ще те наскільки вона крута, але про це 🤫)
————————————
Я: Артеме, що б ти як ментор хотів сказати потенційним кандидатам в crypto R&D інтерни?
Артем: Ви усі здібні. Нічого не бійтеся.
1 коментар
Додати коментар Підписатись на коментаріВідписатись від коментарів