Да, шинная компания, которая производит кучу крутых автомобильных технологий!

После бесчисленных изменений и отправки моего резюме я теперь штатный инженер-программист в Continental Automotive Singapore. Да, вы правильно прочитали. 6 месяцев назад я совершил часовой перелет из Малайзии в Сингапур специально для этой роли, приземлился в ослепительном аэропорту Чанги, и к тому времени, когда вы читаете это, я уже устроился в своей комнате площадью 150 квадратных футов с чашкой кофе на моем столе, одетый в мою серую толстовку с капюшоном, радостно кодирующий низкоуровневый код C на механической клавиатуре с синим переключателем.

Хромой.

Прошла уже неделя 2023 года, и так много нужно обновить как с личной, так и с профессиональной точки зрения. Позвольте мне ввести вас в курс дела.

Как сказал мой друг, до 2023 года!

6 месяцев назад я никогда не думал, что возьму на себя такую ​​роль, даже будучи выпускником инженера-мехатроника, главным образом потому, что я никогда не был хорош во встроенных системах. Да, я знаю, как программировать, и я разрабатываю игры, когда у меня есть свободное время, но мне никогда не приходило в голову, что я мог бы заниматься этим полный рабочий день, особенно когда я накопил некоторый соответствующий опыт во время стажировки в Western Digital. в КЛ два года назад. В то время меня особо не привлекали встроенные системы, хотя путешествие было плодотворным благодаря тем, кто вмешался, чтобы помочь, и в конце концов я принял решение уйти из этой области. Год спустя меня видели в другой компании в другой отрасли, где я работал над системами искусственного интеллекта, хотя и программировал на ноутбуке.

В 2022 году я сделал смелый шаг, как только нажал кнопку «Отправить» в письме. В голове пронеслись вспышки воспоминаний о прошедшей стажировке и как ни странно я придал ей какие-то мысли. Может быть, я мог бы еще раз попробовать и на этот раз отнестись к этому серьезно, чтобы улучшить свое понимание встраиваемых систем. Плюс в автомобильной промышленности. Почему, спросите вы?

Какая-то предыстория. Моя предыстория.

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

Перенесемся в мой первый день в Continental Automotive Singapore. Мне дали задание провести тест одного из наших продуктов, чего я никогда раньше не делал, не говоря уже о том, что я был ужасно незнаком даже с правильной настройкой и процессами тестирования. Я всегда буду помнить чувство новичка, и мысль о том, чтобы обратиться за помощью, всегда нервирует. Излишне говорить, что мой руководитель и команда сделали процесс адаптации очень приятным и терпеливо подготавливали меня к выполнению необходимых задач, показывая мне НЕ шаги для их выполнения, а подход к ним.

Сегодня, после 6-месячного периода, который казался годом, я многое узнал о процессе написания хорошего и безопасного программного обеспечения для автомобильной техники, особенно для решений для дисплеев. На данный момент, я уверен, вы в курсе. Давайте начнем.

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

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

Ни одно изменение кода не будет совершенным, пока оно не будет сделано и протестировано. Тем не менее, идеального репозитория кода не существует, даже если все тесты завершены. И с большим вниманием мы должны смотреть на то, как мы тестируем наши системы — и эта часть, безусловно, мой любимый процесс. Вы когда-нибудь обнаруживали возможную ошибку кода из-за изменения кода вашим коллегой, и вы тайно проверяли его, чтобы увидеть, не была ли фиксация, которая сломала весь проект? Уверяю вас, тестеры, должно быть, любят наслаждаться этим недолгим чувством, только чтобы на следующее утро им ответили холодным текстом, указывающим на то, что шаги теста ошибочны. Короче говоря, как бы прекрасно ни звучало написание функционального кода, написание тестов, устанавливающих печать на функциональном коде, столь же увлекательно. Я даже начал писать тесты качества для своих игр! Извините, игроки Двенадцати этажей и Ночи в Клоунвилле…

Мне нужна дополнительная часть, чтобы собрать мою головоломку, когда я увижу более широкую картину того, как все работает.

Еще одна увлекательная сторона работы заключается в том, что я общаюсь не только с людьми, занимающимися программным обеспечением, но и с механическими и электрическими/электронными установками. Для некоторых это вишенка на вершине, но мне нужна дополнительная часть, чтобы завершить мою головоломку, когда я увижу более широкую картину того, как все работает. Я предполагаю, что командная работа, которую мы показываем здесь во время разработки, в конечном итоге определяет, каким будет пользовательский опыт (UX) в наших продуктах. Приветствуем лучшую командную работу!

Теперь, когда мы все на одной волне, на дворе 2023 год, и мы приступаем к решению некоторых сложных задач по налогообложению, приближаясь к завершению проекта. Также можно с уверенностью сказать, что я очень многому научился и чувствую себя комфортно, делясь идеями с командой. Ближайшие недели и месяцы могут быть изо дня в день заполнены пугающими и утомительными задачами, но я уверен, что найдутся дни, когда я буду ломать голову в поисках решений.

Я надеюсь, что через 6 месяцев в статье я смогу вспомнить этот опыт с другой точки зрения и по-прежнему гордиться им.

Но… есть две стороны медали!

С другой стороны, я уверен, что вы готовы услышать другую сторону истории как разработчик встроенного программного обеспечения, поэтому обязательно подпишитесь, и я дам вам знать, когда она выйдет!

Между тем, обязательно ознакомьтесь с другими моими статьями, в которых рассказывается о работе с Raspberry Pi и технологиях компьютерного зрения!





Или, если вы заинтересованы в разработке игр, я тоже пишу, основываясь на своем опыте!



Как вы, как разработчик игр, объясняете понятие «удовольствие?
Прежде чем мы приступим к пониманию этих двух аспектов, я усвоил из книги Искусство игрового дизайна следующее: …medium.com»