Здраствуйте. Я, Егор. Хотел бы чтобы вы сделали домейн, биотех суть такова... Программист может писать алгоритмы, автоматизацию научных посудомоек и парсеры человекочитаемых 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, ибо люди – неважно, деды или постграды – привыкают к старому интерфейсу и при постоянных поставках фич работа просто встанет. А в чем проблема с тем, чтобы деплоить софт под капотом? Какая верификация там требуется перед релизом и сколько человекочасов она занимает?