MSc student in Cybernetics & Robotics at NTNU. Control team at Vortex NTNU. Formerly ML at Cogito NTNU.
I'm pursuing a Master's in Cybernetics and Robotics at NTNU in Trondheim, working across machine learning, control systems, and autonomous robotics.
I'm currently on the control team at Vortex NTNU, where I previously served as Project Manager. Before that I spent a semester with Cogito NTNU, the student organization for applied machine learning and AI.
AI tools are part of how I work every day: Perplexity for reading papers, Claude for coding, and all of them for the countless small questions that used to cost me hours. I've built a solid foundation with them, across both learning and project work.
Prior to university I served with the Norwegian Armed Forces in HMKG Band & Drill Team, His Majesty the King's Guard.
I build theory-driven control software for a subsea autonomous drone, turning commands into safe, precise movement underwater. Most of this has been on Vortex NTNU's robotic gripper arm.
I turn large, real-world datasets into tools people actually use, end to end. At Neat, that means building on top of our fleet and crash data, from the database to the dashboard the team checks every day. I did the same thing independently with Norwegian housing data, the Housing analytics project further down this page.
Software Developer Intern · Cloud & Tools
Building and maintaining the internal tooling that keeps a fleet of hardware and CI infrastructure observable, diagnosable, and clean:
Project Manager → Control Team · AUV Software
NTNU's student team building autonomous underwater vehicles for international competition. Served as Project Manager from Feb 2024 – Jun 2025, leading the team across mechanical, electrical, and software disciplines. Currently on the control team, developing the gripper manipulator software stack:
GripperState, GripperWaypoint,
GripperReferenceFilter, and the
GripperReferenceFilterWaypoint action
(vortex-msgs).
vortex-gripper).
vortex-auv.
Machine Learning · Member
NTNU's student-driven organization for applied machine learning and AI. Collaborated on hands-on projects across computer vision, NLP, and reinforcement learning, building practical ML systems alongside a team of driven students.
MSc · Cybernetics & Robotics
Coursework across real-time systems, estimation & classification, modelling & simulation, and embedded systems. Norwegian University of Science and Technology, Trondheim.
HMKG · Band & Drill Team
Completed service with His Majesty the King's Guard (Hans Majestet Kongens Garde) prior to beginning studies at NTNU.
Manipulator guidance, control, and hardware/sim interfaces for Vortex NTNU's competition AUV, with end-to-end goal sends executing in simulation.
Vortex NTNU's AUV needed a manipulator arm that could be commanded precisely and safely to complement the vehicle's valve-manipulation capabilities. The subsystem also had to be built, reviewed, and handed off across a rotating student team.
On the control team, I designed the ROS 2 message and action interfaces in
vortex-msgs, then built the reference-filter guidance module, controller
skeleton, CAN interface, and Stonefish simulation interface in vortex-gripper.
The action server lets the wider autonomy stack drive the gripper through each command and phase of an autonomous mission, tracking or cancelling a goal mid-execution, with a threshold on state error triggering the final snap to setpoint. Stonefish verifies this logic end to end in simulation, while the CAN interface carries it through to the physical hardware.
Validated end to end in Stonefish simulation, with integration tests in
vortex-auv covering full goal sends through the pipeline.
vortex-gripper ↗ · Vortex NTNU
A peer-to-peer elevator network in Go: no master node, and no hall call lost or duplicated across a crash or a network partition.
NTNU's TTK4145 Real-Time Systems project: a peer-to-peer network of elevator nodes has to keep serving hall and cab calls correctly through motor faults, door obstructions, and dropped network connections, without ever needing a manual restart. Each node broadcasts a state snapshot over UDP every 10ms and merges its peers' snapshots into a shared consensus view, so no central coordinator can become a single point of failure.
Built with a three-person team for the semester project. The system runs as five concurrent Go modules communicating over channels: a driver polling buttons, floor sensors, and door obstruction; a finite-state machine turning assigned orders into movement; a network node handling consensus; a manager assigning hall and cab requests; and the door and lights output.
Each hall and cab request carries its own cyclic counter (Unknown, Inactive, Requested, Active) rather than one counter for the whole state snapshot, so conflicting reports of the same order resolve locally without blocking on every other request. An earlier version counted the whole snapshot instead and was scrapped: it could only resolve one worldview at a time, which broke handling of concurrent requests.
Heislab-TTK4145 ↗ · NTNU · Real-Time Systems
A cube-shaped satellite's torque-free attitude dynamics, modelled with the Newton-Euler equations: a steady spin for a uniform cube, precession once the mass distribution shifts.
TTK4130 Modelling and Simulation, assignment 5: derive the Newton-Euler equations of motion for a cube-shaped satellite and predict its torque-free attitude dynamics over one orbit. A uniform cube spins about a fixed axis indefinitely, but bolting a small mass onto one corner makes the same satellite's spin axis precess instead, the textbook difference between a spherical and an axisymmetric top.
Solo coursework: modelled the satellite as a 13-state system (position, velocity, attitude quaternion, body angular velocity) and derived the corner-mass case's shifted inertia tensor by hand via the parallel axis theorem. The orbit and torque-free rotation were then integrated numerically over a full 139-minute orbit.
Attitude is represented with a unit quaternion, avoiding the gimbal lock that Euler angles introduce, and the torque-free Euler equation is integrated directly in the body frame. Angular momentum and rotational energy stay conserved to around 1e-15 relative drift across the run, a hard numerical check on whether the integration is actually correct.
Angular momentum and rotational energy hold to machine precision, about 1e-15 relative drift, across the whole simulated orbit for both cases.
NTNU · Modelling & Simulation
Nearest-neighbour and k-means classifiers written from scratch: 96.91% accuracy raw, 93.49% after compressing the reference set to k-means templates.
NTNU coursework, solo: nearest-neighbour and k-means classifiers built from scratch, to see the algorithms at the level of the underlying maths. 1NN on raw MNIST digits reaches 96.91% accuracy; compressing the reference set to k-means templates and running k=7 against them trades about 3.4 accuracy points for a far smaller reference set (93.49%), with errors concentrated in a few genuinely ambiguous pairs, like 4s read as 9s.
classification_project ↗ · NTNU · Estimation & Classification
An end-to-end mass-appraisal pipeline on real Norwegian property data: the deepest, most heavily evidenced project on this site. Full breakdown below.
Self-directed, outside any coursework or team assignment: I found the public ArcGIS services behind Norwegian housing-price maps, scraped and modelled the data myself, and ran an IAAO-standard valuation pipeline end to end. The write-up reports the model's honest accuracy numbers alongside the wins.
housing-valuation-gis ↗ · Self-directed
A self-directed dive into geospatial data engineering and mass appraisal. I traced public ArcGIS map layers back to their REST APIs, scraped real Norwegian housing data, engineered spatial features, and ran an IAAO-standard automated valuation model from end to end. The metric throughout is price per m².
All three come from one OsloMet dataset (≈ 2016), so they compare like-for-like; a different source from the Asker data below. Bar = median price/m², right = level versus Oslo.
Individual open-market sales, per transaction, not a grid: ordinary deals between an unrelated buyer and seller, not gifts, inheritance or family transfers.
Property workspace
Subject property · Asker · gnr 9/bnr 159
I self-host a local large language model on my own hardware, reachable from anywhere through a secured Cloudflare tunnel. The whole system runs as a set of containerized services coordinated by Docker Compose, with GPU passthrough so inference stays fast on consumer-grade hardware.
Beyond the model itself, this project has given me real hands-on experience with Linux, container networking, reverse tunnels, and the day-to-day work of keeping self-hosted infrastructure running.