All.

Feel free to filter by projects.

Do LMs Know What Variables Do? Interpreting Code Representations via Variable Roles

What do LLMs truly understand about the code they generate? Inspired by the psychology of programming, we investigated how LLMs represent Sajaniemi's variable roles. Built a large-scale, multilingual dataset of 1.74 million annotated variables using static program analysis. Investigated how programming concepts emerge in model representations through probing, sparse autoencoders, and controlled interventions, exploring the gap between recognizing code semantics and reliably controlling generation.

RIKEN AIP research internship.
Skills · Mechanistic interpretability · Static analysis · Causal interventions
Tools · Python · Scala · Joern · PyTorch

SharedSAE: One Feature Dictionary Across Language Models

Contributed to SharedSAE, a framework that learns a common sparse feature dictionary across multiple model families. Worked on semantic feature evaluation and model dropout, enabling cross-model interpretability and efficient single-model inference without requiring separate feature dictionaries for each model.

RIKEN AIP research internship.
Skills · Sparse autoencoders · Representation learning · Feature evaluation
Tools · Python

Mixture-of-Memories — Architecture Reimplementation

Reimplemented Mixture-of-Memories (ICLR 2025), an architecture combining memory routing with linear attention. Developed multiple implementations in PyTorch and Triton, including custom GPU kernels for linear attention and gated linear attention. Explored performance and memory-efficiency trade-offs, moving from a naive implementation toward a more hardware-efficient design.

M2 deep learning course project.
Skills · GPU programming · Linear attention · Performance evaluation
Tools · Python · PyTorch · Triton

Knowledge Graph Entity Typing with Language Models

Extended SSET (NAACL 2024), a language-model-based approach to knowledge graph entity typing. Investigated why prediction performance deteriorates for entities associated with many types, and developed a targeted data augmentation strategy to improve their classification. Combined model experimentation and error analysis to address a specific limitation of the original approach.

M1 research project.
Skills · Knowledge graphs · Error analysis · Data augmentation
Tools · Python · PyTorch

WikiTableQA — LLM-Powered Table Question Answering

Developed an end-to-end pipeline that transforms heterogeneous Wikipedia tables into queryable databases using LLM-assisted cleaning. Integrated Text-to-SQL generation to answer natural-language questions and built an evaluation framework to measure answer accuracy and analyze failure cases.

M2 research methodology course project.
Skills · Text-to-SQL · Data cleaning · Model evaluation
Tools · Python · Hugging Face Transformers · SQLite · SQL

Rebjørn Wiki — A Multilingual Game Database

Frustrated by the lack of a reliable, centralized resource for one of my favorite game series, I started building my own. Developed a multilingual wiki backed by a structured database, gathering and cleaning information from scattered online sources. Explored game files through reverse engineering to recover missing data and make it accessible through a unified website.

Personal project.
Skills · Data engineering · Database design · Reverse engineering
Tools · Python · FastAPI · SQL · Ghidra

Dragon Quest MC — Minecraft Mod

Brought elements of the Dragon Quest universe into Minecraft by developing a custom mod in Java. Extended the game's existing systems with new creatures, items, and gameplay mechanics, working within the Minecraft Forge modding framework and adapting to an established, complex codebase.

Personal project.
Skills · Game modding · Object-oriented design · API integration
Tools · Java · Minecraft Forge · Gradle

Tetris — Customizable Java Game

Recreated Tetris in Java with both single-player and competitive two-player modes. Designed an extensible theming system that allows players to customize graphics and audio, applying object-oriented design principles to keep the game logic and presentation modular.

Bachelor course project.
Skills · Object-oriented design · GUI development · Extensibility
Tools · Java · Swing · AWT

Dragon Quest Monsters — 2D RPG in C++

Built a 2D monster-catching RPG in C++ using SDL2, inspired by the Dragon Quest Monsters series. Developed core gameplay systems including tile-based world exploration, turn-based combat, monster collection, and team management. Implemented map loading, save files, and interactive menus, combining game logic with graphics and resource management.

Bachelor course project.
Skills · Game development · Graphics programming · Serialization
Tools · C++ · SDL2 · JSON
Back to the homepage.