About this site
This site holds the interactive textbooks for three modules that I teach in the School of Electronic Engineering at Dublin City University. Each book is written in the open while the module runs, so pages are added and revised during the semester. If you find an error or have a suggestion, please use the Submit Errata & Suggestions link in the menu, or the link at the bottom of every page.
The books
Section titled “The books”- Edge Programming (EEN1097) covers modern C++ and Rust for embedded and edge devices: object-oriented design, the STL, Git, threads, networking, GUIs and Rust on the ESP32.
- Digital & Analogue Electronics (EEN1022) runs from number systems and building circuits, through analogue devices, Boolean logic, combinational and sequential circuits, to where analogue meets digital.
- Connected Embedded Systems (EEN1071) brings the two together across a network: Linux gateways, Zephyr microcontrollers, Devicetree, GPIO, buses, real-time control, low power, wireless and IoT protocols. Its chapters are released one at a time as they are completed.
My earlier books, Exploring Raspberry Pi and Exploring BeagleBone, are published by Wiley. Parts of both are revised and extended here.
Why the books are interactive
Section titled “Why the books are interactive”Most pages include small interactive figures and labs: circuits you can drive, code you can step through, and simulations with the settings exposed. The aim is that you read a short section, then test the claim it makes, and find out what happens when you change a value. Many labs have a full screen presentation mode, because I also use them in lectures.
Where the content comes from
Section titled “Where the content comes from”The content of these books has been developed over many years. It started in DocBook, moved to HTML websites, then to Google Docs, and this site is its current form. Each move has involved rewriting and extending the material, and the interactive figures are the newest part of it.
How the books are written
Section titled “How the books are written”The source for every page is a Markdown file (strictly, MDX, which is Markdown that can include components) in an Obsidian vault on my own computer. Obsidian lets me write, link and search across all three books and my notes in one place. The vault is a Git repository, and the Obsidian Git plugin commits and pushes it to a private GitHub repository every few minutes, so every change is recorded and can be undone.
Each page has a draft flag in its frontmatter. A page with draft: true appears only on my development server; setting it to false releases the page to this site on the next build. That one flag is the only difference between what I am working on and what you see here.
How the site is built
Section titled “How the site is built”The site is built with Astro and Starlight, Astro’s documentation framework, which provides the navigation, search, light and dark themes, and the page layout.
The interactive figures are React components, styled with Tailwind CSS. Astro renders each page to static HTML and loads the JavaScript only for the components on that page (“islands”), so pages stay fast.
The site runs in Docker containers on a small server in my garage:
- A sync container pulls the book content and the components from the Git repository every 15 minutes.
- A development container runs Astro’s development server, which shows draft pages and updates as soon as new content arrives. This is where I check pages before releasing them.
- A production container builds the static site, leaving out draft pages, and serves it to you.
How AI is used
Section titled “How AI is used”I use Claude Code, Anthropic’s AI coding assistant, mainly to build and test the interactive components: it writes and debugs the React code, renders the figures in light and dark mode at different screen sizes, and checks that every page compiles. It would not be possible for me to write the code for the demos on this site by hand, as many of them run to more than 1,000 lines of JSX. I check every component against my own understanding of the topic, but I cannot try every combination of settings in every demo. If you spot an error, please let me know using the Submit Errata & Suggestions link in the menu.
I also use Claude Code to review drafts for errors, check facts and keep the style consistent across the books. I decide what each book covers and how it is structured, I write and edit the text, and I check the components and pages before they are released.
I use T3 Code, an open-source control plane for coding agents, to orchestrate this work across the three books.
Some of the images are generated with Google’s Gemini image model (Nano Banana). I also use Gemini and Claude models to help write the multiple-choice questions. The hardest part of a multiple-choice question is the wrong answers: each one has to be plausible and about the same length as the correct one, and I have spent a lot of time over the years writing them by hand.
Who I am
Section titled “Who I am”I am Derek Molloy, and I teach in the School of Electronic Engineering at Dublin City University. You can find my blog and other projects at derekmolloy.ie. To learn more about me, see derekmolloy.ie/about.
© 2026 Derek Molloy, Dublin City University. All rights reserved.