Senior Embedded Software Engineer
Responsibilities:
- Development of new concepts and firmware in the area of embedded and (or) desktop software platforms
- Collaboration in the creation of software architectures from specification to implementation
- Creation of detailed designs as well as coding, mainly in C and C++
- Development of firmware components for single-core and multi-core systems
- Development of low level (peripheral HAL and drivers) software components
- Implementation and maintenance of configuration management
- Unit tests, integration tests and cooperation in system tests
- Creation of development documentation
- Collaboration with HW and QA teams over the entire life cycle
Must have:
- 5+ years of professional experience in embedded software development using C and/or C++.
- Professional understanding of micro-controllers and embedded systems;
- Professional knowledge of general software engineering concepts: design patterns, algorithms, data structures, complex software applications
- Professional knowledge of embedded software design principles;
- Professional experience in low level (peripheral HAL and drivers) software implementation
- Professional understanding of protocols such as TCP/IP, UDP, HTTP, TLS
- Experience with boot loaders, initialization code;
- Good knowledge of embedded hardware (ARM development boards, Single-Board Computers)
- Software development lifecycle experience and performance optimization
- Experience in profiling and analysis of systems using Linux/some RTOS.
- Familiarity with communication protocols such as Ethernet, CAN, LIN, SPI, I2C and etc.
- User knowledge of requirement management and revision management tools
- Knowledge of measurement instruments for testing and development (Oscilloscope, Multimeter, etc.)
- At least good technical English
Nice to have:
- Experience with boot loaders
- Experience with Yocto or similar build systems
Personal skills:
- Solid analytical skills
- Strong problem solving skills
- Excellent communication skills and proactive approach to work
- Good organizational skills and self-discipline