Skip to content
View ShayanSaed's full-sized avatar
🤿
Swimming in the ocean of computer engineering
🤿
Swimming in the ocean of computer engineering

Block or report ShayanSaed

Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
ShayanSaed/README.md

Hi, I'm Shayan Saed 👋

Embedded Software Engineer | STM32 & ARM Cortex-M

Typing SVG


🚀 About Me

I'm an engineer transitioning from web development into embedded software engineering, currently focused on STM32 microcontrollers and the ARM Cortex-M architecture. My background in full-stack web development gives me a strong foundation in software architecture, clean code practices, and problem-solving — which I'm now applying to bare-metal and RTOS-based firmware development.

  • 🔧 Currently working with STM32 (Cortex-M series) using STM32CubeIDE
  • 🏗️ Studying ARM Cortex-M architecture at a low level: operation modes, access levels, exception/interrupt handling, fault exceptions, SVC calls, and bit-banding
  • 📡 Building projects around peripherals (GPIO, UART, I2C, SPI, ADC, Timers/PWM) and interrupt-driven design
  • 🧠 Building RTOS internals from scratch (context switching, task stacks, preemptive scheduling) and exploring FreeRTOS, memory-constrained programming, and low-level debugging
  • 🌱 Background in JavaScript / TypeScript / React — bringing solid software engineering discipline into embedded work

🛠️ Embedded Tech Stack

Tools & Environment: STM32CubeIDE · STM32CubeMX · CubeProgrammer · ST-Link · Logic Analyzer · Oscilloscope · Keil / GCC ARM Toolchain

Web Background (previous stack): React.js, Next.js, Node.js, TypeScript, Express.js


📌 Featured Projects

Project Description Stack
ARM-Cortex-M-Preemptive-Scheduler A bare-metal preemptive task scheduler built from scratch on STM32F411, implementing context switching, stack initialization, and SysTick/PendSV-driven task management C, Assembly, STM32, RTOS Internals
ARM-Cortex-M-Programming Deep-dive into ARM Cortex-M architecture: operation modes, access levels, stack pointer, bit-banding, interrupt priority, exception entry/exit, fault handling, and SVC calls C, Assembly, ARM Cortex-M
Embedded-C-Programming Embedded C programming & firmware development on STM32F411CEU6 using STM32CubeIDE C, Assembly
IoT-Environmental-Monitoring-System Cloud-connected ESP8266 system for CO gas & environmental monitoring with OLED UI and remote alerts C++, IoT, Thinger.io
OLED-Menu ESP8266-based OLED menu system covering button debouncing and embedded UI logic C++

📫 Let's Connect

I'm always open to discussing embedded systems, firmware development, or collaborating on open-source hardware/software projects.

LinkedIn · Telegram · Dev.to · Email

Pinned Loading

  1. ARM-Cortex-M-Preemptive-Scheduler ARM-Cortex-M-Preemptive-Scheduler Public

    A bare-metal preemptive task scheduler for ARM Cortex-M microcontrollers, built from scratch using SysTick and PendSV for context switching — no RTOS dependency. Developed and tested on the STM32F4…

    Assembly 1

  2. ARM-Cortex-M-Programming ARM-Cortex-M-Programming Public

    Bare-metal exercises for mastering the ARM Cortex-M4 core architecture on the STM32F411CEU6 microcontroller — covering operation modes, privilege levels, the T-bit, bit-banding, stack pointer manag…

    Assembly 1

  3. Embedded-C-Programming Embedded-C-Programming Public

    Embedded C programming and microcontroller firmware development, featuring STM32F411CEU6 projects built with STM32CubeIDE alongside host-side C applications.

    Assembly

  4. IoT-Environmental-Monitoring-System IoT-Environmental-Monitoring-System Public

    Cloud-connected ESP8266 IoT gas monitoring system with MQ-9 CO sensing, DHT22 environmental data, OLED UI, remote threshold control, and automated email alerts via Thinger.io.

    C++ 1