Ментор та випускник — інтерв’ю про 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 коментар
Додати коментар Підписатись на коментаріВідписатись від коментарівА можна більше подробиць про які часто мовчать.
Скільки було інтернів на початку?
Скільки інтернів завершили інтернатуру?
Скільки отримали офер?
Скільки звільнились чи звільнили?