Software developer & interaction designer

I build thoughtful, reliable software for people and businesses.

From interactive React and Next.js experiences to robust backend systems built with C# and .NET.

About me

A software developer with a human-centered perspective.

I have a background in Information Technology and Interaction Design and Technologies from Chalmers University of Technology.

My experience spans system programming, frontend and backend development, mobile applications and AI-integrated software systems.

I enjoy turning complex requirements into reliable, maintainable software using clean architecture, thoughtful design and structured development practices.

What I bring

  • Modern frontend development with React and TypeScript
  • Backend development with C#, .NET and APIs
  • System development with C, C++ and Java
  • Interaction design and accessible user experiences
  • AI integration, RAG pipelines and LLM-based systems

Case studies

Selected work

A closer look at three projects — the problem, my contribution, and what I learned.

Master's thesis · Interactive AI system

Four Philosophers

Frontend Developer — Master's Thesis

The challenge

The installation needed four AI speakers to feel visually and acoustically synchronized in real time. Managing voice input, keyboard controls, API communication, and per-persona state — all within a fixed thesis timeline — required careful architecture from the start.

What I did

I built the React frontend using Vite and TypeScript, designing isolated components for each philosopher while letting a shared controller coordinate the debate. Voice input ran through the Web Speech API, an operator panel gave supervisors control over the installation, and the core interaction logic was covered with Vitest.

The outcome

The installation ran live at the thesis presentation without issues. The clean frontend/backend boundary meant the AI team could swap models without touching my code — my clearest example of building a complex real-time interface under a fixed deadline.

ReactTypeScriptVitePythonFastAPIChromaDBRAGLLM integrationVitestDocker

Full-stack web application

Toll Fee Calculator

Full-Stack Developer — Work Sample

The challenge

Sweden's congestion tax rules involve several interacting constraints: vehicle exemptions, toll-free dates, time-of-day pricing bands, and a single-charge rule that caps fees within a 60-minute window. Encoding all of this correctly — and proving it with automated tests — was the core challenge.

What I did

I modeled the domain in a framework-free C# layer so the rules could be verified in isolation with xUnit. An ASP.NET Core API sits on top, and a Next.js frontend lets users select a vehicle type and date range to see the calculated fee immediately.

The outcome

Every business rule is tested at the unit level, keeping the API and UI thin and easy to change. Adding a new vehicle type or adjusting a fee requires touching one layer only.

C#.NETASP.NET CorexUnitNext.jsReactTypeScriptTailwind CSS
Toll Fee Calculator
Taskforge

CLI application · Software architecture

Taskforge

Solo Developer — Architecture Study

The challenge

The goal was a working CLI tool that demonstrated layered architecture and dependency inversion without becoming over-engineered. It had to be genuinely installable and maintainable, not just a diagram.

What I did

I separated the project into three layers — CLI, service, and repository — connected by interfaces so each can be swapped independently. Tasks use UUID identity, persistence uses JSON with backward-compatible loading, and a GitHub Actions pipeline runs tests and publishes to PyPI on each release.

The outcome

Taskforge is live on PyPI and installable with pip. The CI pipeline runs automatically on every push, and the architecture serves as a concrete reference for clean separation of concerns in Python without unnecessary complexity.

PythonPytestJSONLayered ArchitectureGitHub ActionsTest Coverage

Selected work

Projects

A selection of projects spanning full-stack development, mobile applications, software architecture, embedded systems and interactive AI experiences.

Showing 10 of 10 projects

Master's thesis · Interactive AI system

Four Philosophers

A real-time AI debate installation where four digital philosophers discuss user-submitted questions. My main contribution was the React frontend, including the debate interface, voice input, keyboard controls, API communication and synchronized visual and audio responses.

ReactTypeScriptVitePythonFastAPIChromaDBRAGLLM integrationVitestDocker

Full-stack web application

Toll Fee Calculator

A congestion tax calculation system with a tested C# domain layer, an ASP.NET Core API and a responsive Next.js frontend. The application handles vehicle exemptions, toll-free dates, time-based fees and the single-charge rule.

C#.NETASP.NET CorexUnitNext.jsReactTypeScriptTailwind CSS

CLI application · Software architecture

Taskforge

A command-line task tracking engine built to practise layered architecture, dependency inversion and automated testing. It uses UUID-based task identity, JSON persistence, backward-compatible data loading and a GitHub Actions test workflow.

PythonPytestJSONLayered ArchitectureGitHub ActionsTest Coverage

Command-line application

MySH

A minimal interactive shell with command history, autosuggestions, contextual autocompletion and a dynamically updated colored prompt. The application uses a modular structure designed for continued extension.

Pythonprompt_toolkitCLI DevelopmentAutocompletionANSI Colors

Cross-platform mobile application

SmartFishing

A Flutter application for recreational anglers featuring a social catch feed, interactive GPS maps, marine WMS layers, weather forecasts, fishing guides and Firebase-based user accounts.

FlutterDartFirebase AuthenticationCloud FirestoreFirebase StorageREST APIsWMSGPS

Interactive AI desktop application

AI Time Machine

An interactive Pygame experience where users explore historical events through an AI persona called The Archivist. It combines real-time AI-generated content with a game-inspired interface, scrolling text and audiovisual feedback.

PythonPygameOpenAI APILLM IntegrationUX Designpython-dotenv

Bachelor's thesis · Android application

TrainingApp

A native Android fitness application developed as my bachelor's thesis at Chalmers. The application supports workouts, exercises, favorites, profiles, friends and leaderboards backed by Firebase services.

JavaAndroidFirebase AuthenticationFirebase Realtime DatabaseFirebase StorageFirebase Cloud MessagingGradleXML

Augmented reality game

Driver Forever

A Unity driving game combining an endless procedurally extended road with augmented-reality placement. Players can place the vehicle on a detected physical surface before starting the driving experience.

UnityC#AR FoundationARCoreMobile Development3D Game Development

Wearable computing prototype

Wearable Arduino LED

A wearable LED prototype controlling a WS2812 light strip through an Arduino-compatible board. Serial commands switch between animated color transitions, a rainbow effect and different numbers of illuminated LEDs.

ArduinoC++FastLEDWS2812 LEDsSerial CommunicationWearable Computing

Multiplayer desktop game

Trivial Pursuit: Around the World

A multiplayer desktop adaptation of Trivial Pursuit developed for Chalmers' object-oriented programming project course. The JavaFX application follows an MVC-inspired structure and includes continent-based questions, player selection, dice mechanics and automated model tests.

JavaJavaFXFXMLMavenJUnitMVCObject-Oriented Design

Get in touch

Let's build something thoughtful together.

I am interested in opportunities where I can contribute across software development, modern web technologies and human-centered digital experiences.

Send me an emailDownload CV