Skip to content
Mustafa Tarhan

Mustafa Tarhan

Software engineer in Berlin. I work at Fraunhofer IPK and I'm finishing a master's in computer engineering at HTW Berlin.

Most of what I build sits between software and machines: sensor data from production equipment, embedded Linux, a simulation model for factory energy planning. On the side I build and run a Discord platform for a large fan community.

All projectsMaster's thesisContact

Work
Working student, Fraunhofer IPK
Study
Master's, Computer Engineering, expected 2027
Thesis
Energy demand of planned production lines

How I work

I write things down. The thesis keeps its design decisions as numbered records, the NES emulator has a traceability matrix from user needs to test cases, and nothing reaches the production bot before it has passed the test suite on a staging copy.

I prefer plain designs that are easy to check. When data is missing I'd rather show that it's missing than fill the gap with a plausible default, and I'd rather ship a smaller feature that's right than a bigger one that's mostly right.

Selected work

Four projects I'd point someone to first. The rest are on the projects page.
Master's thesis2026 – 2027In progress

Forecasting the Energy Demand of Planned Production Lines

Research software that forecasts the monthly energy demand and load profile of a planned production line from machine state models, production orders, shift calendars and central systems such as compressed air. Every parameter records where it came from, and a missing value stays missing instead of being replaced by a default.

The hard part: There's no such thing as the power draw of a milling machine. The model structure can be general, but the numbers are specific to each machine, and the software has to say so when it doesn't have them.

Technologies: Python, SQLAlchemy, SQLite, Streamlit, Plotly, pytest

Read the write-up
Production system2026 – todayActive · in production

Aiko, a Community Platform for Discord

A Discord platform I build and run on my own: 45 modules, from moderation and tickets to a multiplayer game economy, all configured through a web dashboard with Discord login. The same code runs as two bots. System is my staging bot, Aiko is the production bot on a large fan community server, and code only reaches production after the test suite has passed.

The hard part: Serving several Discord servers from one process without one server ever seeing another's data. Every event is tagged with its server, and all state is looked up through that tag.

Technologies: Python, asyncio, discord.py, aiohttp, SQLite / SQLCipher, FTS5, Gemini API, faster-whisper +4

Read the write-up
Robotics · course project2025 – 2026Complete

Two Robots That Talk in Tones

One robot has a camera, the other has a gripper. The camera robot explores a road network of ArUco markers, turns it into a graph and finds the shortest path to a ball. It then sends the route to the gripper robot through a 16-tone acoustic modem with CRC-protected packets. ROS 2 on Linux, OpenCV, ALSA and FFTW for the audio, and STM32 firmware for the motors.

The hard part: Sending navigation commands through the air in a noisy room: 4-bit symbols as tones, picked out with an FFT, framed with a start sequence, robot ID, acknowledgement and CRC32.

Technologies: C++, ROS 2, ros2_control, OpenCV (ArUco), ALSA, FFTW, PulseAudio, STM32 / C +1

Read the write-up
Embedded systems · course project2024 – 2025Complete

NES Emulator on a Raspberry Pi

An emulator of the Nintendo Entertainment System in C++17 and SDL2, running full screen on a Raspberry Pi. Plug in a USB stick with ROMs and a USB gamepad, pick a game from the menu and play, with sound. Built the way you'd build a product: problem statement, requirements, traceability and test cases first.

The hard part: Rebuilding a 1983 console in software: 150 of the 151 official 6502 opcodes, the PPU and APU behind their memory-mapped registers, and frame timing that keeps games playable at 60 Hz.

Technologies: C++17, SDL2, Raspberry Pi, Linux, Make, Mermaid / PlantUML

Read the write-up

See all projects

Experience

  1. Since Apr 2024

    Working student, software development, Fraunhofer IPK

    Started as an intern in April 2024, working student since August 2024.

    • Predictive maintenance for machine axes: vibration features and SVM classification on a Raspberry Pi. Reworked the data path so the live system computes the same features as the training data. Details
    • Early-warning dashboard for plant sensor data: a state machine per signal, Monte-Carlo, Chronos and LSTM forecasts, FastAPI backend and React frontend. Details
    • Real-time SPI link in C++ between a Raspberry Pi compute module and a machine controller, feeding a regression model that sets the next process parameters. Details

Skills

Languages
Python · C++ · C · SQL · TypeScript / JavaScript · C#
Simulation & modelling
Production & energy simulation · Uncertainty & sensitivity analysis · Research data provenance
Embedded & robotics
Raspberry Pi & embedded Linux (Buildroot) · SPI, GPIO & sensor interfacing · Real-time Linux (scheduling, epoll, threads) · ROS 2 & ros2_control · STM32 firmware · Signal processing (FFT, audio) · Motor control (steppers, PWM) · Emulation of hardware (6502, PPU, APU)
Backend & systems
asyncio / event-driven services · FastAPI, WebSockets & React · Industrial IoT (MQTT, ThingsBoard) · aiohttp & REST APIs · OAuth2 & authorisation design · SQLite, SQLAlchemy, SQLCipher, FTS5 · Software architecture & layering · Language tooling (Langium, VS Code)
AI, vision & data
Computer vision (OpenCV, ArUco) · Neural networks from scratch, OpenMP · Classical ML (scikit-learn: SVM, kernel ridge) · Time-series forecasting (Monte Carlo, Chronos, LSTM) · Condition monitoring & anomaly detection · Data formats (HDF5, Apache Arrow, pandas) · LLM integration (Gemini, Groq) · Retrieval & full-text search · Speech-to-text (Whisper) · Data visualisation (Plotly, Streamlit)
Engineering practice
Requirements & traceability · Automated testing (pytest, Vitest) · Linux servers, systemd, Caddy · Encryption at rest & backups · Git, GitLab CI · Unity XR
Also used
OPC UA, CAN, Node-RED, TensorFlow, Docker, NoSQL databases, Unreal Engine

Education

  • Expected 2027

    Master's degree, Computer Engineering, HTW Berlin

    Thesis: forecasting the electrical energy demand of planned production lines.

  • 2024

    Bachelor's degree, Computer Engineering, HTW Berlin

    Thesis: analysis and visualisation of wear points using LIS3DH sensors, MQTT, SQL and machine-learning classification.

Contact

Contact details will be added here soon.