This paper describes the tools and techniques used in an e-learning course on embedded software development. This course is part of the EOLES (Electronics and Optics e-Learning for Embedded Systems) program aimed at students of the North-African countries where internet connection is not continuously stable. Originally the project was funded as an EU TEMPUS project and now it is self-supporting and coordinated by the University of Limoges in France (UNILIM). The project aims to provide a third year bachelor degree relying exclusively on blended learning, including e-learning and remote laboratories. While the complete EOLES course contains 15 TUs (Technical Units), this paper focusses on only one of them: TU-13, dealing with embedded software development, awarding for 6 ECTUs (European Transfer Credit Units). This TU-13 is steered by the University of Leuven in Belgium (KU Leuven), Faculty of Engineering Technology. Amongst others, the unit contains a course on the C programming language. The course can be followed online using streaming services, but a downloadable equivalent is available for those students not continuously having access to a stable internet connection. A typical programming course requires a lot of scaffolding, and thus special care was taken in providing the customized support while students are both online and offline. The main idea is that whilst students have the possibility to ask questions to their peers in an online forum, the instructor still manages this forum and validates the answers. If necessary, the instructor posts an accurate reply. Next to this forum, students get automated offline feedback on the exercises they make, based on automated software tests provided with default exercise templates running on their proper laptops. Students are requested to submit their solutions at regular time intervals. Although self-evaluation is available, validation of correctness of their exercises is still necessary. Finally, the paper discusses a correlation between the students passing all self-evaluation exercises (formative evaluations) and their results of on a written examination (summative evaluation) held at the end of the course.