Embedded Systems Minor
From September 2024 to January 2025, I completed a Minor in Embedded Systems at Rotterdam University of Applied Sciences, expanding my expertise beyond web development into the world of hardware programming and real-time systems.
Minor Overview
This specialized minor program focused on developing skills for programming embedded systems, working directly with hardware, and developing real-time applications. The program combined theoretical knowledge with extensive hands-on laboratory work.
Program Focus
This minor program provided comprehensive training in embedded systems development, covering hardware programming, real-time operating systems, and low-level software development for resource-constrained devices.
Technologies & Hardware
- STM32 microcontrollers
- ESP32 microcontrollers
- FPGA programming with VHDL
- Rust for embedded systems
- C for microcontrollers
- Assembly language
- ARM architecture
Core Competencies
- Real-time systems design
- Multitask scheduling
- Memory-constrained programming
- Hardware-software interfacing
- Digital logic design
- Embedded systems architecture
- Systems engineering principles
Special Project: Interactive Glasses for TU Delft
Project Brief
As part of my minor, I developed a smoke beacon system for Delft University of Technology. This system simulates fogged areas by impairing vision, creating a controlled environment for training fire safety responders without the hazards of actual smoke.
Technical Implementation
The system utilized STM32 microcontrollers to control LCD panels in safety glasses, allowing precise control over opacity levels to simulate different smoke densities. ESP32 microcontrollers provided wireless connectivity for remote control and monitoring.
Skills Applied
- C programming for embedded devices
- Real-time control systems
- Wireless communication protocols
- Hardware-software integration
- LaTeX for technical documentation
- Systems engineering methodology
Project Outcomes
The completed system provided fire safety instructors with a controllable tool for realistic training scenarios. The project demonstrated practical application of embedded systems principles while addressing a real-world safety training need.
Technical Coursework
The minor program included several specialized courses covering different aspects of embedded systems development:
FPGA Programming with VHDL
Learned to design and implement digital circuits using VHDL for Field-Programmable Gate Arrays (FPGAs), creating custom hardware configurations for specific computing tasks and gaining insights into hardware acceleration techniques.
Microcontroller Programming
Developed firmware for STM32 and ESP32 microcontrollers using C and assembly language, implementing direct hardware control, interrupt handling, and peripheral interfacing for real-world applications.
Real-time Operating Systems
Studied multitask scheduling algorithms and implemented real-time systems with strict timing constraints, learning to manage concurrent tasks and ensure deterministic behavior in time-critical applications.
Rust for Embedded Systems
Applied Rust programming to embedded contexts, leveraging its memory safety features while maintaining performance, and implementing embedded applications with robust error handling and concurrency patterns.
Skills Developed
This minor program significantly expanded my technical capabilities beyond web development into the realm of hardware programming and embedded systems:
Hardware Programming
- Direct register manipulation
- Peripheral interfacing
- Hardware abstraction layer design
- Memory-mapped I/O
- Low-level driver development
Real-time Systems
- Deterministic timing controls
- Interrupt management
- Task scheduling algorithms
- Resource contention handling
- Deadline-driven development
Systems Engineering
- Requirements analysis
- Hardware-software co-design
- System integration testing
- Performance optimization
- Technical documentation
Professional Impact
This specialized minor program has broadened my capabilities as a software engineer, enabling me to work across the full stack from hardware interfaces to high-level applications. The skills developed complement my web development expertise in several ways:
Full-Stack Perspective
Understanding systems from the hardware level up provides valuable insights for optimizing high-level applications, particularly for performance-critical software that interacts closely with hardware resources.
IoT Development Capabilities
The combination of web development expertise and embedded systems knowledge positions me ideally for Internet of Things (IoT) projects that require both device programming and cloud integration skills.