Projects
Most of these are course and learning projects: each was built to practise a specific technique, not hardened for production, so expect rough edges. The live demos reset their data and keep nothing you enter. The home server is the exception: it runs in production.
-
Running in production
Home server & gateway on NixOS
The whole machine is one declarative, version-controlled NixOS configuration (flakes, in Git): rebuilt and deployed with a single command, and every change reviewable and reversible. It serves this website.
- Home router: NAT, firewall, DHCP/DNS (dnsmasq), Wi-Fi access point
- Self-hosted VPN mesh with Headscale + Tailscale, reachable from anywhere
- nginx routing HTTPS by hostname (SNI) to several services on one IP; Let's Encrypt certificates via DNS-01 with Cloudflare
- Push-to-deploy for my apps: GitHub Actions builds an image to ghcr.io, and the Pi pulls and restarts it on its own (Podman auto-update, rollback on failure)
- Nextcloud + ONLYOFFICE for shared documents, Home Assistant with Zigbee and Matter, Syncthing, Samba
- Monitoring: Gatus health checks with email alerts, a public status page and a healthchecks.io watchdog
-
Maskinpark
A management dashboard for an industrial machine park, where support technicians monitor, administer and control machines. Built by refactoring step by step, introducing one component or layer at a time only when the need shows. Deployed automatically to my home server on every push.
-
MovieApi
A REST API for movies, actors and reviews, built in deliberate refactoring phases: repositories, Unit of Work, services, DTOs, AutoMapper, error handling, JWT auth with roles, then unit and integration tests — each layer added only once its absence hurt. The live demo is a Swagger page for trying it in the browser, read-only (writes need a token). Deployed automatically to my home server on every push.
-
Lagersystem
An inventory app for a storeroom: products with search by name and category, an inventory value overview, and full create, edit and delete with validation. Built in three phases: a controller returning hard-coded JSON, then Razor views and a view model, then EF Core with SQLite and seed data. Try it — changes are welcome, and the data resets every night.
-
Garage 2.0
A parking garage system built by a team of four, planned as user stories on a Kanban board: register vehicles, park and check out with a receipt and fee, parking history, parking spots and vehicle types, statistics, and accounts with roles (ASP.NET Identity). Demo login:
admin@admin.com/password1!— registration is turned off, and the data resets every night. -
LMS
A learning management system for courses, modules, activities and documents, built by a team of five in sprints — our final project at Lexicon, still in progress. The Blazor web app is a backend-for-frontend: it keeps the login in a cookie and forwards calls through YARP to a separate Web API that issues JWTs. The live demo runs both as containers on the home server and follows the group's
mainbranch. Demo login:DemoUser@Lms.com/demo1234— the data resets on every update. -
xavidiaz.music
My DJ site, hand-coded in HTML, CSS and JavaScript without frameworks: a custom audio player that remembers where you left off and survives dropped connections, an Instagram-style stories viewer, media on Cloudflare R2. Generated with Zola from markdown and tested in headless Chromium before every deploy. No cookies, no third-party trackers; Lighthouse scores of 98–100.
-
Fritidsbanken app
A complete prototype web app for Fritidsbanken, where people borrow sports and leisure equipment for free: browse by category, reserve items for a date range at a chosen shop, and show a QR code at pickup. Reviews and accounts included. No backend: it runs on mock data kept in the browser. Deployed automatically to my home server on every push.
Skills
- Languages
- C#, JavaScript/TypeScript, Python, Rust, Java, PHP, HTML/CSS
- .NET & web
- ASP.NET Core, Web API, Blazor, Entity Framework Core, React, Node.js, Fastify, Vite, Bootstrap
- Data
- SQL, data modelling, MongoDB, Cosmos DB, PocketBase
- Testing & process
- TDD, xUnit, Moq, Jest, Scrum, Git/GitHub
- Cloud & DevOps
- Azure (Web App, CI/CD, Cosmos DB, Azure SQL), GitHub Actions, Docker/Podman, Cloudflare
- Linux & networking
- NixOS, Arch, Ubuntu, systemd, SSH, nginx; TCP/IP, DNS, DHCP, VPN, Active Directory
Education
- May–Nov 2026Lexicon — Fullstack developer .NET and AI (full-time)
- 2023–KTH — MSc Engineering in Media Technology. On a study break after two years; returning autumn 2027.
- Apr 2026Cisco Networking Academy — IT Essentials certificate
- Mar–Apr 2026Lexicon — IT fundamentals: hardware, networking, IT security
- 2022–2023Komvux — Web development, PHP, Java, network administration