Position: Middle Embedded Engineer
Company: Sigma Software
Category: C++
Experience required: 2y
English level: intermediate

**Responsibilities**

Design separate components, modules, classes, devices
Code, debug, document, and maintain portions of software and hardware
Perform different types of testing
Participate in estimation and planning sessions
Contribute to the development of technical project documentation and user documentation
Provide assistance to test engineers and support personnel in solving technical issues of software installation and its operation
Participate in conference calls and face-to-face meetings with the Customer and Customer partners
Comply with the best engineering practices, technical standards, and  quality criteria set forth on the project
Report status and progress according to the project and company demands
Spot current deficiencies in the development process, adopted procedures, and engineering practices, environment configurations, etc., and suggest improvements
Escalate technical issues to the Architect, Team Lead, and Project Manager
Improve your qualification within the areas of expertise at various training courses, seminars, and/or other educational organizations

**Requirements**
Expert in C, good in C++
Basic knowledge of digital/analogue electronics and electronic schematics understanding
Experience with ARM-based MCUs embedded software
Experience with cross-platform development, GCC knowledge, experience with Linker Scripts
Solid experience writing firmware for bare-metal and RTOS based systems
Good understanding of RTOS synchronization and communication primitives (Mutex, Semaphore, Message Queues, etc.)
Knowledge of MCU communication interfaces: UART, SPI, I2C, CAN
Basic experience with an oscilloscope, multimeters, digital signal analyzers, and other laboratory equipment
Experience with TCP/UDP network protocols: MQTT, HTTP(s), or others
At least Intermediate level of English
WOULD BE A PLUS:
Degree in Electrical Engineering, Electronics, Telecommunications, or equivalent
A systematic approach to problem solving, documentation, and testing
Knowledge of other programming languages or technology stacks
Experience in Linux Kernel
Experience in Yocto or Buildroot
Experience in UI/UX with Qt Designer
Experience with AWS, Azure, or other clouds
Experience with BT, BLE, WiFi, Lora, or other wireless protocols
MISRA standard knowledge
Experience with unit tests, documentation
Soldering skills
Experience in PCB routing