Ментор та випускник — інтерв’ю про 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 інтерни?

Артем: Ви усі здібні. Нічого не бійтеся.

👍ПодобаєтьсяСподобалось4
До обраногоВ обраному1
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

А можна більше подробиць про які часто мовчать.

Скільки було інтернів на початку?
Скільки інтернів завершили інтернатуру?
Скільки отримали офер?
Скільки звільнились чи звільнили?

Підписатись на коментарі