Courses & Notes

UC Berkeley EECS coursework that maps to the firmware and EE work I want to do.

🧷
EE149 — Embedded Systems

Real-time scheduling, FreeRTOS, peripheral driver design, and time-triggered architectures. The course that maps most directly onto how I write firmware day-to-day.

Embedded · RTOS · Drivers · ISR design
EE113 — Power Electronics

Switching converters, inductor / capacitor sizing, gate drives, magnetics, and loss budgeting. The intuition behind every buck regulator and motor driver I touch.

Power · SMPS · Magnetics · Gate drive
🎛️
EE16B — Control & Signal Processing

State-space models, controllability/observability, eigenvalue placement, and discrete-time signal processing. What I lean on whenever I'm tuning a PI loop that won't settle.

Control · State-space · DSP
🔬
EE105 — Microelectronics

MOS device physics, op-amp topologies, biasing, and frequency response. Building blocks behind every sense-amp and analog front-end I work on.

Analog · Op-amps · Devices
📡
EE120 — Signals & Systems

CTFT / DTFT, sampling, stability, feedback. The intuition I lean on whenever I'm staring at a noisy ADC capture or a current loop that won't converge.

DSP · Fourier · Feedback
💻
CS61C — Computer Architecture

RISC-V assembly, pipelining, caches, and a Logisim CPU build. Helps when I'm reading a disassembly listing or reasoning about why an ISR is missing its deadline.

RISC-V · Architecture · Systems
🌐
CS168 — Networking

Distance-vector router with split-horizon / poison reverse, link up/down handling, and a TCP socket implementation in POX with retransmits and congestion control.

TCP/IP · Routing · Sockets
🧩
Self-driven embedded practice

Outside class: ESP32 / STM32 with FreeRTOS, drivers for I²C / SPI / CAN / TWAI, PCB bring-up, and sensor interfacing. The thread that ties most of my projects together.

Embedded · Firmware · Drivers · PCB