The LIBRARY!
first principles
, design solutions and control the world!Library is a collection of courses that will guide you on the fundamentals
and insights
you need to design and implement Embedded Systems based solutions!
Embedded Systems Software Engineering includes writing firmware
for micro-controllers and system software
for application grade CPUs involving boot-loaders, device trees and higher level operating systems.
Bestseller Beginner Intermediate | Delivered by Piyush Itankar Mahmad Bharmal
(4.9) 1052 students enrolled.
Last updated: 19 July 2025 | English | Monthly and Yearly Access.
includes
take a look at the teaching style
list of courses included
This offering is a collection of courses, each of which is deliberately designed to give you insights and hands on experience on critical topics. How these are to be pursued is presented as a flow chart below.Note: 
Every course the pyjamabrah team makes will be added to this collection. There will be no extra charge.
recommended learning flow
With respect to the flow-chart below, the courses have a deliberate structure, design and order of pursuit. Our recommended paths are as follows -
Ad-Hoc:
Course under this group don't have a dependency and can be pursued in any order. These are supposed to be light in terms of cognitive load and we recommend watching these while munching popcorn.Essentials:
This collection contains courses that are the foundation of Embedded Software Development. These focus on orienting and then mastering software concepts using the C Language.Firmware:
Courses in this collection are recommended if you work with microcontrollers. Focused on the ARM Cortex-M class of CPUs these courses focus on mastering the assembly, C and RTOS based programming of the controllers.System Software:
This track is recommended for those working with Application class CPU such as the ARM-A or RV64 based architecture. Courses focus on System Level components, Higher level OS (like Linux) and Base System Architecture level programming.Hardware:
The courses in this collection focus on introducing embedded software engineers to how hardware is designed. These are designed to be light on cognitive load and supposed to arm software engineers with the insights and imagination around how hardware operates. This should enable them to reason better and write clean software.Advance:
This collection will enable you to take control of the finer details like code/data placement in the memory, writing a build system from scratch etc. These are recommended for seniors who have to make memory, power and execution time related decisions.
You are free to follow a different flow if you know what you are looking for and doing...
what you will master through the journey
course contents and preview lectures ...
The list below is a complete list of courses, lectures, quizzes, code reviews, projects, notes etc available on the learning portal at the moment.This list is constantly update with new content every few days...
Roadmap and Career Options
This short course focuses on orienting the college graduates and those new to the industry on what the usual roles, responsibilities are and what opportunities they can expect.
Low Level with Pyjama Brah! (Public Draft)
We are writing a book to teach C by understanding the CPU/Memory programmers model, exploring the ISA for RISC-V, the assembly, writing baremetal firmware/driver, and ends with printing “Hello, World!” on the UART. The book covers lot more than just C. Things like Assembly, Makefile, GDB based Debugging, Linker Scripts, C, Driver Writing etc… The public draft is available for FREE for online reading. Table of contents is as follows -
The C Language
This course dives into the practical applications of the C language, emphasizing hands-on learning to solidify key concepts. Delivered in an engaging and unconventional style, the lessons go beyond theory, equipping you with the skills to apply C programming in real-world scenarios. By the end of the course, you’ll feel confident in your mastery of the C language, adept at using it alongside the tools and utilities professional C programmers rely on daily.
C Pointers
C pointers are crucial in Firmware and System Software (based on the C language) design. Linux, Unix, FreeRTOs, Zephyr, ThreadX etc kernels use C pointers heavily. This Course dives into the mental models and inner workings of pointers!
C - Mastering Bit Manipulation
A short course on how to think about and do bit manipulation in the C Language
Data Structures (in C)
A short course on understanding, implementing and using data structures in C.
ARM Cortex-M (101) - Understanding the Processor
An introductory course on the ARM Cortex-M CPUs. How to go about learning them.
ARM Cortex-M (102) - Scheduler Design using Assembly
Learn the assembly programming for ARM Cortex-M CPUs by writing a scheduler from scratch, without using any IDE, SDK or boiler plate code. Course is under development. Content will be added when it's ready.