Ну, погнали!
- Впевнене володіння мовами програмування C та C++;
Спочатку C 💻 і C++ за Y хвилин, потім ще полірнути «💻 за 21 день» — вже навіть більше, ніж треба! (Чому не 💻‽)
- Наявність досвід роботи з мікроконтролерами STM32, ESP32 та їх аналогами;
Такі мікроконтролери коштують копійки. Купуєш собі будь-який, пишеш «блималку» світлодіодом з Arduino 💻 (фреймворком) — і достатньо для бази. Далі по ходу розбиратися все одно ще. Хтось ще радить ESP-IDF 💻, але там пиздець — вже пʼятьма рядками коду не обійдешся. Зате C++23!
- Знання інтерфейсів UART, SPI, I2C, CAN, USB, PWM, ADC/DAC;
Почитати на вікі, що воно таке. Далі ШІ-шка допоможе.
- Наявність досвіду роботи з RTOS (FreeRTOS або аналоги);
FreeRTOS ⌛, Zephyr OS ⌛️ — зустрічаються найчастіше ніби. І в них майже нічого нема все одно, тут вам не лінукс. Головне, що можна запускати різні джоби на окремих ядрах. Можна глянути на ютубі «типця зі швейцарським акцентом», здається він розповідав.
- Навички низькорівневого програмування: регістри, переривання, DMA;
Тут нічого порадити не можу, бо дупля не ріжу (ну, тільки в теорії щось знаю). Але впевнений, що можна заскочити швидко — була б задача! (У пана Лютікова є приклад навіть, хоча й не надто низькорівневий).
- Наявність досвід роботи з інструментами Keil, STM32CubeIDE, VS Code + PlatformIO, CMake;
Keil робить μVision — схоже на стару віжуал студію; не думаю, що складно розібратися. STM32CubeIDE — це щось на базі Eclipse 💻. Цим хтось досі користується?
Мій вибір — це VS Code 💻 і PlatformIO 👽, там доволі ізічно все. Глянув перший же відос на ютубі, і норм.
CMake 🤮 не треба. Спочатку можна десь темплейт або приклад здибати, далі чисто його редагувати — багато розуму не треба. Користуюся C++ більше 20 років, досі CMake не вивчив. З копайлотом тим паче нах.
- Розуміння принципів роботи з протоколами Modbus, MQTT, TCP/IP, BLE, LoRa, Wi-Fi;
Modebus не тямлю.
MQTT зараз в кожному зібраному на колінці «розумному» будинку (окрім мого гг) — почитайте сторінку на вікі, а потім поставте собі Home Assistant погратися «на практиці». Якраз мікроконтролер з пункту вище стане в пригоді.
TCP/IP взагалі база. Ніколи не знаєш, коли це знання знадобиться. Я це все в універі вчив і ще жодного разу не пожалкував. Половину забув уже звісно. Як вчити — хз. Зараз хтось в коментарях може порадить книжки.
BLE, LoRa, Wi-Fi — попросити чатгпт розповісти про переваги й недоліки, а далі по ситуації. (Оновлення: а ще краще для початку почитати пана Шевцова звідси й нижче як загальне ознайомлення).
- Вміння читати електронні схеми, працювати з осцилографом і логічним аналізатором;
Нічого з цього не відстрілюю. Але другани розібралися, тож, схоже, там не rocket science.
- Впевнене користування Git (GitHub, GitLab);
Ненавиджу Git 💻 всім серцем, однак, почав користуватися ним без стресу після того, як прочитав Pro Git. GitHub 🐈 та GitLab 🦊 я хз, що там спецове знати. Хіба що збагнути, як PR/MR працюють.
Пан Лютіков чогось не згадав, що там у вакансії ще вказані QML (достатньо почитати доки 💻 і їхні ж приклади), БД (ще один приклад базових знань, які краще мати всім: хоча б про нормальні форми і SQL), Linux 🐧 (на жаль дійсно не завадить. Здавалося б, усі ці embedded-штуки мали б працювати й на macOS, але ні. Підтримка 🪟 нерідко навіть краща за 🍏). Ще Bash 💻 згадується, який я особисто не люблю й натомість користуюся Nushell 🆕, а також Python 💻 (може й MicroPython 🐍 теж?).
Не соромтеся написати мені, де я неправий! (Бо це для загальної користі ж).
P.S. Використав у цьому дописі 20% іконок зі свого пака. Коли ще така нагода випаде?