# Arne De Peuter Computer Science Masters Student I like to build systems and work with data, focusing on structure and performance. I'm mainly interested in how systems are designed and how data moves through them. Most of my work sits between backend development, data engineering, and machine learning. I like working on systems end-to-end, from designing architecture to building the backend and experimenting with data and models on top of it. ## Personal - Date of birth: 5 January 2003 (age 23) - Location: Antwerp, Belgium - Nationality: Belgian, USA - Languages: Dutch (Native), English (Fluent), French (Intermediate), German (Basic) ## Contact - Email: arne@depeuter.org - LinkedIn: https://linkedin.com/in/arne-de-peuter - GitHub: https://github.com/ArneDePeuter - LeetCode: https://leetcode.com/ArneDP ## Tech Stack Python, FastAPI, Pandas, NumPy, scikit-learn, PyTorch, Dlt, LangGraph, C, C++, Rust, Ollama, React, Docker, Kubernetes, PostgreSQL, Auth0, Nginx, mosquitto, Git, Linux ## Notes - Posts with "work: true" = work experience - Posts with "work: false" = projects - Timeline JSON provides supporting context --- # Combined Content All source markdown and JSON files: ## FILE: src/content/posts/chess.mdx --- title: "Chess engine" description: "Chess enigne with minimax using bitboards" date: "2023-04-29" tags: ["UAntwerpen", "C++", "bitboards", "minimax"] thumbnail: https://upload.wikimedia.org/wikipedia/commons/6/6f/ChessSet.jpg repo: https://github.com/ArneDePeuter/ChessEngine --- ## Overview A chess engine written in C++ that uses bitboards for efficient board representation and move generation. The engine implements the minimax algorithm with alpha-beta pruning to evaluate positions and select optimal moves, enabling adversarial AI gameplay. This project is a reiteration of a project from the Introduction to Programming course at the University of Antwerp. In the following semester, I reimplemented the engine with a cleaner architecture and improved code organization. ## Features - Bitboard-based board representation for performance - Legal move generation (including castling, en passant, promotion) - Minimax search with alpha-beta pruning - Basic evaluation function (material + positional heuristics) - Move ordering to improve pruning efficiency - Command-line interface to play against the engine ## FILE: src/content/posts/compiler.mdx --- title: "C-Compiler" description: "A subset implementation of the C-compiler" date: "2024-06-02" tags: ["UAntwerpen", "Python", "LLVM"] thumbnail: https://llvm.org/img/DragonFull.png repo: https://github.com/ArneDePeuter/UA-2024-Compiler --- ## Overview This project is a compiler for a subset of the C programming language, developed in Python as part of the University of Antwerp coursework. It uses ANTLR for parsing and includes the full compilation pipeline: parsing source code into an AST, semantic analysis with symbol table generation, optimization passes such as constant folding and constant propagation, and code generation to both LLVM IR and MIPS. ## Features - Parsing a subset of C using ANTLR - Abstract Syntax Tree generation and visualization - Symbol table generation and scoped semantic analysis - Constant folding and constant propagation optimizations - Type checking and semantic error detection - Support for variables, pointers, casts, and implicit conversions - Control flow support including `if`, `else`, `while`, `for`, `switch`, `break`, and `continue` - Support for functions, local/global scope, and enums - Code generation to LLVM IR - Code generation to MIPS ## FILE: src/content/posts/computer_vision.mdx --- title: "Fashion Computer Vision" description: "A computer vision system for a fashion platform that can: classify clothing items, retrieve visually similar items, run efficiently on limited hardware" date: "2026-06-30" tags: ["UAntwerpen", "AI", "CNN"] thumbnail: https://www.flatworldsolutions.com/featured-images/applications-of-convolutional-neural-networks.webp repo: https://github.com/ArneDePeuter/UA-2026-Fashion-Computer-Vision/tree/main --- ## Overview Built for the **Artificial Neural Networks** course at UAntwerp, applying the theory and best practices from the course to a small computer vision system for a fashion platform: classify clothing, find visually similar items, and keep it light enough to run on limited hardware. ## Part A: Picking a backbone Compared a standard CNN against a depthwise separable CNN. The separable version won outright: more accurate, and about 3x fewer parameters and FLOPs. ## Part B: Learning similarity Repurposed that backbone and trained it with triplet loss to produce embeddings for retrieval instead of just classification. Result: a correct match lands in the top-1 result ~84% of the time, and in the top-5 ~93% of the time. ## Part C: Shrinking it further Tried pruning and knowledge distillation on the retrieval model. Pruning preserved accuracy but gave no real speedup without sparse-aware hardware. Distillation traded some top-1 accuracy for a genuine ~3x smaller, ~3x cheaper model that still finds a correct match in its top-5 ~90% of the time. ## FILE: src/content/posts/dashcam.mdx --- title: "Dashcam" description: "IoT system that detects car crashes using on-device ML and sensor fusion" date: "2026-05-18" tags: ["UAntwerpen", "IOT", "ML"] thumbnail: https://raw.githubusercontent.com/ArneDePeuter/UA-2026-Dashcam/refs/heads/master/docs/image.png repo: https://github.com/ArneDePeuter/UA-2026-Dashcam --- ## Overview An end-to-end IoT dashcam system that detects car crashes in real time using on-device machine learning and multi-sensor fusion. When a crash is detected, the system automatically captures a video clip, extracts GPS and accelerometer windows around the event, and uploads everything to a cloud backend accessible through a web dashboard. ### Edge ML: SOTA Diluted for the Real World The ML pipeline is inspired by the **Dynamic-Spatial-Attention RNN (DSA-RNN)** from Chan et al. (2016), a state-of-the-art crash anticipation model using Faster R-CNN, VGG16, and spatial attention. Running that on a Google Coral Dev Board is a non-starter, so the architecture was rethought from the ground up for Edge TPU constraints. **Two-stage inference:** - **Fine tuned MobileNetV2** replaces VGG16 as the feature extractor. Fine-tuned on the [Car Crash Dataset (CCD)](https://github.com/Cogito2012/CarCrashDataset) - **LSTM** 10-frame sliding windows of fine tuned MobileNetV2 embeddings. Training was done in a **Google Colab** environment on a L4 GPU. ### Firmware | Device | Role | |--------|------| | Coral Dev Board | ML crash detection | | Pycom Pysense | Acceleration trigger from crashing (> 2.5G) | | Pycom Pytrack | Location context | ### Cloud - **Backend:** async FastAPI + PostgreSQL + Traefik, Auth0 JWT, API key auth for devices - **Webapp:** React + TypeScript + Auth0 ## FILE: src/content/posts/data_mining.mdx --- title: "Data Mining" description: "4 Projects regarding Data Mining" date: "2026-06-30" tags: ["UAntwerpen", "AI", "Data Science"] thumbnail: https://about.netflix.com/images/meta/netflix-symbol-black.png repo: https://github.com/ArneDePeuter/UA-2026-DataMining --- # UA 2026 - Data Mining A portfolio of four hands-on assignments completed for the Data Mining course at the University of Antwerp, each tackling a distinct pillar of the field: pattern discovery, recommendation, unsupervised structure detection, and supervised classification. Together they span the full data mining pipeline from raw transactional and textual data through model building, evaluation, and interpretation, with each project isolated in its own submodule for clarity and reproducibility. ## Projects - **Frequent Pattern Mining**: Association rule mining (Apriori) on an online grocery retailer's transactional data to uncover product-category and purchase-timing insights. - **Recommender Systems**: Collaborative filtering and hybrid recommendation models built and evaluated on a movie ratings dataset. - **Clustering and Anomaly Detection**: Recovering topic groups from 2164 unlabeled text documents via clustering, and flagging 50 anomalous documents from an unsafe website. - **Classification**: Decision Tree and Random Forest classifiers on census income data, with feature selection comparisons and SHAP-based explainability. ## FILE: src/content/posts/deppy.mdx --- title: "Deppy" description: "A dependency executor for Python that empowers developers to design, build, and execute DAGs" date: "2025-06-14" tags: ["Python", "Library", "DAG"] repo: https://github.com/ArneDePeuter/deppy thumbnail: https://upload.wikimedia.org/wikipedia/commons/4/4d/Ball_python_lucy.JPG --- ## Overview Deppy is a lightweight Python library for building and executing dataflow pipelines using Directed Acyclic Graphs (DAGs). It allows developers to define dependencies between tasks and execute them efficiently. This library is published on pypi for public use. ## Motivation While Python offers powerful tools like async and multithreading. Deppy was created to provide a simple abstraction for constructing and executing data pipelines, making concurrent execution more accessible without requiring deep knowledge of async programming or multithreading. ## Key Features - DAG-based pipeline definition - Automatic dependency resolution between tasks - Efficient execution using async primitives - Parallel execution where possible ## FILE: src/content/posts/graphicsengine.mdx --- title: "Software Graphics Engine" description: "A CPU-based rendering engine" date: "2023-06-01" tags: ["UAntwerpen", "C++"] thumbnail: https://github.com/ArneDePeuter/UA-2023-GraphicsEngine/raw/main/readmeFiles/spec2.png repo: https://github.com/ArneDePeuter/UA-2023-GraphicsEngine --- ## Overview This project is a software-based graphics engine built for the Computer Graphics course at the University of Antwerp. Instead of relying on GPU APIs like OpenGL, the engine implements the full rendering pipeline on the CPU. It generates 2D images from 3D scenes, focusing on fundamental graphics concepts such as projections, lighting, and visibility. ## Features - 2D and 3D L-systems (including bracketed systems) - Wireframe rendering and line drawing - Z-buffering (lines and triangles) - 3D object generation (Platonic solids, spheres, cylinders, etc.) - Fractal generation (e.g., Menger sponge, Buckyball) - Lighting model: - Ambient lighting - Diffuse lighting (directional + point lights) - Specular highlights - Shadow computation - 3D transformations and projections - INI-based scene configuration ## FILE: src/content/posts/in2facts.mdx --- title: "Internship at In2Facts" description: "A summary of my internship at In2Facts." date: "2026-04-08" work: true tags: ["Internship", "In2Facts", "DLT"] thumbnail: https://www.cordacampus.com/wp-content/uploads/2023/05/image001.png --- During my internship at In2Facts, I worked on a variety of projects spanning data engineering and backend development. At the start of my internship, I contributed to a client project in the energy sector. I was responsible for designing an API and database system to support EMSP and CPO use cases. This involved data modeling, validation, and API design, giving me a strong foundation in building structured and reliable backend systems. In addition, I worked on a project related to imbalance steering in the energy domain. The goal was to dynamically control EV charging behavior based on real-time price signals, enabling more efficient energy usage. I also worked on internal data projects, supporting data analysts who required efficient access to data. For this, I developed multiple ETL pipelines and created reusable utility libraries that are still in use within the company today. During this work, I gained hands-on experience with DLT Hub and contributed improvements to its repository. This part of the internship involved a lot of experimentation and significantly deepened my understanding of ETL processes and data workflows. Finally, as part of an internship project in collaboration with the University of Antwerp, I implemented a chatbot using the MCP protocol. The system was designed to assist with scheduling and teacher allocation in a school environment. Overall, this internship provided exposure to real-world engineering challenges and allowed me to develop practical skills in API design, data engineering, and system integration. **Special thanks to Eric Pieters for the opportunity and guidance throughout this experience.** ## FILE: src/content/posts/pacman.mdx --- title: "Pacman" description: "Pacman game with working ghosts" date: "2024-01-7" tags: ["UAntwerpen", "C++", "Game", "A*"] thumbnail: https://media.wired.com/photos/59344068a88f414d9a8c9e97/3:2/w_2560%2Cc_limit/pacman10_gameplay-highres.png repo: https://github.com/ArneDePeuter/UA-2024-Pacman --- ## Overview This project is a Pacman game implemented in C++ as part of the Advanced Programming course at the University of Antwerp. The game features AI-controlled ghosts using the A* pathfinding algorithm. It applies modern C++ practices and emphasizes clean architecture and separation of concerns. Key design aspects include: - Use of smart pointers for memory management - Application of design patterns such as Observer and Model-View-Controller (MVC) - Clear separation between game logic and rendering The core game logic is implemented as a reusable Pacman library, while a custom UI system is built on top to handle rendering and interaction. ## FILE: src/content/posts/portfolio.mdx --- title: "Portfolio" description: "A content based portfolio" date: "2026-4-08" tags: [ "Frontend", "Astro"] thumbnail: https://refine-web.imgix.net/blog-yearly/2023/2023-06-12-astro-js/social-2.png?fm=webp&auto=format&w=1788 repo: https://github.com/ArneDePeuter/Portfolio.git --- ## Overview A content based portfolio for all my projects. It is the code of the website you are currently using! :) ## FILE: src/content/posts/rbfa.mdx --- title: "Bachelors thesis: RBFA chatbot" description: "A multipurpose chatbot for the royal belgian football association" date: "2025-06-01" tags: ["UAntwerpen", "Python", "RBFA"] thumbnail: https://i.vimeocdn.com/video/1661263705-04ce014077fd3f4424e07f1c5fa7bbcbf863676e9d964a068888c879a2a47998-d?f=webp --- For my bachelor’s thesis at University of Antwerp, I worked on a large-scale group project with around 40 computer science students. It was the first time we tackled something of this size, which made coordination and structure a significant part of the challenge. Within the team, I naturally took on a leadership role, while not the main lead, I was one of the more experienced members helping guide decisions and progress. The project itself was developed in collaboration with the Royal Belgian Football Association. The platform combined multiple components, including user management, video analysis, and a player database. At its core was a chatbot designed as a central access point, allowing users to query different parts of the system through a unified interface. Due to NDA restrictions, I cannot share the repository or go into full technical detail. However, the system was built as a production-grade microservices architecture backed by a PostgreSQL database. The backend integrated data mining pipelines, computer vision models based on YOLO, and RAG workflow orchestration using LlamaIndex. Overall, the project was a strong introduction to working on complex, distributed systems in a large team setting, with an emphasis on real-world constraints and collaboration. ## FILE: src/content/posts/solarin.mdx --- title: "Solarin" description: "An Online Idle Strategy Game with real-time interactions and complex game logic." date: "2024-06-03" tags: ["UAntwerpen", "Game"] repo: https://github.com/ArneDePeuter/UA-2024-Solarin thumbnail: https://github.com/ArneDePeuter/UA-2024-Solarin/blob/main/docs/docs.dev/images/fleet.png?raw=true --- ## Overview Solarin is a multiplayer idle strategy game developed for the *Programming Project Databases* course at the University of Antwerp. The project focuses on designing a scalable backend system that supports real-time interactions, persistent game state, and complex game mechanics. Players manage a space civilization by building cities, gathering resources, training armies, and interacting with other players in a shared game world. ## Key Features - Idle mechanics based on time-driven resource production and actions - City management with buildings, upgrades, and production systems - Army system with movement, combat, and merging - Procedurally generated planets and regions - Multiplayer features including trading, alliances, and chat - Real-time updates using WebSockets - Authentication with JWT and secure password hashing - Fully database-driven architecture using PostgreSQL ## FILE: src/content/posts/stringart.mdx --- title: "String Art" description: "String and nail art generator" date: "2023-7-23" tags: ["Python", "Art", "4Fun"] thumbnail: https://github.com/ArneDePeuter/StringArt/blob/main/output/obamaman.jpg?raw=true repo: https://github.com/ArneDePeuter/StringArt --- Generate string art from images using a greedy algorithm that simulates wrapping thread between nails on a circular board. With the goal to generate such images: ![img](https://blessgifters.com/cdn/shop/files/CreateYourOwnUniqueDIYStringArtPortrait.webp?v=1730918053) ## Algorithm 1. **Preprocess** - Resize image - Convert to grayscale 2. **Initialize** - Place `nail_amount` nails on a circle - Set per-nail connection limit 3. **Greedy Step** - For all valid nail pairs: - Score line = sum of pixel intensities along line - Pick best line - Subtract intensity along that line - Update nail connection counts 4. **Repeat** - Run for `n` iterations or until constraints are hit ## Constraints - `max_connections`: max lines per nail - `thread_length`: total available thread - Pixel values are reduced and clamped ≥ 0 ## FILE: src/content/timeline/bachelor.json { "title": "Bachelor Computer Science", "organization": "University of Antwerp", "description": "Foundation of computer science", "start": "2022-09", "end": "2026-06", "category": "education" } ## FILE: src/content/timeline/bachelor_ing.json { "title": "Bachelor Industrial Engineering Electronics-ICT", "organization": "University of Antwerp", "description": "Stopped after 1 year to switch to Computer Science because I wanted to focus more on software development.", "start": "2021-09", "end": "2022-06", "category": "education" } ## FILE: src/content/timeline/highschool.json { "title": "High School", "organization": "Sint-Jozefcollege Turnhout", "description": "ASO, maths & sciences", "start": "2015-09", "end": "2021-06", "category": "education" } ## FILE: src/content/timeline/in2facts.json { "title": "Internship @In2Facts", "description": "Worked in a team environment as a software engineering intern.", "start": "2023-06", "end": "2025-06", "category": "work" } ## FILE: src/content/timeline/masters.json { "title": "Master Computer Science: Data science & AI", "organization": "University of Antwerp", "description": "Focus on software engineering, data science, machine learning, and AI.", "start": "2025-09", "end": "present", "category": "education" }