About

This site is home to two self-directed courses aimed at getting genuinely good, in both theory and practice, at digital signal processing for embedded software / firmware engineering: a Mathematical & Theoretical Foundations track (a 20-section prerequisite spanning the core mathematics, digital and statistical signal processing, and digital image and audio processing) and a fully lab-based Embedded DSP: From the Bench to Real-Time Firmware course, where every idea is built on a breadboard, driven from a microcontroller, and measured on real instruments, plus worked proof sets and notes from the textbooks that underpin them.

I work full time in distributed systems and mobile device management. These courses are my hobby-outside-work project, built during weekends, likely over 1–2 years.

My academic background is a B.S. in EECS from UC Berkeley and an M.S. in Computer Science from Georgia Tech. At Berkeley, my EE coursework centered on signal processing, systems, random signals, and convex optimization, the direct foundations of the two courses here. The CS half of the EECS degree, like my Georgia Tech master’s, focused on artificial intelligence and machine learning, alongside computer networking, security, operating systems, algorithms, and compilers.

AI plays a deliberately limited and fully disclosed role here. The Course 2 lab write-ups and the Course 1 syllabus (their structure, summaries, and reading guides) are drafted with AI assistance so each page has a consistent structure to study from. The substance is mine: every math proof and exercise solution is worked by hand on paper first, then converted to LaTeX/KaTeX/MathJax using AI for typesetting only, and all code is written by me. The whole point is to solidify and revisit concepts from my undergrad years and to rigorously self-learn new ones, and that deep understanding only comes from producing the proofs and the code myself. Overuse of generative AI has been shown in studies to weaken exactly the kind of understanding I’m trying to build, which is why the reasoning and the implementation stay hand-done.