О работе в японской (въетнамской) компании 27
По традиции собирался в начале воткнуть 7 мегабайтную гифку, но почему-то она не загружается. С картинками тоже непонятная ерунда, кое как одну картинку удалось загрузить, остальные не получается.
Пока писал выяснилось, что материала накопилось слишком много для одного поста, поэтому в этом посте больше опишу общее положение дел, а в следующем, если вам будет интересно, уже поведение и процесс работы. Там будут страсти, интриги, обманы и прочее.
В октябре 2024 года в результате сокращения штата я был уволен из игровой компании. Продажи были плохими, поэтому топменеджеры решили перенести разработку на корейский аутсорс и уволили всех программистов. 8 месяцев пытался найти работу в Токио, но всё никак не удавалось. До февраля настоящих вакансий вообще практически не было, да ещё прошли массовые увольнения в крупных компаниях типа Мордокниги, Line, Nissan. С марта вакансий стало больше, но на 1 вакансию было по 200 откликов, поэтому было было сложно.
В итоге отправил резюме по вакансии от центра занятости. Компания оказалась вьетнамской аутсорсинговой компанией в Токио. Однако они представили мне другую вьетнамскую компанию в пригороде Токио, которая занимается разработками Искусственного Интеллекта (ИИ) для заводов, в частности для визуальной проверки изделий на наличие дефектов. То есть на конвейере едет изделие, камеры его фотографируют, и программа либо с помощью ИИ, либо другими алгоритмами должна обработать изображение и определить, есть ли там дефекты и какие.
Руководитель компании - вьетнамец. Бывший профессор Токийского университета, занимался ИИ. Большинство работников - вьетнамцы. Так же есть дочернее отделение компании во Вьетнаме в городе Ханой, где работают только вьетнамцы. Есть несколько японцев, но они либо на фрилансе, либо иногда сдельно выполняют какие-то работы.
На собеседовании он задавал странные вопросы для собеседования с программистом.
-Р. Для этой работы понадобится читать код и понимать, что там написано. Ты справишься с этим?
-Я. ..? Это же основная работа программиста. Я постоянно на работе читал код и разбирался, что там написано.
-Р. Смотри. (показывает кусок кода). Ты можешь это прочитать и понять, что там происходит?
-Я. ..? Да...
-Р. А ещё надо будет рисовать диаграммы, чтобы объяснить функционал программы. Ты сможешь так сделать?
-Я. Да, мне для документации приходилось рисовать диаграммы. UML?
-Р. Нет, просто в офисных программах. Они не такие изящные, чтобы делать в UML.
-Я. Да, я смогу сделать диаграммы.
-Р. А ещё надо будет открывать исходный код программы, ставить там брейкпоинты, запускать программу и внимательно смотреть, что там в программе происходит. Ты можешь так делать?
-Я. ..? Да, это же и есть работа программиста.
Для тех, кто не понимает моё недоумение объясню на примере. Вы приходите к парикмахеру и говорите ему, что вам нужна какая-то причёска. Для этого надо брать в руки ножницы и резать волосы. Может ли профессиональный парикмахер резать ножницами волосы? А может ли он пользоваться тримером?
Так же на собеседовании мы обсудили зарплату. Я сообщил, какую зарплату я бы хотел получать, но так как я давно сижу без работы допустил возможность торга. Я сбросил около четверти от первоначально названной зарплаты, но руководителя до сих пор не устраивала получившаяся сумма, и он попросил обосновать. Я обосновал это тем, что в среднем по рынку труда низкая планка зарплаты такая + инфляция за последние годы. Вроде, его это обоснование устроило, однако позже на финальном собеседовании он заявил что их инженеры получают меньше, поэтому ещё больше срезал зарплату, но желаемую мной сумму он компенсирует за счёт полугодовых премий. Я выразил сомнение на счёт премий, так как после Ковида ни один работодатель мне не выплачивал полугодовые премии, мол, финансовая ситуация сейчас тяжёлая, но он с уверенностью говорил, что премия обязательно будет. Низкую же зарплату он мотивировал тем, что я буду заниматься проектом на С++, а так как я в работе до этого не использовал С++ и не работал в компаниях занимающимися ИИ и обработкой изображений, значит у меня опыта 0 и меня надо сначала учить. То, что С++ я 5 лет использовал в институте, а на работе в основном работал с C# и Java, которые подобны С++ только со своими особенностями - это не считается. Ладно, работы всё равно никакой нет, либо туда, либо на стройку, пришлось согласиться на такие условия.
Руководитель компании сказал, что я смогу приступить к работе только через месяц. Мол, им надо подготовиться. Как они готовились я так и не понял, потому-что когда я в первый день пришёл на работу, ко мне без конца бегал молодой инженер настраивать на моём компьютере что-нибудь. Время от времени удалённо подключался другой инженер из Ханой и настраивал то, что не получалось настроить у того инженера. Так продолжалось почти 3 дня.
Руководитель велел молодому инженеру ввести меня в курс дела чем мне предстоит заниматься. Молодой инженер подготовил презентацию в Power Point, в которой нарисовал диаграмму что происходит в программе. Там было 3 почти одинаковых диаграммы, описывающую какую-то клиент-серверную архитектуру, как-то в каком-то формате передающую данные. Как она передаёт данные, что вообще делает, и чем принципиально друг от друга отличаются диаграммы он так и не смог ничего объяснить, но зато подробно рассказывал какие файлы и папки в проекте есть - абсолютно бесполезная информация.
Когда руководитель спросил, что я понял из его объяснения и попросил рассказать ему, я, разумеется, ничего объяснить не смог, на что получил упрёк, мол этот же парень мне только-что всё объяснил. После этого руководитель сам сел переделывать диаграмму, сам всё объяснил и всё оказалось гораздо проще. Программа, написанная на С++, создаёт файл со списком картинок. Позже программа, сделанная в MATLAB, в бесконечном цикле проверяет наличие этого файла, потом берёт картинки, обрабатывает их и создаёт новый файл с результатами вычислений. Тем временем программа на С++ в бесконечном цикле ожидает появление файла с результатами и продолжает обработку. Потом переходит к следующим картинкам. Моя же задача - интегрировать готовую программу, которая заместит обработку в MATLAB с помощью CUDA (процессоров видеокарт NVIDIA), и за счёт того, что ПО перестанет возиться с записью и чтением файлов, и весь процесс будет проходить в одной программе, увеличится скорость обработки. Таким образом проходит инспекция кремниевых пластин (вафель), из которых делают чипы.
В один из дней мы через Zoom провели первое совещание с клиентом. Клиент - завод, которые производит оборудование для инспекций кремниевых пластин, а так же и оптики для фотоаппаратов. Со стороны клиента были предположительно руководитель завода и старший инженер. С нашей стороны - Руководитель, я и фрилансер японец, который занимается документированием совещаний. На совещании клиент рассказал, что этому проекту более 20 лет. Проект был сделан ужасно, поэтому попросил нашу компанию помимо интеграции CUDA ещё и привести его в порядок. Руководитель же в свою очередь ещё и пообещал прокомментировать все функции по стандартам и нарисовать диаграммы всех процессов.
По началу всё шло следующим образом. Я изучал архитектуру программы в общем, куда можно встроить новые функции и как передавать данные. Каждые 2 часа ко мне подходил руководитель и спрашивал есть ли у меня какие-нибудь вопросы, что я делаю, что я собираюсь делать и как именно я собираюсь это делать. По-началу на вопросы он реагировал позитивно, но где-то к концу недели позитив сдулся, и мои вопросы стали "плохими". Начались упрёки "Почему ты вообще мне задаёшь такие вопросы? Задавай только "хорошие" вопросы!". Друг-исследователь объяснил такое поведение тем, что профессор хотел повыпендриваться тем, какой он умный, а я задавал слишком сложные вопросы на которые он не мог ответить, тем самым ставя его в неловкое положение. В половине случаев я мог бы сам найти ответы на свои вопросы, но я поздно догадался что Руководитель на самом деле вообще не любит когда его о чём-то спрашивают, а он ещё и при этом каждые 2 часа сам спрашивал есть ли у меня вопросы. Позже я ему сказал, что лучше задавать плохие вопросы чем вообще бояться что-либо спросить, на что он ответил, что эти мудрые слова не связаны с данным контекстом. Только к 3 недели Руководитель наконец-то познакомил меня с тимлидом из Ханой, у которого не было проблем с вопросами, и работать стало немного проще, а Руководитель перестал меня дёргать каждые 2 часа.
В распоряжении компании есть аналог GitHub и FTP сервер, но ими практически не пользуются. Изначально проект находился на компьютере, на котором старший инженер клиента объяснял (до меня) как с ним работать. Молодой парень с флешкой копировал и переносил этот проект на другие компьютеры, в том числе и мой. Документацию и прочее перемещали тоже при помощи флешки. Время от времени возникали ситуации, когда молодой парень мешал мне работать, потому-что ему нужны были какие-то файлы с моего компьютера скинуть на флешку. Тимлид тоже почему-то не любит пользоваться Git, предпочитая удалённо подключаться к моему компьютеру и что-то проверять в коде программы непосредственно на нём. Всё же мне удалось уговорить Руководителя перенести проект в Git, но опять же с нюансами. Так же у меня сложилось впечатление о том, что кроме меня Git никто больше не пользуется.
Такое поведение Руководитель объяснил тем, что у них маленький коллектив, а над проектами работают очень маленькие команды, поэтому нет необходимости всё переносить в Git. Так же руководитель по-началу запрещал вообще создавать в Git новые ветки, оставляя только главную, потому-что он не хочет плодить в Git много разных версий, в которых легко запутаться. При этом то, что разные версии проектов хранятся на локальных компьютерах, и он сам в них постоянно путается - это его устраивало.
Первые пару месяцев Руководитель в случайное время мог в случайное время подойти и спросить, что я сделал за последний период времени. Брал мою мышку, тыкал по вкладкам, менял масштаб, двигал разделители, проверял код. На моё возражение, что он может это проверить на своём компьютере в коммитах Git он ответил "Это моё требование, мне так удобнее". После моей претензии о том, что он своими действиями он наводит бардак на моём рабочем месте, всё же постепенно он стал проверять мою работу в коммитах Git. Позже его удалось убедить и держать различные версии проектов в разных ветках Git.
Несмотря на то, что старший инженер клиента - адекватный, он уже предпенсионного возраста, поэтому не умеет пользоваться Git. 20 лет назад у них в команде были определённые правила разработки, которые сейчас выглядят плохо. Например, когда их программисты вносили изменения в код, они не удаляли уже не нужный код, а помечали как комментарии. То есть код всё ещё есть в программе, но программа его не выполняет. Поскольку проект большой, времени прошло много, такая манера наплодила огромное количество мусорного кода. Помимо этого ещё были фишки типа if (0), которые по сути делали то же самое. К большинству изменений ещё прилагались комментарии с датами и именем того, кто сделал эти изменения. Сейчас историю изменений удобно вести в Git, но у клиента инженеры им пользоваться не умеют.
Первым делом после внедрения CUDA я решил удалить весь мусорный код. Но тут есть нюанс. Несмотря на то, что старший инженер клиента явно дал добро удалять весь этот мусор, Руководитель велел мне сделать презентацию со скриншотами всех кусков кода которые собираюсь удалить. Он это мотивировал тем, что японцы любят советоваться, и каждое изменение надо согласовать с клиентом отдельно. Потом мы пойдём к клиенту и по каждому сегменту спросим, можно ли его удалить и причину, почему этот код больше не нужен. В итоге я создал презентацию на 200 слайдов. 7 дней я делал презентацию, 2 дня (с обеда и до вечера) мы совещались с клиентом по каждому комментарию, и только 1 день ушёл на реально удаление мусорного кода. Но просто так удалять нельзя. Надо было добавить в код программы к каждому удалению комментарий, почему код стал ненужным, и комментарий с датой и моим именем, когда было сделано изменение.
По скольку комментарий с объяснением причины почему код стал ненужным был добавлен, а сам ненужный код удалён, в коде программы появилось множество комментариев вообще без контекста. Кроме того, из-за того, что при каждом удалении надо было добавлять 2 строки комментариев, удалять по 1 строке мусорного кода вообще не было смысла. Я показал это Руководителя, спросил нахрен вообще так делать, но он по-началу пытался подобрать причину, а в итоге сказал "Пусть хоть это и выглядит тупо, но всё равно делай так." И так по любым изменениям в коде программы. Старшему инженеру клиента тоже не понравилась эта херня, но я ему объяснил, что это требования Руководителя.
В компании весьма строгие правила. Например, столы работников всегда обязаны выглядеть чисто и опрятно. Если что-то писал в тетради и оставил её открытой, либо просто не ровно положил на своём столе - это считается нарушением, и руководитель сделает замечание, либо сфотографирует стол, отправит фотографию своей помощнице в Ханой, и та пришлёт пришлёт по электронной почте вежливое замечание о том, что рабочее место всегда должно быть опрятным. Так же если что-то писал ручкой с выдвижным стержнем, нельзя оставлять выдвинутый стержень. Ещё на рабочем столе в конце дня не должно быть вообще ни одной личной вещи. Упаковка влажных салфеток, которую я взял со склада, тоже оказалась личной вещью, за что мне было сделано замечание. То есть ничего вообще кроме компьютера на рабочем месте быть не должно. У самого же Руководителя на столе всегда 2 кейса с беспроводными наушниками, несколько бумажных блоков с заметками, лупа и иногда кружка, иногда с недопитым кофе.
В рабочее время вообще нельзя пользоваться личным телефоном. По-началу можно было только слушать музыку, потом запретил. Работники постоянно должны быть сфокусированы на работе, и если Руководителю хотя бы покажется, что работник не сфокусирован, сделает замечание, чтобы тот возвращался к работе. В рабочее время нельзя заниматься личными делами. То, что японец-фрилансер может сделать перерыв и минут на 20 отойти от компьютера - это нормально. То, что Руководитель посреди рабочего дня может позвонить в кабельную компанию решить какие-то вопросы по подключению телевидения - тоже нормально. Во время совещания с клиентом руководитель на своём ноуте открывает сайт мониторинга домашнего электроснабжения и что-то там проверять - это другое. Позже правила ужесточились, и каждый работник в рабочее время обязан записывать время и причину использования личного телефона, если это было необходимо. Даже если поехал на совещание к клиенту, если хочешь посмотреть гуглокарты, должен записать время и причину использования личного телефона.
Офис запрещено покидать по личным мотивам. Сходить в туалет или налить кофе можно, но есть нюансы. Сначала Руководитель сказал, что до 10 минут сходить в туалет можно, однако в один день он предъявил мне претензию, мол почему я долго отсутствовал на рабочем месте, ведь чтобы сходить в туалет достаточно 5 минут. Позже правила ужесточились, рядом с дверью повесили камеру следить кто когда зашёл и вышел из офиса, а каждый работник обязан записывать время, когда тот выходил из офиса и по какой причине. Время проведённое в туалете Руководитель назвал временем украденным у компании. В новых правилах это формулировалось как "Запрещено злоупотреблять временем проведённым в туалете и отлынивать от работы".
Если в офисе никого нет - обязательно надо выключать свет. Даже если идёшь в туалет. Если уходишь на обед - выключай компьютер. По окончанию рабочего дня надо выключить компьютер, выдернуть из розетки и выключить рубильник в щитке электропитания. Ещё был какой-то прикол когда надо было вставлять специальные заглушки в HDMI порты, чтобы они тоже электричество не тратили, однако откуда взяться электричеству в абсолютно обесточенном компьютере никто объяснить не смог. Руководитель это объяснил стремлением сохранить окружающую среду.
Эти правила Руководитель объяснил словами "Это мои требования". К безопасности, как например в кредитной компании, или к качеству работы это отношения не имеет.
В начале дня в чате надо вкратце написать о своих планах на день. В конце дня отчитаться о выполнении этих планов. Так же в Redmine в соответствующей задаче надо отчитаться что было сделано, какая документация была создана (вся документация ведётся в презентациях PowerPoint, при чём с кучей скриншотов, стрелочек и прочей мишурой), и какие коммиты в Git сделаны. Коммиты обязательно надо делать в конце дня, если есть любые изменения. В конце недели надо заполнять недельный отчёт в Excel и рассылать его Руководителю и клиенту. В конце месяца делать PowerPoint презентацию о проделанной работе за месяц и тоже рассылать.
Испытательный срок в компании длится 3 месяца. Ближе к концу испытательного срока Руководитель заявил, что ему предстоит оценить мою работу и решить, буду ли я дальше работать в этой компании или нет. И это при том, что каждый день в конце дня он сам спрашивал, что я сегодня сделал, и проверяет отчёты. Каждый день он говорил, что всё хорошо, но в тот день он почему-то мялся и неуверенно говорил, что ему надо внимательно рассмотреть и оценить мою работу.
После выходных Руководитель был нервозен. Сначала объявил об ужесточении правил, в которых он даже вписал то, что он не обязан отвечать на вопросы работников и ничего не будет разъяснять вообще. Позже позвал меня на совещание вместе с менеджером-японцем, который вроде-как является представителем холдинга и время от времени по каким-то важным организационным делам приходит в офис, и молодым инженером в качестве секретаря. Прошу прощение за свой плохой французский, можете поправить меня если ошибусь. На совещании он устроил мне La Propizdon.
Во-первых, внезапно заявил, что всё, что я делал эти 3 месяца - полная херня. Он специально выбрал самые простые задачки, где я добавлял комментарии в коде, и заявил, что всё это - очень низкий уровень сложности, поэтому я все эти месяцы занимался малозначительной ерундой. То, что эту работу всё равно надо было делать, он пропустил мимо ушей.
Во-вторых, мне надо было заниматься документацией, а я всё это время занимался только рефакторингом (приводил код в нормальный вид), и это надо было делать в 8 раз быстрее. То, что надо было заниматься документацией, не сказал мне ни Руководитель, ни клиент, вообще никто. В том, что я этого не знал, Руководитель обвинил меня, мол я сам должен был у кого-то спросить и узнать.
В-третьих, я очень медленно работаю по сравнению с другими инженерами. Например, когда он поручил мне настроить оригинальный (без изменений) проект и подготовить инструкцию как настроить и запустить его, я сказал, что на это мне потребуется полтора дня, хотя молодой инженер после объяснения клиента справился с этим за час. Я исходил из соображений, что час буду его качать и разархивировывать, 3 часа и, возможно, более настраивать и решать возникающие проблемы (в прошлый раз у тимлида это заняло примерно 3 часа), и где-то пол-дня подробно описывать процесс в инструкции. Презентация же молодого инженера в первые дни знакомства с проектом вообще была ни о чём.
В-четвёртых, клиент на меня жалуется. Всё это время я общался только со старшим инженером, и когда я ему написал, он был удивлён тому, что от них ко мне есть какие-то жалобы.
В-пятых, я постоянно нарушаю правила компании, а именно у меня иногда неопрятный стол и я долго сижу в туалете - покидаю офис. Так же я не сосредоточен на работе (Руководитель это сам видел, но как именно не сосредоточен он объяснять не собирается).
В итоге после совещания решили, сейчас я не удовлетворяю высоким стандартам компании (которая платит мне как студенту), и если я и дальше хочу продолжать у них работать мне надо приложить усилия. Решили, что будут по месяцу продлять мне испытательный срок, и оценивать мои старания. Я работу стал искать со второй недели после того как устроился, и пока не нашёл другого работодателя, поэтому согласился на эти условия. Однако через пару дней Руководитель неуверенно заминаясь сообщил мне, что клиент очень сильно мной недоволен и велел меня уволить, поэтому он не будет продлять мой испытательный срок.
На этом пока всё.
Всю серию постов можно почитать здесь https://pikabu.ru/@robesh/saved/1024760
Предыдущий пост О работе в японской компании 26
Телеграм канал со всякой мелочью https://t.me/jpinmyeyes
YouTube архив видео https://www.youtube.com/channel/UCxFhtlDFwVC4zEBo76Dr__Q

Эмиграция, адаптация, жизнь
873 поста7K подписчиков
Правила сообщества
Уведомления о постах могут отправляться в тг канал . В сообществе ожидаются подробные истории интеграции и опыта переезда в другие страны в текстовом формате. Возможен бан за откровенную рекламу, провокации, переход на личности или агрессию, а также за сочинения, сгенерированные компьютером с помощью языковых моделей. Пользуемся здравым смыслом, в спорных случаях слово за админом.