Здраствуйте. Я, Егор. Хотел бы чтобы вы сделали домейн, биотех суть такова... Программист может писать алгоритмы, автоматизацию научных посудомоек и парсеры человекочитаемых CSV. И если пользователь пишет алгоритмы ну то графы в MIP, переговорки деревяные набигают биологи и менеджеры. Можно поехать кукухой... И биологи раз не инженеры то сделать так что там густой лес вместо айти... А зарплаты можно поставить так что вдали как в FAANG, когда подходиш они ниже рынка
Дело в том, что последние два года я работал в одном биотех-стартапе.
То, что началось, как полуслучайное приключение, закончилось однозначно лучшими двумя годами моей карьеры, работой над самыми интересными и сложными проектами (прости, Яндекс, но вообще не близко), пониманием, что "сложный домейн" и "умные люди" не помеха полному техническому бардаку и титаническим костылям, осваиванием тонны карьерно-нерелеватных технологий и даже почти попыткой ответить на вопрос "а если вы такие умные, то почему у вас ничего не автоматизированно?".
Так как биотех сейчас хайпует и флексит, думаю будет интересно об этом сформулировать текстом. Текста много, потому что у меня не было времени написать короче.
Disclaimer: никакого отношения этот пост к моей любимой бывшей компании и кому бы то ни было еще не имеет, это только персональное мое личное-внутреннее-рефлексивное мнение, которое разделяю только я и то только по вторникам и четвергам.
Как войти в биотех
Вошел я туда практически случайно, мне предложили пособеседоваться туда ребята из рекрутингового агенства (не является инвестиционной рекомендацией, хотя ребята в целом классные и толковые, пусть и британцы), с которым тогда плотно общался на тему лондонских вакансий. Вакансия была "одной из", но сразу привлекла мое неискушенное real stuff'ом внимание среди толпы безликих финтечей и хай фриквенси ООО "Лабеан"ов. Звали меня на позицию Senior Software Engineer, в описании вакансии и правда не было практически ничего про биологию (кажется, было что-то типо "было бы неплохо", но никаких твердых требований).
Перед собеседованиями я знал, что:
а) это "биотех", при этом значение слова "биотех" я не до конца понимал (привет, @Maximus)
б) они делают какие-то "инструменты для биотеха"
в) с инвестициями все более-менее хорошо
г) ну там типа докинз кароч иволюция от обизян мы короч а еще типа клетки там делятся из бЕлок собираются и шоб бицуха расла надо белки пить тип (немного не дотянул до PhD, одном словом)
В общем, не знал я практически ничего, но было очень интересно после всего этого чересчур айтишного (инфры, облаков, мониторингов, оркестраций) поработать над чем-то более реальным. Кстати, всегда рекомендую делать минимальный ресерч перед собеседованием куда угодно и готовить списочек релевантных вопросов. Не будьте как я.
На первом интро-звонке мне рассказали, что:
а) половина компании PhD+ по биологии/химии, вторая половина инженеры и коммуникация первых со вторым is a key
б) что пилят они "операционную систему и визуальный язык программирования для лабораторий и биологических экспериментов" (што)
На мои русско-картавые потуги сказать, что зиготить я не умею и инфузорию туфельку от туфли лодочки вряд ли отличу, сказали, что это ок, главное быть открытым к новому и уметь разговаривать/слушать/иметь общий технически-высший бэкграунд. А я то как раз был открыт так, что сквозняки ходили меж приоткрытых внутренних окон Овертона!
Дальше были собеседования. Все они были технические, немного душноватые, с большим количеством вайтборда (6 или 7 задач, но из них только одна на DP), систем дизайном и нулевым количеством вопросов про биотех. Почему так? Ответ прост -- в начале формирования инженерной команды были нанята парочка ex-Facebook ребят, которые притащили с собой state-of-the-art-лучший-в-мире процесс собеседования (/s). После я пытался немного бороться с этим процессом, но про это как-нибудь в другой раз.
В итоге, да, у меня не спросили вообще ничего про биологию. Зато на онсайте в Лондоне показали настоящую биологическую лабораторию, дали надеть халат и очки!
В итоге, для вхождение в биотех мне понадобилось:
- одно рекрутинговое агенство
- один software-focused биотех стартап
- какой-никакой скилл прохождения собеседований
- какой-никакой скилл торговли и выбивания бенефитов (подробнее)
- ноль знаний биологии
- ноль релеватного опыта в домейне
Где работать в биотехе
Выше я говорил, что слабо представлял себе, что означает слово "биотех".
Оказалось, что под словом "биотех" скрывается борхесовская классификация всего от модного стартапа с вот таким корпоративным стилем
...до высасывающего душу и забирающего в рабство твоих детей корпората, который хуже FAANGа и немецких концернов по промышленной продаже штанов
Для ориентации в пространстве биотеха есть вот такая картинка (она, правда, про cell & gene therapy, в основном, но категории кажутся +/- универсальными):
Перечислять все я не буду, отмечу лишь, что из всего этого богатства выбора для рядового айтишника, не кончавшего биологическую консерваторию, мне кажется, есть два пути:
- Hardware/RnD отдел большого корпората: скучно-стабильно, пишешь парсеры человекочитаемых CSV, через пять лет получаешь повышение и начинаешь дизайнить человекочитаемые CSV
- Модный дерзкий digital transformation disruptive startup: от откровенного скама чтобы набрать классы и инвестиции, то вполне себе серьезных продуктов, которые меняют все к лучшему. Choose wisely!
Все остальное, все же, имеет под собой чуть больше домейн ноледжа, чем доступно у Докинза и Аси Казанцевой.
Как работать в биотехе
Для начала про то, чем все же занималась компания между "инструменты для биотеха" и "операционная система для биологических лабораторий".
Основной продукт -- что-то вроде CAD/визуального ЯП, в котором из лего-ноу-зиро-код-кубиков можно себе что-то напоминающее биологический эксперимент собрать.
Потом эти кубики превращаются в "программу", которую можно исполнить на одном или нескольких из поддерживаемых роботов (физических, настоящих, да). После исполнения результаты загружаются в систему и их можно проанализировать. Wow such science.
Как несложно понять по такому описанию, штука действительно очень техническая и довольно сложная. Добавив в котел со сложностью возможные потери (денежные и временные), если наша штука что-то куда-то неправильно перемешает, кажется, можно понять, почему нужны в первую очередь сильные инженеры, а знание биологии как-нибудь со звездочкой и в диалогах с коллегами.
Для затравки, пара примеров сложных задач, которые мы решали:
- Написать MIP алгоритм аллокации нужного количества жидкостей, минимизирующий все, что можно. Понять, что сложно-выключай, перейти на MiniZinc и constraint modeling.
- Что делать, если мы хотим N девайсов? Graph partitioning go brrr.
- А если мы хотим экспериментальный второй фронтенд, чуть менее лоу-ноу-зиро-кодный? Bytecode DSL go brrr transpilers go wrrrrrrrr.
Но, как и везде в айти, были вещи и менее поэтичные:
- Парсеры человекочитаемых CSV.
- Автоматизация оборудования с классными интеграциями в WSDL, ActiveMQ, программами как таблицами в Sqlite (я бы хотел, чтобы это было шуткой, но нет), UI в WinForms.
- Немного джейсон-протобуф-мешалок.
Кстати, ко всем трем задачам я приложил свои руки в разной степени от ревью-обсуждений до техлидства. При этом, конечно же, есть люди, которые парсят CSV и красят формочки, как и везде, YMMV. Но на мой взгляд пространство для сложных и интересных вещей в digital биотехе большое, главное, опять же, не очутится в отделе по проектированию человекочитаемых CSV или говностартапа, сосущего деньги без реального продукта.
Дополнительно скажу, что на таком уровне ответственности и сложности внезапно понимаешь, что весь этот agile булшит с выкатками по десять раз на дню, неверифицируемым ничем, кроме юнит-тестов и отсутствием какого-никакого design upfront просто не работает ни на чем серьезнее интернет-магазина. Это очень отрезвляет и заставляет немного иначе смотреть на вещи. Было несколько ситуаций, когда "сначала сделали, потом рассказали и подумали" оборачивалось не лучшим результатом.
В добавок к такой essential сложность проблемной области и продукта, биотех с горой насыпает accidental сложности. И тут начинается срыв покровов и цыганский табор.
Как устроено айти в биотехе
Если вам кажется, что эти ваши биотехи это такие снизу-доверху напичканные техникой, CADами и автоматикой концерны, то curb your enthusiasm. Ну правда, если какой-нибудь automotive смог, то почему биологи не могут? Но по тому что я видел и слышал, сложилось впечатление, что технологический прогресс до биологии как-то не дошел, а там где дошел, сделал это весьма специфично.
Итак, хот тейки (половину из которых в комментариях опровергнут более умные люди с бОльшим инсайдом, слушайте их, я мимопроходил):
- Автоматизации очень мало, для большинства еще ок руками дешевых постградов смешивать жидкости (reproducibility выходит из чата)
- Та автоматизация, что есть, идет бонусом в дорогущим роботам от больших компаний (vendor lock in входит в чат)
- Качество этой автоматизации зачастую... хромает (vse kak y lyudey входит в чат)
Несколько примеров:
- Если ваш дорогущий инструмент за много денег должен померить поглощение света жидкостью, результат он положит в человекочитаемый CSV. Как парсить такой формат? Может быть есть грамматика? Или хотя бы описание полей? А зачем, есть же глаза и руки постградов! В итоге за два года я видел штук 10 человекочитаемых CSV, естественно, с друг другом никак не совместимых (даже если форматы от одного производителя и одного инструмента). Была даже внутренняя шутка написать мышиное облучение для переваривания бесконечных человекочитаемых CSV. После такого, когда видишь простой советский XML плачешь от радости и целуешь руки авторам, говоришь тосты на их свадьбах.
- Если у вашего дорогущего инструмента за много денег есть automation API, то он будет представлен WSDL, а ивенты будет слать в ActiveMQ. Это иногда неплохо, choose boring tech, все дела, но ценность копошения в таком для твоей карьеры примерно нулевая (зато кулстори вот можно рассказывать).
- Если у вашего дорогущего инструмента за много денег нет automation API, а automation очень хочется, то земля вам пухом. Нет, правда, вы не хотите туда лезть, вас сожрет и бачок потечет. Но мы лезли и это не было pretty.
- Если у вашего дорогущего инструмента за много денег есть поддержка скриптов, то система типов скриптового языка будет описываться, например, так: the type of a variable is variable. Идеальная иллюстрация вечному вопросу "Зачем нужно CS образование" и "почему профессионал в одном обычно дурак в другом".
- ...а UI будет выглядеть так
Почему так? Я задавал этот вопрос примерно всем людям, работающим в компании и примерно такой общий ответ усвоил:
- Автоматизация не входит в планы дедов-академиков
- Полушепотом говорят, что в биологию идут не самые техническо-математически сильные люди (об этом еще Фейнман писал, кстати), их забирает себе физика, математика и CS.
- Биология это сложно-очень-очень-сложно-лучше-нельзя (но обычно оказывается, что как-нибудь все же можно, если постараться)
- И так все работает (и это действительно так)
На этом технологическом диком западе каждый день появляются по десять стартапов, пытающихся все это задизраптить и автоматизировать. Кто-то более успешно и полно, кто-то менее. Упирается все это желание в косность индустрии, дедов-академиков и постградов, которых не научили, но в целом, прогресс действительно идет. Даже большие корпораты с собственными башнями RnD-господ довольно активно интересуются происходящим, подписывают пробные контракты и вписываются в общие проекты.
Зачем работать в биотехе
Тут каждому свое, но по мне опыт работы в чем-то реальном, а не сферическом айти-в-вакууме будет полезен любому. Это может быть биотех, агротех, космос, электроника.
Придется поговорить с людьми, для которых айти может быть почти что пустым звуком (inb4 с менеджерами). Придется удивиться по-львиному от состояния автоматизации в отдельно взятой наукоемкой области, которая, кажется, должна выглядеть совсем иначе. Придется (не)понять и (не)принять причины, почему все так. Придется решить тонну сложных задач (но опять же, YMMV).
Так что дерзайте и ебашьте ручной труд, академию, индустрию, угорайте на SLAS, любите свой Liquid Handler, PhD и Биотех! Парсьте человекочитаемые CSV! ГОВОРИТЕ ОТКРЫТО И СМЕЛО ПРЯМО В ЛИЦО! БИОТЕХ! ЧЕЛОВЕКОЧИТАЕМЫЕ CSV!
Спасибо большое за пост, интересно взглянуть на знакомое дела со стороны программистов!
А я как раз биолог из биотеха.
Подумываю вернуться в био-автоматизацию, где когда-то уже поработала - делался робот для quality control некоторых внутривенно вводимых веществ (не то, что вы подумали, а радиофарма). Тогда у меня опух мозг от драки с FDA за комплаенс и к тому же началась корона - и я позорно смылась.
Напиши пожалуйста, какие именно компьютерные знания, на твой взгляд, больше всего нужны, чтоб начать в этом работать со стороны софта. Или если есть что почитать для биологов - плиз, сенкс!
Ну а я напишу-ка, пожалуй, немного для равновесия и ради фана от имени славных (муз) дидов:
Не ликвид-хендлером единым жив биотех. Это ваше "вжик-пипетка", оно конечно супер, тыщу чего-то там в секунду капает. Но большинство операций в биологической лабе (или госпитале) не автоматизированы и близко, и там без постграда или техника никак. И собсно, если для всех чашек Петри, белковых кристаллов и прочих гибридом или зырканий в анализ мОчи у вас люди, то какого черта все вдруг кардинально духовно переродятся из-за бешеной пипетки и начнут охоту на CSV? Gimme more machines first.
Для жестко заданных процедур, особенно для диагностики. Вот тут да, тут вжик хорошо работает, но и тут техник должен быть на стреме и следить, как было в посте выше про вахтера. Я подвешивала GoPro и мрачно взирала на видео в офисе, коим образом раскрыла "многия великия тайны" инженерам про то, чем там занимается наша машиночка пока мы на нее не смотрим. Моторчик запершил во время time-sensitive реакции (реальный случай, мне потом инженер рассказывал про какие-то там ремни)? Ах ты лапулечка...
Подготовочка. Для того, чтоб ваша вжик-пипетка работала, ей надо поднести все реагенты в надлежащем виде. Обычно их готовит другая вжик-пипетка подешевле (чтоб ваша дорогая не простаивала и не дай божечки не сломалась) или же их надо в этом подготовленном в малых объемах и определённом виде приобрести (kit, дороговато, особенно если вы не госпиталь), либо это... правильно, техник.
Собсно рисеч = что-то быстренько проверить и отмести гипотезу. Енти штуки для рисеча ниочень. Поясню. Чтоб пройтись по интерфейсу и собрать новую программу с зерокодингом (в моем случае был не зеро и так я познакомилась с XML) - это упреешь, потом окажется в ответственный момент носиков для пипетки не хватило и все крашнулось и так обиделось, что потом час не вставало (реальный случай)... Так надо было все отладить же сперва, да? А нам только и нужно быстренько попробовать чтоб то же самое, но в 50% объема, например, и время реакции подрехтовать. Ну вас в баню, пусть техник быстренько все сделает.
Репродюсибилити. Типичная вжик-пипетка ПОКА ЧТО с квалифицированной Анкой-пипетчицей ни в какое сравнение не идет по репродюсибилити. Где там пузырек зашел, или вязкость раствора вдруг не та (что-то стало холодать...), или капнуло нечаянно (плохой был носик у пипетки, плохо прилегал), да хоть кусочек пластика от плашки где-то зам застрял. Сколько я этих modes of failure насмотрелась - не пересказать. Многие так и не смогла объяснить себе и начальству. Но что действительно правда - Анка медленнее, чем вжик. Скоро вжик победит, но пока еще не.
Я так понимаю, что для попадания нужны достаточно стандартные скиллы интервьюирования, пусть и выше среднего. А что в работе? Приходилось читать пейперы и освежать фундаментальные знания или, как и с крудами в финтехе, всё можно нагуглить?)
Ловил флешбэки на каждом предложении. После всех этих доменов, которые не описать джсоном, сильно хочется опять парсить человекочитаемые CSV
(хотя конечно ощущается что беспилоты всё же поближе к айти, чем биотех)
Дайте же скорее хоть посмотреть на один такой человекочитаемый CSV.
Звучит так себе если честно, из статьи мне показалось:
Связь биотех <-> CSV создана успешно.
Вступление сначала не понял, а потом как понял )
Как чувак, у которого за плечами 8 лет в генетической лабе, полностью подтверждаю слова автора. С одной стороны - сложнейшие технологии, наноскейл там, лазеры хуязеры, причем не на словах, а по факту. А с другой - добрая часть операций чуть ли не на глаз, лютейший вендор-лок на все то, что не похоже на ведро с гайками и диды, которые даже не понимают, а шо в этом такова.
Если ты проводишь эксперимент и он воспроизводится хотя бы в 50% случаев - это считается большая удача. Часто люди делают работы на том, что воспроизвелось всего один раз, да и то, неизвестно какими молитвами. Повторить не могут (потому что вся эта мокрая химия - иншалла капец какая нелинейная хрень, в которой если что-то и произошло, то не иначе, как волей всевышнего). Строить на этом алгоритмы? Ну такое... Вслух пожелают удачи, а про себя перекрестятся. Вот так и живут :)
На фото в статье — железяка от TECAN, швейцарского производителя оборудования для лабораторий.
Доводилось делать один проект по созданию нормального интерфейса для нормальных людей, которым в своей работе нужно похожему зверю скармливать пробы и получать результаты.
Дело было в самом начале 2020 года, когда все закрылись на карантин и лаборатория, где стояла железка, тоже закрылась. То есть доступа к железке у нас не было. Эмулятора железки естессно тоже нет, равно как и нет привычных dev-staging-uat-prod окружений. Всё что есть — один аппарат, который стоит в закрытом помещении, попасть куда может только охранник (не биолог ни разу).
Выкрутились установкой вокруг аппарата 8 веб-камер, каждая подключена к собственному 4G интернет-модему: ПОТОМУ ЧТО подключиться к локальной сети лаборатории не представляется возможным — доступа в интернет в ней для новых неизвестных устройств нет, а чтобы он появился, нужно настраивать какую-то железяку где-то в подвале, от которой уже забыли пароль и которую лучше не трогать ибо как бы чего не вышло.
Короче вокруг девайса навешали камер, после чего звонили по телефону вахтёру и просили его подняться на 2-й этаж, зайти в лабу и загрузить вот те 20 пробирок вот в тот лоточек. А потом не уходить далеко, потому что скорее всего пробирку не доедут до цели и надо будет их как в том принтере, что бумагу зажёвывает, поправить.
И так 10 раз на дню. Вахтёру постоянно заказывали пиццу и другие ништяки, чтобы мотивировать его помогать.
Потом по ходу пьесы зареверс-инжинирили протокол и написали какой-то горе эмулятор, так что беспокоить ценного сотрудника пришлось гораздо реже, только для end-to-end тестирования.
Ух ты, столько об этом твоем опыте слышал (в чатах), а теперь и пост. Огонь!
Кажется, автор коротко смог описать всё это ваше айти
Это что, второй охуенный пост в клуб после моей просьбы? Хоули щит, да я же продюсер!
Отлично описано, вдохновляешь пойти в биотех. Пока народ будет развлекаться с пубернетесами, можно будет чего полезного пописать.
А насчет карьерных перспектив - так тут они немного в другой плоскости проходят, не новую джава/го/питон пепяку или технологию изучить, а влезть в домен и понимать как его пользовать и строить.
Спасибо, интересный пост и подтверждает то, что я слышала от преподавателей :) Особенно про воспроизводимость. И рутину в корпорациях. И моё решение оставить биоинформатику/биотех/вообще всё био на уровне хобби тоже подтверждает 🤷
Человекочитаемый CSV - истину глаголет1
ЗЫ
Я думал проблемы со стат значимостью и воспроизводимостью только во всяких гуманитарных науках типа психологии бывают, а оказалось вон че!
там тоже не работает 🙄
Только добрался до твоего поста, Егор – как всегда, охуенно, хоть поп-корн перед прочтением заказывай
это, кстати, очень интересный вброс, ибо первое, что меня интересует в айти – это devops-единороги по типу быстрой доставки софта с минимизацией урона в проде
Понимаю, почему нельзя релизить десять раз в день UI, ибо люди – неважно, деды или постграды – привыкают к старому интерфейсу и при постоянных поставках фич работа просто встанет. А в чем проблема с тем, чтобы деплоить софт под капотом? Какая верификация там требуется перед релизом и сколько человекочасов она занимает?