I am a Software Developer passionate about low-level programming, embedded systems, and Linux device driver development. I love breaking down complex hardware and kernel-level concepts into practical, easy-to-follow tutorials for the developer community.
I run MP Coding, a YouTube channel dedicated to bare-metal programming, Linux device drivers, and advanced software engineering concepts.
Check my projects & tutorials list below: Projects and Tutorials
When I'm not writing code or filming tutorials, I write comprehensive, step-by-step articles to help developers master core engineering principles.
π Read my latest deep-dives on Medium
- Languages Low-Level: C, Assembly
- Languages High-Level: C++, C#, Python, Rust, TypeScript
- Embedded Ecosystems: STM32, dsPIC, Renesas, NXP, AVR, Arduino, ESP32, Raspberry Pi, Radxa, ..
- Kernel Development: Linux Device Drivers, Device Trees, Subsystems (SPI/I2C), Synchronization (Spinlocks, Mutexes, Completions), ..
- Web Tech (Fun Side Projects): SignalR, React
- Data Base: SQL, SQLite, LDAP
- YouTube: MP Coding
- Medium: @madhawapolkotuwa
- GitHub: @madhawapolkotuwa
- Support My Work: Buy Me A Coffee
Feel free to explore my repositories, open an issue, or reach out if you want to collaborate on embedded software or Linux kernel projects!
| Project or repo | Video | Description | Technologies |
|---|---|---|---|
| π Linux Driver Development with Raspberry Pi | ![]() |
Linux Device Driver Development with Raspberry Pi - Full Tutorial Series | Linux Device Driver, C |
| π STM32F7 QSPI Flash Setup & Test | - | QSPI-Flash configuration on the STM32F7 & Tests | STM32, QSPI-Flash , C |
| π STM32F7 SDRAM: FMC Setup, Timing Calculations & Live Memory Test | ![]() |
Build, from a bare MCU, a working FMC/SDRAM read-write tests | STM32, SDRAM , C |
| π Arduino Bare-Metal Programming with C - No IDE | ![]() |
programming the Arduino Uno (ATmega328P) directly at the register level. no Arduino IDE, no Arduino core library | Arduino, AVR , C, Assembly |
| π dsPIC33 PWM π dsPIC33 RGB LED With PWM π dsPIC33 RGB LED with HSPWM |
![]() |
dsPIC33 PWM, Examples | dsPIC, PWM, C |
| π Synchronization Primitives in FreeRTOS | ![]() |
Synchronization Primitives in FreeRTOS (YouTube video series). | FreeRTOS, C, STM32 |
| π Qt App Drink Bar(Qt for MCU) | ![]() |
Qt for MCU with STM32 (Drink Bar). | Qt(QUL), Qml, C/C++, STM32 |
| π Qt App Drink Bar | ![]() |
Qt Qml Application (Drink Bar). | Qt, Qml, C++ |
| π LVGL STM32F4 UI Template | ![]() |
A starter UI project for STM32F4 MCUs using LVGL and SquareLine Studio. Great for embedded UI prototyping. | C, LVGL, STM32CubeIDE, SquareLineStudio |
| π External SDRAM on STM32 | ![]() |
how to correctly configure and use external SDRAM with STM32, using the STM32F429 Discovery board and the IS42S16400J-7 SDRAM chip. | C, STM32CubeIDE |
| π Getting Started with MicroPython on STM32 | ![]() |
how to setting up MicroPython on the STM32F4 Discovery (STM32F429I-DISCO) board. | MicroPython |
| π TouchGFX STM32 | ![]() |
how to create a simple GUI application using TouchGFX on the STM32F429 Discovery board. | C/C++, TouchGFX, STM32CubeIDE |
| π LVGL Custom UI on Raspberry Pi | ![]() |
building a custom E-Bike GUI on a Raspberry Pi, using LVGL and SquareLine Studio. | C, LVGL, SquareLineStudio |
| π Chromium Embedded Framework (CEF) Project on Windows 11 | ![]() |
example project for the Chromium Embedded Framework (CEF) on a Windows 11 PC. | CEF |
| π Build a Qt Application Using Visual Studio Code | ![]() |
process of setting up and building a Qt application using VS Code. | C++, Qt , Vs Code |
| π 2048 Game with SDL3 | ![]() |
A fun clone of the 2048 game built using SDL3 and C++. Cross-platform support included. | C++, SDL3 |
| π Real-Time Oscilloscope with SDL and ImGui | ![]() |
simple efficient real-time oscilloscope using SDL3 for rendering and Dear ImGui for the GUI controls. | C++, SDL3 , ImGui |
| π Tic Tac Toe Game with Dear ImGui | ![]() |
Tic Tac Toe game interface using the powerful Dear ImGui library. | C++, ImGui |
| π WPF Router Navigation System | ![]() |
A lightweight, MVVM-friendly router-based navigation framework for WPF applications. | C#, WPF, MVVM |
| π WPF Notification Service Library Nuget | ![]() |
powerful library to enhance WPF applications with customizable notifications. | C#, WPF, MVVM , NuGet |
| π WPF Loading Animation Nuget | ![]() |
Loading Animations Nuget package for WPF applications. | C#, WPF, MVVM , NuGet |
| π WPF Virtual Keyboard and Keypad Nuget | ![]() |
Virtual Keyboard and Keypad Nuget package for WPF applications. | C#, WPF, MVVM , NuGet |
| π Online TicTacToe Game with SignalR and React | ![]() |
online TicTacToe game from scratch using SignalR for real-time communication and React for the frontend interface. | C#, ASP.Net API , React , Typescript , SQL DB |
| π LDAP User Control Program with Asp net API & Angular | ![]() |
LDAP user management with our comprehensive tutorial on building a sophisticated LDAP User Control Program. | C#, ASP.Net API , Angular , LDAP DB |
| π PLC Real-Time Control & Monitor using Web Application (SLMP) (Mitsubishi PLC) | ![]() |
system to control Mitsubishi PLC using a web application and achieved real-time monitoring of the PLC data. | C#, ASP.Net API , Angular , SLMP |
























