Position: Middle/Senior Embedded Engineer
Company: Sigma Software
Category: C++
Experience required: 3y
English level: upper

Devices and machines get smarter day by day and find their way to all spheres of life and businesses of any size. Developing embedded software, which controls operation of such devices and machines, requires knowledge of hardware, specific skills, and ability to work under limited time and memory.

We are searching for an experienced Embedded Engineer to extend the team for our existing customers in automotive, smart city, and enterprise heat project areas.

If you have a strong analytical mindset, you are passionate about both hardware and software, and would like to work with the skillful team of professionals, then welcome to our department.

PROJECT

We are hiring for 3 projects with various needs and specifics:

1. We are developing world-class solutions in sustainable energy that help achieve the best concept for any type of property, whether it is an apartment block, an industrial building, a hotel, or a country house.
2. We are improving automotive braking systems.
3. We are working on a brand new smart city solution.

We are working with bare metal solutions and with Linux, or OS less solutions and covering big range of enterprise level technologies.

Technology Stack: C, CAN, FreeRTOS, Cortex M0, SPI, I2C, MQTT, RS485, MODBUS/ZigBee.

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:
- Strong in C and code quality
- Good in C++
- Experience in development of OS-less (bare metal) and RTOS-based solutions
- Knowledge of widely used platforms (ST, SiLabs, NXP, TI), interfaces and protocols (UART, I2C, SPI, ModBus, CAN, USB, Ethernet, etc.)
- Knowledge and practical experience in RTOS usage and IPC approaches
- Experience in debugging and troubleshooting solutions for embedded systems. It should include software debugging on real HW and debugging of HW issues
- Linux User Space development experience
- Knowledge of commonly used libraries (HALs, file system (FatFS, LittleFS), networking (lwIP or similar))
- At least Intermediate level of English
WOULD BE A PLUS:
- Experience in Embedded Linux (including developing drivers for Linux Kernel)
- Experience in networking: TCP, UDP, MQTT, TLS
- Experience in Bluetooth, ZigBee, WiFi, etc.
- Good background in digital and analogue electronics
- Knowledge of standards/guidelines for safety improvements (MISRA C/C++, ISO26262, etc.)