Embedded Software Development in C/C++
Course Information
Course Objective: to provide basic theoretical knowledge and pPractical skills necessary for developing embedded software in C/C++.
The training is conducted in a classroom format, in a practical lab at Tartu mnt. 18, Tallinn. Group size up to 6 people. All study materials are included in the course price. A laptop can be provided for the duration of the course if needed.
Target group:
This course is for you if you:
- are an aspiring embedded developer and want to learn professional firmware development in C/C++;
- are a C/C++ developer (desktop) and would like to move into microcontroller development;
- are an electronics or hardware engineer and need to write efficient firmware for your own devices;
- are an automation or industrial control engineer and are interested in developing control software for controllers;
- are a developer in another language and want to add low-level embedded development to your stack;
- are a student of a technical or electronics discipline and would like hands-on skills;
- are looking to enter embedded/IoT and aim to master an in-demand and growing field.
What you'll learn on this course:
Write firmware in C
Program microcontrollers in C++
Develop on STM32
Build connected devices on ESP32
Start in the Arduino IDE
Build projects with PlatformIO
Configure MCUs in STM32CubeIDE
Write code in VS Code
Connect peripherals over I2C / SPI
Flash and debug with ST-Link
Network devices for IoT (Wi-Fi / BLE)Requirements for Participants:
Learning Outcomes:
After completing the course, participants will:Learning Methods:
Total course volume: 180 academic hours, including 100 academic hours in the classroom (42 hours of practical work and 2 seminars totaling 8 hours)Assessment Criteria:
Learning outcomes are assessed based on independently completed practical work.Assessment Methods:
Successful completion of practical and homework tasks is marked as "passed".Course Completion Requirements:
To complete the course and receive a certificate, at least 75% of homework must be completed and passed.Additional Information:
General rules for organizing studies (in Estonian)Rules for ensuring study quality (in Estonian)
Course program
| Module | Main topics | Volume |
| 1. Introduction to Microcontrollers and Electronics |
|
8 ac/h |
| 2. Fundamentals of Programming in C |
|
16 acad. hrs |
| 3. Fundamentals of C++ for Microcontrollers |
|
14 acad. hrs |
| 4. Working with STM32, ESP32, RP2040, Teensy |
|
30 acad. hrs |
| 5. Debugging and Testing Embedded Systems |
|
14 acad. hrs |
| 6. Final Project |
|
16 acad. hrs |
Course Details
Course Schedule:20.07.2026 - 22.09.2026
17.08.2026 - 19.10.2026
07.09.2026 - 09.11.2026
Class Time:
Mon, Wed, Fri 17:45 - 21:00
Apply →We'll reply within 1 business day
Course Duration: 2 months
Format and Location:
Address: Tartu mnt. 18-53, Tallinn.

In-person training at our lab located at Tartu mnt. 18-53, Tallinn. Group size up to 6 people.
Language of Instruction: English
Price: 1967.21 EUR + VAT 24%
Total Course Volume: 180 acad. hrs
Includes:
- Classroom sessions: 100 acad. hrs (including 42 practical hrs and 2 seminars – 8 acad. hrs)
- Independent work: 80 acad. hrs
Instructors
Nikolai Barbanov
Qualification: Over 10 years of experience managing physical systems and automation — from manufacturing (Ericsson) to logistics and e-commerce. A hands-on practitioner and hobbyist in robotics and programming.Specialization: Design of controllable systems, automation of physical and virtual processes, orchestration of distributed components.
Teaching Experience: 10+ years in corporate operations, training, and consulting. Speaker at technical conferences, including PyCon Estonia (https://pycon.ee/).
Education: Master of Science in Physics, Lomonosov Moscow State University, 2015. Thesis focused on signal analysis from bottom pressure recorders used in the DART (Deep-ocean Assessment and Reporting of Tsunamis) system for early tsunami detection. The topic is directly related to sensor data processing and the architecture of distributed systems — the core foundation of this course.