Вадим Темкин (vmtcom) wrote,
Вадим Темкин
vmtcom

Моя первая американская работа. Мой Ivan.

Конец 1988 года. Я приехал в Америку вместе с семейством моего брата чуть больше месяца назад. У нас есть электрическая пишущая машинка, купленная на garage sale долларов за 10. Печатает она не очень ярко и не все буквы пропечатываются одинаково – но мы нашли прекрасный метод для улучшения качества: если сделать ксерокопию за 10 центов в соседнем универсаме резюме выглядит прекрасно.

Я уже успел съездить на интервью в Amdahl – на интервью, к которому я готовился еще до выезда из СССР. НИИ ЭВМ, в котором я работал, делал компьютеры, совместимые с IBM (этот процесс назывался «создрание» ЭВМ), и Amdahl делал компьютеры совместимые с IBM. Причем Amdahl (в отличие от IBM) располагался в Саннивейле.



Интервью прошло очень хорошо, впрочем были у меня, с моим английским советского разлива некоторые трудности. Например, я понятия не имел как произносятся слова греческого происхождения; кто бы мог догадаться, что сюдокод это примитивный псевдокод. Также небольшая нестыковка случилась, когда выяснилось, что у буржуев оперативная память дешевая: в то время как мы старательно виртуализировали оперативную память на дисках (у нас было 2 мегабайта физической оперативной памяти, а система подразумевала 16Mb логической), буржуи, наоборот, виртуализировали диски в оперативной памяти (больше 16Mb логической все равно нельзя, а систему ввода-вывода можно ускорить).

Ну и самый большой конфуз случился, когда меня повели в кафетерий: кто ж знал, что там могут спросить сквозь зубы по поводу салата “What dressing?” - потребовалось несколько попыток, чтобы понять чего они от меня хотят, а потом уловить в запрошенном перечислении версий слово Italian (French и Ranch звучали практически идентично, а что такое Thousand Islands я не узнал еще и через несколько месяцев). А как правильно есть большой гамбургер, который не влезает в рот, как широко его не открывай, я не знаю и сейчас, спустя 24 года.



В Amdahl меня не взяли, да и как могли взять в приличную компанию человека, который судя по всему знает и умеет на уровне старшего или ведущего инженера, но получил непроверяемое образование, работал в компании, про которую ничего не известно, да еще и говорит и понимает неизвестно как. На entry level может быть и взяли бы, но ведь это было бы нечестно. Уже через пару лет после этого, когда меня интервьюировали на должность C compiler Guru в Оракле, ответ был: «к сожалению, ваше знание языка Си намного превосходит ваше знание английского, а в этой позиции нам нужен знаток обоих языков».

И вот мой брат Мишка, который был больше физик, чем программист, видит в разделе Jobs в San Francisco Chronicle (во времена до интернета работу искали в газетах!), коротенькое объявление: “требуется специалист по SUPREM/PISCES, звонить в SILVACO”. Объявление такого рода звучало похоже на шпионское «продается славянский шкаф», но Мишкина диссертация и изданная в 1986 в Gordon and Breach Science Publishers, New York книга «Tables of Ion Implantation Spatial Distributions - Burenkov, A.F; Komarov, F.F; Kumakhov, M.A and Temkin, M.M» (не смотрите, что он последний автор, это по алфавиту, а не по вкладу) – упоминала эти программы (SUPREM и PISCES) в качестве конкурентов. Вероятно на свете было около сотни человек, которым эти названия что-то говорили; как вычислить вероятность того, что именно мой брат увидел это коротенькое объявление в газете, я не знаю.

Он позвонил по указанному телефону, чтобы спросить какой общественный транспорт ходит от электрички до офиса компании – мужчина, который поднял трубку, сказал, что встретит моего брата на станции (как люди могли встречать друг друга до мобильных телефонов сейчас трудно представить). Как выяснилось, этот мужчина был вовсе не секретарем, а хозяином компании, в которой на тот момент было четыре человека. Звали его Ivan Pesic (в просторечии Ваня), он был югослав, а точнее черногорец, учился некоторое время в МГУ в аспирантуре, поэтому понимал советскую систему образования. К.ф.-м.н. Михаил Темкин (a.k.a. Dr. Misha Temkin) через полчаса собеседования стал пятым сотрудником компании Силвако. В ходе этой беседы когда разбирались как Миша программирует, он сказал, что пишет на Фортране, но это не беда, его младший брат знает Си и сможет его быстро научить. «А где этот брат и чем он занимается?» - «В Сан-Франциско, пока ищет работу».

На следующий день я стал шестым сотрудником компании.

Ваню не волновали условности больших компаний, он мне положил 30 тысяч годовых и посадил припаивать ножки к диодам в помощь филиппинцу Максу, и помогать китайцу-программисту, когда тот попросит. С паяльником я работать никогда не умел, и за те три дня, что я паял, так и не научился. А вот с программированием вышло чуть получше.



Работали тогда на инженерных/научных рабочих станциях HP, Apollo и Sun – у них было 4-8 Мb памяти, до 100 Mb диска, кассетная лента, цветной или черно-белый дисплей, доморощенный (у каждой компании свой) Юникс, графическая система (у каждой компании своя) и цена от 30 до 50 тысяч долларов. В моей истории важно, что графическая система была у каждой рабочей станции своя. Компания Силвако к тому времени уже существовала четыре года (хотя Ваня Песик уволился со своей дневной работы в HP сравнительно недавно). Так что доморощенная универсальная графическая библиотека, надстроенная над уникальными библиотеками низкого уровня, у них уже была. Программа умела рисовать графики (какие-то вольт-амперные характеристики тех диодов, к которым я пытался припаивать ножки в соседней комнате) по одному графику на экране. Китаец пытался заставить ее рисовать два маленьких графика на одном экране.
Метод его работы был какой-то странный: он лез в код, менял какой-то hardcoded параметр, компилировал программу, запускал, смотрел на получающиеся кривые графики, мерял что-то на экране линейкой, говорил «недолет» или «перелет», и повторял процесс снова. В какой-то момент он решил, что хочет идти домой, оторвал меня от паяльника, объяснил, что дело в том, что система координат в графической библиотеке нелинейная, и поэтому мое предложенное решение с линейным преобразованием координат точки работать не будет, и вообще «неча думать, трясти надо». Вот меняй этот параметр, нажимай на эти кнопки, чтобы перекомпилировать, меряй размеры графиков, пока не добьёшься, чтобы они были одинаковыми, а я пошел…

Мишка Ване не соврал, я действительно знал Си и Юникс. Для Советского Союза это были экзотические знания, но мой завлаб, научный руководитель (а сейчас, через 30 лет, друг и бессменный капитан моей команды в «Что? Где? Когда?») Марк Неменман вовремя послал меня на первые в Союзе курсы по «Машинно-независимой операционной системе МНОС», так что я был единственным специалистом по этим делам в НИИ ЭВМ.

Моего знания ls и vi мне хватило на то, чтобы найти источник «нелинейности системы координат». В «универсальной графической библиотеке» при переходе от логических координат верхнего уровня к координатам пикселя в библиотеке нижнего уровня в паре мест вместо плюса стоял минус. Это не мешало, когда программа рисовал один график на экран, но портило дело, когда пытались рисовать несколько графиков. Через час я показывал Ване, что я могу рисовать 2, 4, 6, 8 и 9 графиков (хотя при тогдашнем разрешении экрана 6 можно было уже разглядеть с натяжкой).



На следующий день я уже не паял ножки диодам, и моя годовая зарплата была не 30, а 55 тысяч. Ваня потребовал, чтобы я был рядом с ним с 8 утра до 11 вечера. Я переехал из Сан-Франциско в Санта-Клару (неделю, до того как я нашел однокомнатную студию рядом с трамваем, я жил в “residential hotel” в комнате с удобствами в коридоре за 100 долларов в неделю – я не знаю, существуют ли такие теперь).

Я действительно работал с Ваней с утра до ночи. Если я задерживался после полуночи, когда трамваи не ходили – Ваня отвозил меня домой на своем грузовике. Отвозил, и продолжал работать. Пару раз в месяц у меня был выходной день, и я мог съездить навестить родственников в Сан-Франциско. Ваня домой ездил не чаще. Раз в неделю его жена Катя привозила детей Лену и Илью посмотреть на отца (заодно привозила чистое белье).

Это была замечательная работа. Я понял основы капитализма. Как делать продукты, как работать с пользователями, как продавать. Про спрос и предложение. Про экономию и расходы.

Было много смешного.

Ваня – черногорец: по югославским меркам значит немного цыган, немного еврей. Едем в командировку в Индиану. Ваня добрый час ходит между конторами, сдающими машину в аренду, чтобы найти самую дешевую машину. Находит маленькую японскую (хотя едем в автомобильную компанию, и там неамериканским машинам не разрешают парковаться на основном паркинге; кроме того большой ящик с монитором – а мы всегда ездим с своими рабочими станциями – никуда не влезает и на заднем сидении полностью перекрывает весь обзор). «Сэкономили на машине, зато можем поесть хорошо» - и действительно, я ем первый в моей жизни стейк за 40 долларов… В гостинице не осталось номеров с двумя кроватями – ничего страшного, мы с ним спим в одной большой кровати… «Тебе нужны магнитные кассеты отправить клиентам обновление программы, за которую они заплатили по сто тысяч? Кассеты стоят десятку: обзвони клиентов и потребуй вернуть наши кассеты, на них написано, что они принадлежат нам. Тебе для разработки нужна новая рабочая станция за 50 тысяч? Не проблема, вот чековая книжка, покупай.»… Демонстрации продукта клиентам в Японии, когда Ваня понятия не имеет, как работать с новой версией, и я по телефону посреди ночи надиктовываю порядок действий за 10 минут до встречи с клиентом…

Ваня трудится по ночам, кодируя. По утрам я трачу полдня, чтобы понять, что он хотел написать, и переписываю заново. Любимейший кусок кода:

a = 1; b = 1;
for (x = 0; x < 2; x++) {
   dosomething (a, b, x);
   }
a = 1; b = 2;
for (x = 0; x < 2; x++) {
   dosomething (a, b, x);
   }

a = 1; b = 8;
for (x = 0; x < 2; x++) {
   dosomething (a, b, x);
   }
a = 2; b = 1;
for (x = 0; x < 2; x++) {
   dosomething (a, b, x);
   }
a = 2; b = 2;
for (x = 0; x < 2; x++) {
   dosomething (a, b, x);
   }

a = 8; b = 8;
for (x = 0; x < 2; x++) {
   dosomething (a, b, x);
   }


Ваня знает о существовании циклов, но он очень быстро печатает, и в совершенстве знает свой текстовый редактор :-)



Позже я привожу в компанию своих друзей и знакомых на работу прямо на следующий день после их перелета из Рима. Без всяких собеседований. Ване достаточно моего слова. Они приводят своих. В какой-то момент в компании несколько десятков минчан, москвичей, и прочих программистов говорящих по-русски.

Я становлюсь первым человеком, который потребовал от Вани нормальных часов, и демонстративно ухожу с работы в 6 каждый день (за исключением тех случаев, когда действительно надо, и тогда можно работать трое суток, с короткими перерывами на топчане в дальней комнате). Я первый человек, который работает над проектом из дома (к тому времени уже есть dial-up интернет, но все равно надо было перевезти Sun-4 домой): оказалось что работаешь таким образом намного больше, и счет за электричество набегает громадный.

А потом выясняется, что если в резюме не только абстрактные советские университеты и места работы, но и конкретная американская компания Силвако – то можно найти работу и в другом месте. И я ухожу из Силвако. И десятки людей, которые стали близкими друзьями, расходятся по разным компаниям и разъезжаются по стране.

А мой брат и сейчас, после двадцати четырех лет, работает все там же.

И вот вчера он мне сообщил, что Ваня, Dr Ivan Pesic, умер от рака.

R.I.P, Ваня. Без тебя моя жизнь была бы совсем другой. И не только карьера, но и круг общения, и, возможно, само отношение к жизни.
Subscribe
  • Post a new comment

    Error

    default userpic

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 11 comments