About
My background in Network Administration gave me a strong foundation in IT, but my true passion lies in Embedded Systems. I have a passion for creating human interactable devices that aim to improve the quality of life and encourages fun and creativity. I have experience with a wide range of technologies, from programming languages to hardware design, with a special focus on embedded systems and robotics.
Work Experience
Skills
Check out my work
I've worked on a variety of projects, from embedded systems to full-stack applications. Here are some highlights:
Self-Balancing Wheeled Bipedal Telepresence Robot
Graduation project: Developed an advanced self-balancing wheeled robot for remote museum tours, enabling mobility-restricted individuals to experience cultural activities. Implemented real-time sensor fusion combining IMU and gyroscope data, PID-based stabilization algorithms, and coordinated brushless motor control using inverse kinematics. Achieved 90% vibration reduction and maintained camera stability within 20° tilt over obstacles up to 2cm.
Custom Neural Network - Symbol Recognition
Built a neural network from scratch in Python without using ML libraries like TensorFlow or PyTorch. Implemented forward propagation, backpropagation, and gradient descent to recognize X and O symbols from 3x3 pixel grids. Features custom sigmoid activation, MSE cost function, and weight optimization through iterative training. Achieved pattern recognition through manual tuning of network architecture (9 input, 3 hidden, 2 output nodes).
Coffice - Smart NFC Coffee Machine
Developed an innovative smart coffee machine system using NFC technology for personalized coffee experiences. Custom coffee cups with NFC chips embedded in double-bottom design automatically communicate user preferences to the machine. Built companion mobile app for configuring coffee preferences (milk amount, coffee strength, water temperature) and scheduling different coffee types throughout the day. Created complete business model including market analysis, financial projections, and technical implementation for office environments.
ArduinOS - Custom Operating System for Arduino
Built a complete custom operating system for Arduino with functional bytecode interpreter and instruction set. Implemented stack-based virtual machine supporting multiple data types (char, int, float, string), arithmetic operations, control flow (if/else, while loops), file I/O, and hardware interfacing (GPIO, analog/digital I/O). Features include process forking, memory management, and a complete instruction set (60+ opcodes) for executing custom bytecode programs directly on microcontrollers.
Multi-Robot Coordination System
Developed a distributed multi-robot coordination system using Webots simulator where autonomous robots navigate to targets while avoiding collisions. Implemented Dijkstra's pathfinding algorithm for optimal route planning, real-time obstacle detection using distance sensors, and TCP/IP socket communication for sharing positions and obstacles between robots. Features centralized server broadcasting robot positions, dynamic map updates, and collision avoidance through shared world knowledge. Robots independently calculate paths while maintaining awareness of other robots' positions through network synchronization.
Autonomous Virtual Car - Machine Learning
Developed an autonomous driving system using a Multi-Layer Perceptron (MLP) neural network trained with scikit-learn. Implemented LIDAR sensor processing with 16-sector distance mapping, real-time obstacle detection, and dynamic steering control. The AI processes LIDAR sweep data to predict optimal steering angles and calculates adaptive target velocities based on turn sharpness. Features custom training pipeline with dataset generation and model persistence.
File Compression Algorithms in Haskell
Implemented multiple lossless file compression algorithms from scratch in Haskell including Huffman coding and Run-Length Encoding (RLE). Built complete Huffman tree construction from character frequency analysis, binary code generation, and bidirectional compression/decompression. Features functional programming paradigms including custom type classes, pattern matching, recursive tree traversal, and immutable data structures.
Secure MQTT Chat Application
Built a real-time chat application using MQTT protocol with Docker containerization. Implemented secure pub/sub messaging architecture using Eclipse Mosquitto broker and Apache HTTPd frontend, both running in isolated Docker containers. Features WebSocket connections over MQTT, SSL/TLS encryption with custom-signed certificates, username/password authentication, and automatic client ID generation.
ESP8266 Over-The-Air (OTA) Firmware Update System
Developed a complete Over-The-Air firmware update system for ESP8266 microcontrollers for Dot Robot B.V., enabling remote configuration and firmware updates for IoT devices worldwide. Implemented dual-system architecture: (1) Key-value settings store with REST API integration using Directus CMS for runtime parameter updates, and (2) Complete firmware OTA using ArduinoOTA with A/B partition failsafe mechanism. Built custom JSON parser (JSMN) for minimal memory footprint, flash memory management with persistence, and rollback capabilities. Eliminates need for physical access to update international deployments.
C++ Ray Tracer with Reflections
Built a progressive ray tracing engine in C++ from scratch, evolving through five assignments from basic 3D vector mathematics to a full ray tracer with recursive reflections. Implemented custom Vec3D class with vector operations (dot product, cross product, normalization), ray-sphere and ray-plane intersection algorithms, reflective materials with Fresnel equations, and recursive ray bouncing with brightness attenuation. Final implementation features ASCII art rendering with multiple brightness levels, checkerboard floor pattern, multiple reflective spheres, and configurable recursion depth.