Хабрахабр

[Из песочницы] Как я ушел из фундаментальной науки в стартап

Поскольку здесь есть люди, которые еще только решаются на такой шаг, я опишу свой путь или, вернее, изменение направления своего пути. Сегодня ровно шесть месяцев как после двадцати лет в науке я ушел в стартап, разрабатывающий ПО для создания синтетических данных, в котором я занимаюсь интеграцией систем машинного обучения в конечный продукт.

Академия

-м.н. Я профессиональный физик и получил степень к.ф. Работал как в теоретической физике, так и в экспериментальной. на Физфаке МГУ. Эти подробности не для того, чтобы помериться с кем-то чем-то, а для понимания общей картины. Статьи в Nature и PRL, более 700 цитирований и индекс Хирша 14. Все было бы хорошо, но в последнее время наука стала превращаться в бизнес. Если брать контракты длительностью более года, то на таких длительных позициях проработал в четырех странах западной Европы. Постоянный поиск денег на исследования — написание заявок на гранты начало занимать больше времени, чем занятия непосредственно наукой. Люди в университетах только и думают о получении постоянной позиции. При этом все усилия в конечном итоге могут обернуться просто ничем. Если не имеешь ERC (European Research Council) проект, то ты не заинтересуешь ни один более менее нормальный европейский университет, даже если у тебя есть куча отличных публикаций и проектов. От 0. Каковы конечные шансы получить позицию? это вопрос удачи (привет Даниэлу Канеману и Нассиму Талебу). 5 до 2% при попадании в нужное время в нужное место, т. е. Такая деятельность стала приносить все больше разочарований. Десять лет исследований могут оказаться никому не нужными, не «модными». Да и статистика указывает на то, что ситуация вряд ли улучшится. А если работа перестает приносить удовольствие, то и все вокруг перестает радовать. Вопрос о дальнейшей деятельности для меня был очевиден — программирование. Итак, решение закончить академическую карьеру было принято. Но быстро сказка сказывается, да не быстро дело делается...

Программирование

Здесь все просто — в программировании и разработке ПО у меня был хоть какой-то опыт. Почему программирование, а не датасайнс? Я разрабатывал системы для сбора данных и контроля больших экспериментальных установок (н-р, рефрижератор растворения с ядерной размагничивающей подсистемой), анализа и визуализации данных на Python. Да, это был ограниченный опыт разработки для личного и внутри-академического пользования, но мой софт работает и им пользуются другие люди в лабораториях и при расчетах. В любом случае, этого опыта было не достаточно для перехода. До этого очень много использовал Fortran и немного C++ для численных расчетов. Поставил себе временное ограничение в один год, т. е. Надо было «подтянуть» или освоить много нового как в программировании (в том числе, алгоритмы и структуры данных), так и в проектировании ПО. Также «набросал» небольшой план практического обучения, в который вошли, н-р, создание игр на Python с использованием сценариев из книги «Программирование игр и головоломок» (Jacques Arsac, 1985) и различных небольших программ из «The Programmers Idea» (Coders Lexicon). это был крайний срок для моего перехода, так как мой контракт тогда заканчивался, а продлевать его я был не намерен, хотя такая возможность у меня была. Параллельно начал изучать еще два языка программирования — JavaScript и Go. Кстати, первую книгу я еще использовал много лет назад, когда писал игры для Spectrum ZX. Однако через какое-то время я стал ощущать необходимость в личном общении с людьми непосредственно занимающихся разработкой ПО, а также в совместной работе над каким-нибудь проектом. В принципе, все шло хорошо, благо обучающих ресурсов, книг, примеров в интернете сейчас хоть отбавляй. И, конечно, выручили митапы... Я стал искать такие возможности, учитывая, что я продолжал работать в университете и заниматься самообучением.

Встречи, проекты

После третьей или четвертой встречи мы организовали маленькую группу из пяти человек (потом остались только трое) для работы над проектом WebTags, позволяющим оставлять сообщения друзьям или группам на любом вебсайте. Одна из первых групп была FreeCodeCampVienna, которая в основном сфокусирована на веб-программировании, но это было нормально, так как мне важны были общение и контакты, а также получение опыта совместной работы. К сожалению, проект мы довели только до MVP и сделали пару презентаций на митапах, а дальше дело как-то не пошло, но необходимые знания я приобрел. Я занимался бэкэндом, так как с веб-дизайном я не очень дружу, мягко говоря. К тому времени я уже начал посещать и другие группы, в том числе и связанные с датасайнс — Vienna School of AI, Deep Learning Meetup in Vienna, Vienna Data Science. Как в прочем и другой проект, «CarTalk — A community designed for car enthusiasts», начатый в Chingu Voyage-7 команде (свободная глобальная платформа для тех, кто хочет научится работать над совместными проектами) не был закончен. Мои интересы начали смещаться в сторону машинного обучения и ИИ, так как в них присутствовала некая «научность», что ни могло не заинтересовать меня...

Немного о науке о данных

Я нашел и прошел несколько курсов по машинному обучению, ИИ, работе с большими данными. Возможность не отдаляться от науки и в тоже время заниматься программированием меня заинтриговала. Однако основным приоритетом для меня оставалось общение и контакты. На митапах была практика, хотя и не столько, сколько хотелось бы. Кто работал в науке, тот знает, что в научной среде используется curriculum vitae, которое включает в себя практически все детали научной деятельности. К тому времени уже прошло около восьми-девяти месяцев установленного мной переходного периода и я начал переделывать свое резюме. С одной стороны, проблема небольшая, так как в научном CV много нерелевантной информации, которая никого, кроме университетов не интересует. Надо было ужать восьмистраничное CV в одностраничное резюме. В конечном итоге включил почти все, что касалось разработок ПО и анализа данных, а также работа над сторонними проектами. С другой стороны, было не понятно какая информация может оказаться полезной. Из отведенного мной срока оставалось около двух месяцев и я начал подавать на открытые позиции. На переработку резюме у меня ушло где-то две недели. Я также понимал, что моих навыков и знаний для работы непосредственно, н-р, инженером машинного обучения еще недостаточно, поэтому я сосредоточился на компаниях, занимающихся датасайнс, но имеющих открытые позиции разработчиков... Надо отметить, что это был декабрь — месяц, в котором много праздничных дней, да и вообще, все уже обычно в ожидании Рождества и новогодних праздником.

Поиск

В большинстве случаев отвечали достаточно быстро — за два-три дня. И я начал рассылать свое резюме. Пригласили на пару интервью после телефонных собеседований и тестовых заданий. К моему удивлению, не все отвечали мгновенным отказом. Таких было около десяти. Однако потом получил отказы. Слушал, вникал, задавал много вопросов. Все это время я продолжал самообразование и общение на митапах. Меня тогда поразило датасайнс сообщество своей открытостью, чего я уже давно не наблюдал в «обычной» научной среде или крайне редко. Может быть кому-то надоедал, но в большинстве своем получал дружелюбные комментарии. Это выглядело как магия, на самом деле. Заинтересовало несколько тем, в том числе генерация синтетических данных и защита частных данных. В детстве я прочитал в какой-то книге или журнале о программе, которая могла писать стихи. Создание человеческого лица или генерация вполне себе адекватного C кода с помощью систем машинного обучения. А тут нет никакого жестко запрограммированного алгоритма создания чего-то нового, что не существовало, но имеющего при этом смысл! Потом я написал такую для Sinclair Spectrum ZX, но это был просто перебор в массивах и подстановка правильных слов в правильные места. Я начал чуть глубже вникать в эти темы, читать литературы и искать алгоритмы. Одним словом — круто. директором стартапа. Написал несколько писем людям, которые работали в этой теме в Австрии и где-то в январе я получил приглашение пройти телефонное интервью с тех. В то же время я получил приглашение от одной из компаний, которая разрабатывала научное ПО, но мне хотелось в датасайнс...

Предложение

Задания не вызвали никаких трудностей, только названия некоторых функций мне показались странными. После телефонного интервью с директором стартапа меня пригласили на интервью в офис компании и прислали несколько практических заданий, одно из которых было просто на алгоритмы, а другое связано с анализом и трансформацией данных на Python. Интервью проходило в конце января, означая, что я вполне мог уложиться в запланированные сроки и не продлять свой контракт в университете. Как я потом узнал, эти задания были «вычленены» из реального кода, первоначально написанного на R. Проговорили в общей сложности около двух часов. На интервью в основном говорили про программирование, обсуждали тестовые задания и общие вопросы на адекватность и психологическую устойчивость. Через несколько дней я получил предложение на позицию Senior software engineer. Все проходило так, как-будто мы были знакомы много лет — никакого напряжения. Во-первых, я отказался от предложения в другой компании, разрабатывающей научное ПО, но это было без особых терзаний. И вот тут и стало страшно. И теперь необходимо было сделать последний (или первый?) шаг — уйти из науки, которой я занимался последние двадцать лет. Основная проблема состояла в том, что я сделал то, что задумал. Но, как говорится, сказал «А», говори и «Б». На решение у меня было пять дней, самых длинных в моей жизни. И, отработав положенный месяц в университете, я ушел в стартап...

Стартап

Мне нравится, что я могу общаться с каждым членом компании. На сегодняшний день я могу сказать, что я рад, что начал свою новую жизнь не в большой компании, а в маленьком стартапе. И более того, мы знаем, что мы делаем и для чего. Все делают свою работу. Но маленькие компании такую роскошь себе позволить не могут, так что через десять дней я уже занимался интеграцией алгоритма differential privacy в наш «движок», что потребовало более глубокого изучения и понимания Tensorflow и Keras, а также самого алгоритма. Первая неделя была не самая сложная, занимался в основном багфиксами. Для этого изучил Spark и облачные вычисления. После этого разработка и имплементация кодировщика, который мог бы обрабатывать файлы, содержащие десятки миллионов строк и несколько тысяч колонок разного типа за разумное время. Десять-двенадцать часов в день, которые пролетают как один час… Теперь SaaS внедрение и интеграция… Каждый день что-то новое.

Показать больше

Похожие публикации

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»