Position: C/C++ Embedded Linux Developer
Category: C++
English level: upper
Years of experience: 1.5


Had experience in developing and debugging software under different embedded platforms based on ARM.

Software:

STM32:
- Creating and debugging low level software drivers for different peripheral interfaces : SPI, I2C, UART.
- Writing software to bring-up different hardware modules such as: ethernet switch, temperature and proximity sensors, etc.
- Testing and researching possible approaches of implementing new hardware features.

Embedded Linux:
- Creating architecture of software from scratch
- Developing userspace applications which connect low-level(STM32) and high-level devices. 
Used technologies: 
   - Networking (JSON-RPC, SNMP, raw TCP/UDP socket programming, WebSockets)
   - C++14/17 STL (multithreading, smart pointers, lambda functions)
   - MySQL C API (to have communication with embedded database)

- Creating custom embedded linux distributions using Yocto Project. Writing and debugging images and recipes, adding new machines. Automating of image building using Jenkins.
- Writing and debugging bash scripts

Hardware :
- Discovering hardware bugs and fixing them
- Communicating with hardware engineer about design improvements
- Soldering components while hardware bring-up

Documentation :
- Writing technical documentation and reports
What i want :
- Developing C/C++ embedded applications under linux
- Good communication in team

What i do NOT want
- Constant hardware debugging or bring-up
- Confluence programming