Рабочие места: Анна Воробьева, ведущий разработчик виртуальных машин в компании Parallels

Девушки преуспевают в типично мужских занятиях, и этот факт уже давно перестал восприниматься как общественный феномен. Сегодняшняя героиня рубрики Анна Воробьева может дать сто очков вперед любому мужчине ИТ-профессионалу. Она – ведущий разработчик одного из ключевых компонентов виртуальных машин в компании Parallels. Самое время выяснить, как ей работается в области системного программирования и есть ли, на ее взгляд, место девушкам в командах софтверных инженеров.

Интервью с Анной Воробьёвой, ведущим разработчиком виртуальных машин в компании Parallels

Чем вы занимаетесь на работе?

Я – ведущий разработчик core-команды в компании Parallels. Core-команда занимается созданием и совершенствованием так называемого монитора виртуальной машины – центрального компонента виртуализации во всей линейке гипервизорных продуктов Parallels. Именно в мониторе создается иллюзорный процессор, память, все устройства.

Согласна, это несколько нетипичное занятие для девушки. За мою карьеру в IT следует благодарить родителей – они очень пеклись о будущем для своего вполне гуманитарного чада. Но уже в институте (в МЭСИ) я столкнулась настоящими IT-фанатиками, которые были готовы днями напролет говорить об устройстве операционных систем. Двое самых продвинутых ребят пошли в Parallels, когда она была совсем маленькой компанией. Они так увлекательно рассказывали об уровне решаемых задач и об атмосфере в коллективе, что их истории в конечном счете помогли сделать выбор места работы.

Непрерывный драйв вряд ли возможен в работе. Труд софтверного инженера – не исключение. Случаются как творческие подъемы, так и периоды творческой апатии. Но в целом виртуализация и облачные вычисления не дают соскучиться. В этой отрасли постоянно что-то происходит, нужно отвечать этим новым вызовам. Кроме того, мы постоянно совершенствуем свой код, свои технологии, все время чему-то учимся. Особенно много дают поездки на международные конференции.

Наш монитор виртуальной машины общий для всей линейки продуктов с гипервизорной виртуализацией – Parallels Desktop, Parallels Workstation, Parallels Server. По сути монитор – это такая микро-операционная система, которая живет по своим правилам, со своими аллокаторами памяти, отложенными вызовами, таймерами и синхронизациями. И при этом монитор совершенно невидим для хостовой операционной системы – приложение обращается к драйверу, драйвер начинает работу и – а тут магия! – мы уже в мониторе, а не в операционной системе. Собственно, этот магический переключатель контекстов со всеми его универсальностями на голом ассемблере – повод для моей профессиональной гордости. Он, ну и еще сильно улучшенная плотность виртуальных машин на единицу оборудования в серверном продукте Parallels Server Bare Metal. Мы там такого с памятью наворотили, что любо-дорого посмотреть.

В ходе поиска оптимальных решений работы Virtual Machine Monitor мне приходится закапываться очень глубоко в ядро операционных систем. Узнай об этом разработчики ОС, они, наверное, очень бы удивились. Трудно поверить, но даже в системах от Apple время от времени бывают ошибки. Когда мы впервые спортировали наш известный среди «маководов» Parallels Desktop (PD) на 64-битное приложение, хостовая Mac OS стала сама по себе абсолютно хаотично перегружаться или повисать насмерть. Искать ошибку выпало мне – вероятно, в силу сочетания моей ответственности и общей трудоемкости задачи. Диагностики при таких видах «падений» не остается, поэтому я сама шерстила стандартные «64-битные» проблемы.

После длительных изысканий выяснилось, что MacOS для 64-битных процессов может использовать неверные данные, полагаясь на сохраненную копию. Операционная система при переключении на 64-битный процесс не полностью перегружала все регистры процессора (для тех, кто в теме, речь про GS и FS). Процессор работал на закэшированных значениях. А наш монитор виртуальной машины при работе (как раз при том магическом переключении) восстанавливал все регистры, в том числе и неверные. Данные в этих регистрах были настолько критичны для ОС, что она не могла даже нарисовать сообщение о критической ошибке ядра (kernel panic), рекурсивно вызывая обработчик ошибки. PD обновлял данные, полагаясь на то, что они корректные. К чести Apple стоит отметить, что они оперативно реагируют на баги, и уже в Lion-е (меньше чем через год) проблему починили.

Как выглядит ваше рабочее место?

Мое рабочее место можно описать как гармоничное сочетание множества «железяк» и пачек зеленого чая. Чай я люблю, а внушительный парк техники – это суровая производственная необходимость. Виртуализация от Parallels – кросс-платформенный продукт, поэтому создавать и тестировать прототипы новых версий приходится на самом разношерстном оборудовании.

Есть ли место девушкам в технических специальностях?

Какое «железо» используете?

На большом столе (а также под ним) живут:
Два десктопа – один на процессоре Intel, а другой – на процессоре AMD.
Сервер MacPro.
Лэптоп MacBook.

На «железе» установлен целый зоопарк систем – и MacOS X, Windows разных разрядностей и разных версий, и всевозможные варианты Linux.

К железу вообще и к гаджетам в частности я была равнодушна до прошлой поездки на WWDC (Apple Developer Conference), где безнадежно влюбилась в iPhone. Кстати, мой экземпляр девайса – трофейный. Я выиграла его в ходе профессионального пари с сооснователем Parallels, а ныне председателем совета директоров Сергеем Белоусовым. Как-то раз мы сидели в ресторане. И никак не могли вспомнить название одной из недавно представленных эппловских технологий. Сергей погуглил, хмыкнул и сказал: «Так, кто первый вспомнит, тому и iPhone». У каждого было по три попытки. Первой вспомнила я. А технология называлась FaceTime.

Какое ПО используете?

На локальном «железе» установлено штук 8-10 самых разных операционных систем. Образов ОС – несчетное количество. И они ничем не хуже, между прочим. Софт у меня в большинстве специфический – компиляторы, отладчики, разные интегрированные среды разработки (IDE), дизассемблеры, профилировщики, DebugKit-ы. Из любимых средств стоит выделить дизассемблер IDA. В Parallels, кроме того, широкий спектр инструментария своей разработки. Мы собираем гостевые и мониторные дампы, ведем счетчики производительности, логи, историю, вот сейчас доделываем свой дебаггер. Системное программирование требует системного подхода к поиску ошибки.

Железо и ОС ведущего разработчика виртуальных машин в компании Parallels

Есть ли конфигурация мечты?

Свои мечты о «железе» даже боюсь озвучивать – так быстро они сбываются :) Общее пожелание к «железу» – побольше логических CPU (от 16), побольше памяти (от 8 Гб). Но критичнее всего качество процессорных фич – чем свежее процессор, тем больше в нем новых «игрушек» – EPT, Unrestricted, VT-D, TXT. Ну и шустрый жесткий диск. Все остальное в большинстве современных «железок» меня в общем и целом удовлетворяет.

Сергей Гоцуляк
Сергей Гоцуляк
2011-06-07 14:13:07
Parallels - молодцы! А на столе что, допинг-чай?
Rustam Kulenov
Rustam Kulenov
2011-06-07 15:32:12
На первой фотке стыдливо прячется бутылка коньяка. На второй фотке ее уже нет на столе:)
Слава Баранский
Слава Баранский
2011-06-07 16:27:14
Рассчет был на то, что вы, затемнные красотой Анны, не заметите :)
Dmitry Boldetsov
2011-06-07 18:19:36
Класс и большой респект Анне! Прочел на одном дыхании. Давно не курсе событий системного программирования и был приятно удивлен, что есть спецы по "голому ассемблеру".
Oleg Fomichov
Oleg Fomichov
2011-06-07 18:33:10
ну да уж,как же коньяк то мимо пропустить? :)
Yura Fresh
Юра Сухолотюк
2011-06-07 20:26:36
спасибо было очень интересно почитать! А что там за чаи стоят??)
Alexander Shvetsov
Alexander Shvetsov
2011-06-08 12:34:47
Аня, респект тебе и уважуха +)
Anna Vorobyeva
Anna Vorobyeva
2011-06-08 14:29:35
Глупо и пошло, но это бутыль оливкового масла. Салаты на работе заправлять
Anna Vorobyeva
Anna Vorobyeva
2011-06-08 14:30:53
Олег, Рустам, это оливковое масло. Ничего интересного
Anna Vorobyeva
Anna Vorobyeva
2011-06-08 14:34:20
Да Хуан Бао, Те Гуан Инь, Би Ло Чунь, Дань Цун, Уи Бань Тань, пуэр, кудин и далее. Да Хуан Бао особенно отлично настраивает на рабочий лад, Би Ло Чунь замечательно упорядочивает мысли
Slava Baranskyi
Slava Baranskyi
2011-06-08 21:24:34
:) поздно
Slava Baranskyi
Slava Baranskyi
2011-06-08 21:26:19
Анна, расскажите где покупать лучше чаи. Особенно интересно, если вы делаете это в интернете.
smol
smol
2011-06-09 09:59:19
У меня на столе такой же Матэ стоит))
smol
smol
2011-06-09 10:01:31
по-моему он называется Да Хун Пао, и да он прекрасно настраивает на жизнь ;)
Leonid Frolov
Leonid Frolov
2011-06-09 10:06:27
Анне еще для плэйбоя нужно сняться, чтобы можно было постить громкие заголовки в духе "Модели Playboy кодят на ассемблере"
Anna Vorobyeva
Anna Vorobyeva
2011-06-09 10:42:22
Покупаю в Железном Фениксе, там свежие чаи
Anna Vorobyeva
Anna Vorobyeva
2011-06-09 10:54:40
Кхм. Альтернативный вариант: обучить модель плейбоя ассемблеру. Заголовки "Идет отбор преподавателей ассемблера для модели плейбоя". Думаю, количество желающих помочь девушке в обучении обеспечит коммерческий успех проекту.
Vitaliy Yanchuk
Vitaliy Yanchuk
2011-06-09 11:09:29
Еще и правильный ноутбук с правильной системой использует, просто умница
vorobiev
vorobiev
2011-06-09 18:59:50
Это скорее оригинально, чем глупо! Поздравляю с замечательной публикацией! Какими серьезными задачами ты сейчас стала заниматься! Ну и фотография тоже под стать репортажу солидно и весомо. Больших успехов в трудовой деятельности и поменьше ошибок ;-)
Taras Koval
Taras Koval
2011-06-11 00:40:46
Анечка, дай Боже тебе творческих успехов! Ты этого заслуживаешь. ;)
Stas Dashkovsky
Stas Dashkovsky
2011-06-13 11:13:27
Прекрасно выглядишь, Анна! Успехов и удач тебе!
Антон Зенин
Антон Зенин
2011-09-11 15:05:46
Калабас на столе улыбнул :)
Антон Зенин
Антон Зенин
2011-09-11 15:08:23
По поводу коньяка... ребят там по цвету видно что не коньяк, стыдно должно быть)
MAD DAD
2014-04-29 12:35:26
Красивая очень Анна! Глаза, ох эти Прекрасные Глаза! Это не лесть но Зацепило)))