Position: Senior Embedded Developer (C)
Company: Infopulse
Category: C++
Experience required: 3y
English level: intermediate

Infopulse welcomes talented professionals to join our team as a **Senior Embedded Developer (C)**. Our client is a Global Company that utilizes IoT, Big Data, and Bluetooth to drive innovation throughout their product range. Company deals with Firmware, Server, database, front end development, and mobile Apps. Dynamic environment using AGILE methodologies that promotes collaboration between different development teams. 
 
**Areas of Responsibility**
- Designing and developing features in a highly scalable environment to High Standards 
- Cooperating with product managers to design solution 
- Building for high volume platforms: linking millions of users worldwide at the same time 
- Get involved in recommending, evaluating and implementing the best solutions 
- Interacting in a cross-functional agile team you will be developing features end-to-end across the software stack and responsible for all non-functional capabilities. Help to define and drive strict development methodologies including code reuse, maintainability, testing and documentation
- Self-management skills, particularly in respect to prioritization and execution
- Detail-oriented individual with the ability to rapidly learn and take advantage of new concepts, business models, and technologies
- Have the ability to communicate technical concepts to non-technical people
- Creation and review of user stories and tasks within the Agile Development model
- Be innovative and enjoy working with emerging technology
- Help to define and drive development methodologies including code reuse, maintainability, testing and documentation 
- Strong verbal and written communication skills and autonomy are essential

**Qualifications**
- 5+ years C, Linux firmware application development experience required
- Communication protocols (SPI, I2C, MQTT)
- Proven experience in developing and debugging multi-threaded systems
- Understanding of UNIX/Linux operating systems and programming environments
- Strong coding skills with proven ability to write well documented, maintainable, and testable code
- A genuine passion and interest in technology and software development with a thorough knowledge of best practices and new technologies
 
**Will be an advantage**
- Linux Kernel and/or driver development 
- AGILE SCRUM work environment 
- Unit Test Driven development 
- Bluetooth classic or BLE development 
- Experience with GSM AT Commands / Modem integration 
- GPS/Positioning 
- MQTT / AWS
- CAN bus
- Development and debug of firmware such as u-boot 
- Can read and interpret system schematics 
- Strong debugging skills 
- Yocto Linux