FPGA & RTL · Embedded C · Computer Architectures · Edge AI · Linux
Hello! :)
I am an Embedded Systems MSc student who enjoys to understand how low level systems work, both hardware, or pure software ones.
Most of my projects begin with the same question:
How does this work? How can I replicate / modify it?
That curiosity has led me to work on FPGA processors, low-level firmware, real-time systems, hardware measurement architectures, Linux utilities, TinyML applications, and, more recently, a Transformer inference engine written from scratch in C.
I am especially interested in the boundary between digital hardware and low-level software: how architecture, memory, timing, and implementation choices shape the behaviour and performance of a system.
Note
Currently working on: a Transformer inference engine in C for resource-constrained systems, while studying efficient AI inference.
|
A Transformer inference engine written from scratch in C. The goal is not only to reproduce the model mathematically, but to understand how the transformers inference process can be optimized to run on tiny embedded systems. In this regard, optimizations are made on: tensor layouts, memory allocation, numerical operations, execution order, and performance trade-offs. What it involves
Technologies: |
|
A non-pipelined RV32I processor implemented in VHDL. The project covers the main components of a basic processor, including the datapath, control logic, register file, ALU, instruction decoding, and memory interface. It was built as a practical way to connect ISA-level concepts with their hardware implementation on an FPGA. Technologies: |
My bachelor thesis and internship work focused on the design and characterisation of a Time-to-Digital Converter on a Xilinx Artix-7 FPGA. The system used a 200 MHz clock and approximately 800 timing bins, with automated delay sweeps and statistical analysis of the measured timing distribution. I also worked on host-side acquisition and analysis software for calibration, centroid estimation, and DNL evaluation. Technologies:
|
|
A small real-time operating system written in C for the TI MSP432. I built it to better understand how scheduling, task management, interrupts, timing, and context handling work below the level of a commercial RTOS. Technologies: |
During an internship, I worked on a C driver and hardware abstraction layer for a proprietary embedded display. The work involved register-level interaction, hardware communication, interface design, debugging, and integration with the surrounding firmware stack. Technologies:
|
|
A TinyML pipeline for recognising hand gestures using the Arduino Nano 33 BLE Sense Lite. The project covers data collection, preprocessing, model training, and deployment on a constrained embedded target. Technologies: |
A collection of smaller experiments involving microcontrollers, low-level C, hardware interfaces, interrupts, timers, and system-level behaviour. These projects are where I test concepts before integrating them into larger systems. Topics: |
|
A terminal-based tool that analyses recorded lectures and removes low-information segments. The project combines speech-to-text, local language-model processing, timestamp analysis, and FFmpeg-based video reconstruction. I am developing it as both a practical tool and a way to study local AI workflows and systems programming. Technologies: |
A lightweight Linux backlight controller written in Rust. I built it as a small systems-programming project to learn Rust while interacting directly with Linux system interfaces. Technologies: |
- Digital hardware: FPGA, RTL design, VHDL, Verilog, RISC-V, Vivado
- Embedded software: C, C++, Rust, bare metal, RTOS, device drivers
- Systems: Linux, operating systems, computer architecture, performance analysis
- AI: Transformer inference, TinyML, embedded AI, hardware-aware inference
- Tools: Python, MATLAB, Git, Docker, QEMU
I am continuing my MSc in Embedded Systems at Tampere University and I am interested in opportunities involving:
- FPGA and RTL design
- Firmware and embedded software
- Computer architecture and SoC development
- Edge AI and efficient inference
- Low-level systems programming
I am particularly interested in internship, thesis, and junior roles in Tampere or fully remote within the EU.
I use GitHub to document projects, experiments, and what I learn while trying to understand computing systems a little more deeply.
You can also find me here:

