Firmware and Systems Software Engineering
structured path
to mastering the essentials!IF YOU INVESTED IN US IN THE PAST, PLEASE EMAIL US AT SUPPORT@PYJAMABRAH.COM AND WE WILL WORK ON AN OFFER FOR YOU. SEND THE DETAILS OF THE INVESTMENTS.
Embedded Systems Software Engineering includes writing firmware for microcontrollers and system software for application grade CPUs involving bootloaders, device trees and higher level operating systems.
While there are several resources available online. Each offers a narrow view of one entity of the several. We have created and organised courses, that will take you from Zero to Hero
in Firmware and Systems Software Engineering.
Bestseller Beginner Intermediate | Delivered by Piyush Itankar Mahmad Bharmal
(4.9) (24 ratings) 109 students
Last updated: 2 May 2025 | English | Quarterly and Yearly Access.
Course Includes
A Message from the instructor
What you Learn
Content List
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...
Low Level with Pyjama Brah! (Public Draft)
I am 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.
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.
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
ARM Cortex-M 101 - Introduction
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.
GNU Make and Automation
Make is a build automation tool that automatically updates files in your project based on their dependencies. It's primarily used for compiling source code, but can also be used to run other commands or perform tasks.
GNU Linker Script
This hands-on course dives into the details of writing linker scripts (based on GNU LD). Linker scripts are a must-have skill for firmware and systems engineers who have to deal with scenarios where the placement of various sections (code, data, etc) in the memory needs granular control. Engineers who work on Bootrom, Firmwares, Bootloaders, or otherwise are involved in lower-level systems code.
FreeRTOS - Teardown and Porting
Learn FreeRTOS kernel by tearing it down to it's bare minimum and doing a port for a new target from scratch. This includes booting the CPU from scratch and placing the code in memory manually.
Git and Gerrit - the collaboration kit
Git and Gerrit are pivotal tools in the software development industry, each serving distinct yet complementary roles that enhance collaboration, code quality, and workflow efficiency.
The ART of Interviewing
Organised collection of topics, projects and questions from the web that a Embedded Engineer should know and be able to reasons about.
ARM Cortex-A 101 - Introduction to the 64bit ARM CPUs
Introduction to ARM-A Class CPUs implementing the AARCH64 architecture.