Computer Science student building at the boundary of software and physical systems.

Simulation · Robotics · Embedded · Backend

BSc Computer Science, Maastricht University

Seeking engineering and research opportunities in embedded systems, robotics, simulation and backend development.

Profile

I'm a Computer Science student at Maastricht University focused on embedded systems, simulation, robotics and backend engineering. I enjoy problems where software has to interact with physical systems, or where correctness matters enough to be tested rather than assumed.

My recent work includes finite-element simulation of body-coupled communication, robotic grasp generation, HPC optimisation and production-oriented Telegram automation.

I'm currently looking for engineering and research opportunities where I can work on technically demanding systems and continue developing across software and hardware.

Currently
Studying
BSc Computer ScienceMaastricht University · expected 2027
Focus
Simulation · Robotics · Embedded systems · Backend
Interested in
Engineering · Research · Systems
Looking for
Internships · Graduate roles · Research opportunities

Selected work

Reverse Body-Coupled Authentication for Smart Rings

Solo2026

A simulation study asking whether a smart ring can be powered by the door handle it authenticates against — and what such a link would have to defend against.

Bachelor thesis · COMSOL Multiphysics 6.0 · LTspice · Python · pytest + Hypothesis
  • Built a 2D axisymmetric FEM model of body–handle–ring coupling in COMSOL, extracting the full Maxwell capacitance matrix, to evaluate batteryless smart-ring operation.
  • Developed a validation pipeline combining closed-form electrostatics, FEM and circuit simulation, backed by 385 automated tests and a provenance register on every constant.
  • Corrected the existing channel model, changing predicted coupling by 19×, and established an exposure-limited energy bound that rules out batteryless operation by two orders of magnitude.
Read the technical analysis
  • Modelled a smart ring powered by the door handle it touches — inverting the usual body-coupled link, which puts the transmitter on the wearable — and asked whether that architecture is feasible at all.
  • Taught myself COMSOL, including attending COMSOL Day, and built the model as a validation ladder: closed-form electrostatics predicts the FEM before it is trusted, each FEM reproduces the previous tier to better than 1%, and the circuit simulation closes its own energy balance.
  • The channel correction below is the first contribution: solving the network rather than combining reciprocals brackets effective capacitance from 6.43 fF at a 1 mm gap to 124.8 fF in galvanic contact.
  • Proved batteryless operation is excluded by two orders of magnitude via an exposure-limited energy bound, independent of the coupling bracket.
  • Identified and quantified an energy-domain denial-of-service threat with an attacker-optimal standoff distance — no prior report of it exists in the HBC literature reviewed.
  • Enforced machine-readable provenance on every constant, keeping a register of thirty-three open unknowns, and withdrew ten of my own claims when their support failed.
Interactive · Thesis result The same channel, read four ways. Only one of them is the network.
Handle mains-driven Body finger · arm · torso Ring receiver Environment / earth — the loop closes here C_fwd 4.29 pF C_pp 27.37 pF C_body 84.52 pF diverts 95% of drive C_ret 125 fF
Four branches from one Maxwell matrix. The return path C_ret is the smallest by 34×, and it is the branch that decides everything.
End-to-end coupling
6.43fF
as modelled
All four values are from the thesis. The reciprocal-sum reading was the received one; refuting it, and explaining why it nonetheless landed close, is the first contribution of the work.

Grasp Generation for a KUKA iiwa Robot Arm

Team of 62026

The grasp-generation subsystem of an autonomous manipulation stack, benchmarked against a published baseline and validated in physics simulation.

Project 3-1 · ROS Noetic · Docker · PyBullet · Python · NVIDIA GraspGen · VGN
  • Built the grasp-generation pipeline and the ROS node integrating it into a larger autonomous manipulation system driving a KUKA iiwa arm.
  • Containerised the Ubuntu 20.04 / ROS Noetic toolchain in Docker, making the stack reproducible across the team.
  • Benchmarked NVIDIA's diffusion-based GraspGen against the Volumetric Grasping Network over 300 generated grasps, scored with an approximated Ferrari–Canny ε-metric and physically validated in PyBullet.
Read the technical analysis
  • Grasps were generated in batches of 50 and 100 per method, giving 150 per method and 300 overall, on object meshes derived from telescopic slides.
  • GraspGen produced grasps with higher resistance to external disturbance; VGN generated more consistent candidates. Neither dominated outright, so the report recommends by criterion rather than declaring a winner.
  • A rule-based Simple Grasping baseline was included for comparison but silently misclassified the target object as a support surface — diagnosing that failure was part of the work, and it is reported rather than omitted.
  • The subsystem was developed alongside several parallel efforts on the same robotic manipulation system; the grasp-generation work is evaluated independently of them.
Interactive · Pipeline output One depth scan, and the five grasps that survived the whole filter. Drag to rotate.
drag to rotate
341 candidates score higher than the best grasp that survived — and every one of them is blocked by the box. Confidence is not reachability.
Grasps the robot could use
5of 2,000
Robotiq 2F-140 · one scene · one run
sampled by the diffusion model2,000
above the 0.80 confidence threshold648
collision-free against the scene5
pipeline output
Every point and every pose is real output from one run. The bright points are the segmented object cloud GraspGen was handed — the slide itself; the box around it is context, and what the collision check ran against. It sampled 2,000 grasps, kept the 648 scoring above its 0.80 confidence threshold, and was left with 5 once the gripper mesh was checked against the scene — 10.5 s of inference, 19 s of collision checking. The scan is drawn at 14,994 of its 378,816 points to keep the page small.

Canvas — Telegram Ordering System

Solo2025

A commissioned ordering system for a custom-print business: a complete order funnel, a relational schema and an admin console — closer to a small internal product than a chat bot.

Python 3.13 · asyncio · aiogram 3 · SQLite · SQL · ~3,600 LOC
  • Designed a 21-state finite state machine driving the complete customer order funnel — size, orientation, framing, NFC chip, gift packaging, delivery, photo upload and payment choice, including a separate branch for digital orders.
  • Built a normalised four-table SQLite schema with enforced foreign keys, CHECK constraints and cascading deletes; prices are computed server-side from the option table rather than trusted from client input.
  • Shipped an eleven-command admin console — order lookup, status and price editing, photo review, a revenue and user statistics dashboard, and broadcast notifications gated behind a preview-and-confirm step.
Explore the system — and run the real order funnel
  • Rewrote a 780-line prototype into a router / service / keyboard architecture, and HTML-escaped every piece of user-supplied text before it reached a message.
  • Free-text steps accept any input: field-level validation was still on the TODO list when the project stopped, and the demo below reproduces that behaviour rather than hiding it.
  • Development ended when the client withdrew mid-project, so the interactive version below is the only place this system still runs.
Interactive · Playable The real funnel, in Romanian. Watch the state and the database row on the right.
C
Canvas
bot · aiogram 3

FSM state

choosing_size

order_details — SQLite row

price —
Message text, button labels and the pricing rules are lifted from the source. Long copy is abridged with “…”. Free-text steps accept anything, exactly as the real bot did — input validation was on the TODO list when the project stopped.

AI-Driven Compression of LHC Sensor Data

Team of 72025

An HPC pipeline that tunes compression parameters for Large Hadron Collider detector data, and two learning agents that choose strategies per chunk.

High Performance Computing · Python · Optuna · Reinforcement Learning
  • Built a pipeline converting LHC detector data to binary, profiling its entropy, and tuning chunk sizes and entropy thresholds by derivative-free optimisation for both compression ratio and throughput.
  • Compared an Absolute Zero Reinforcement agent against a hybrid categoriser and reward-predictor; the hybrid delivered higher average reward while avoiding deep-inference overhead, and I documented why the AZR agent prematurely converged.

Custom Android Keyboard

Pair2025

A working Android input method built to demonstrate, concretely, how much a third-party keyboard can capture.

Computer Security project · Kotlin · Android IME
  • Two-person project showing why keyboard permissions deserve scrutiny — the threat is easy to state and much more persuasive once the keyboard actually runs.

Transitor — Accessibility Routing Engine

Team of 72024

A bus-and-walking route planner over Maastricht's postal codes, used to measure socio-economic access to public transport.

Project 1-2 · Java · SQL
  • Built the routing engine from scratch, then derived a per-postal-code accessibility metric to expose transport inequality for urban planners.

3D Packing & Knapsack Optimisation

Team of 62024

Space-filling algorithms for three-dimensional bin packing with cuboid and pentomino items.

Project 1-1 · heuristic and computational methods
  • Designed and benchmarked the algorithms against each other, trading spatial efficiency and configuration value against computation time.

Experience

Engineering experience

Freelance Bot Developer — independent

2025 — present
  • Built Telegram automation for small businesses on commission, gathering requirements directly from non-technical clients and delivering Romanian-language interfaces.
  • PePlus: an admin-gated broadcast service with an approval workflow, subscriber validation, and automatic Russian-to-Romanian translation of outgoing messages, refactored from a single-file prototype into a routers / services / config architecture.
  • Stack across the commissions: Python, asyncio, aiogram 3, SQLite and aiosqlite, APScheduler for scheduled jobs.
Additional experience

Medical Bicycle Courier — Vleugels, Maastricht

2023 — present
  • Time-critical pharmaceutical deliveries across Maastricht, held continuously alongside a full-time degree.

Freelance Graphic & Video Editor — Chișinău

2018 — 2022
  • My first paid work: commissioned photo retouching, graphic design and video editing in Adobe Photoshop and Adobe Premiere Pro, taken on while still at school.

Education

BSc Computer Science — Maastricht University

Sept 2023 — 2027
Department of Advanced Computing Sciences, Faculty of Science and Engineering
  • Thesis: Reverse Body-Coupled Authentication for Smart Rings: A Simulation Study of Channel, Energy and Security Limits — supervisor Dr. Mirela Popa, second examiner Dr. Charis Kouzinopoulos.
Embedded Programming High Performance & Parallel Programming Software Engineering and Architectures Ubiquitous Computing & IoT Quantum Computing Machine Learning Robotics Computer Security Computer Networks Databases Data Structures and Algorithms Numerical Methods

Skills

Embedded & systems
C/C++ · STM32CubeIDE (STM32U5) · X-CUBE-AI on-device inference · Arduino
Robotics
ROS Noetic · PyBullet · KUKA iiwa · NVIDIA GraspGen · VGN · Docker
Simulation & numerical
COMSOL Multiphysics 6.0 (FEM) · LTspice · MATLAB · numerical methods · SolidWorks / Inventor / FreeCAD
Backend & data
Python · asyncio · aiogram · SQLite / aiosqlite · SQL · pytest + Hypothesis · APScheduler · Optuna
Other
Java · Kotlin · TypeScript · Next.js · Git
Creative
Adobe Photoshop · Adobe Premiere Pro
Languages
Romanian (native) · Russian (fluent) · English (fluent — degree taught in English)

Background

2017
—2023
Chișinău. Where it started: self-taught Photoshop and Premiere, and a first love of programming in Turbo Pascal. Competed in FIRST LEGO League several years running, then stayed on to help run the events after ageing out of competing. Active in the Chișinău computer-science community throughout.
2023
Left Chișinău for Maastricht to study Computer Science. Started delivering medicine by bicycle for Vleugels in the same year — and have kept that job running alongside the degree ever since.
2024
—2025
First engineering projects — 3D bin packing, then the Transitor routing engine — followed by client work in async Python, HPC work on LHC detector data, and an Android keyboard built to expose what input methods can capture.
2026
Robotics and research: grasp generation for a KUKA iiwa arm, then the bachelor thesis — teaching myself COMSOL to settle whether a smart ring can be powered by the door handle it touches.

Contact

Let's build something useful

I'm interested in engineering and research opportunities involving embedded systems, robotics, simulation and backend development. If you're working on a technically challenging problem, I'd be happy to talk.

Selected project work is presented throughout this portfolio, with additional university project work available through my Maastricht University GitLab.