XP Desktop
Company: Microsoft Learn
Role: Microsoft Learn Student Ambassador
Stack: JavaScript, HTML, CSS
XP Desktop
My 2021 portfolio: a Windows XP desktop that runs entirely in the browser. I wrote it as a Microsoft Learn Student Ambassador, back when I already preferred making toys to making pages. Today's one is a 3D game, so at least I am consistent.

What is in it
Real windows: dragged by the title bar, resized from the corner, minimised, maximised, and stacked by whichever you clicked last. The taskbar carries one entry per open window and the clock keeps time.
Inside there is my CV in both languages, a full minesweeper, a calculator that works from the keyboard, an Internet Explorer and the readme.
::carousel images=[{"src": "/media/work-projects/images/escritorio-xp/buscaminas.webp", "alt": "Minesweeper", "caption": "Zeros cascade open and right click plants a flag"}, {"src": "/media/work-projects/images/escritorio-xp/apps.webp", "alt": "Several windows open", "caption": "Four windows, their taskbar and which one has focus"}, {"src": "/media/work-projects/images/escritorio-xp/menu.webp", "alt": "The start menu", "caption": "The apps come out of a single list"}, {"src": "/media/work-projects/images/escritorio-xp/cv.webp", "alt": "The CV", "caption": "It opens in the browser's language"}, {"src": "/media/work-projects/images/escritorio-xp/movil.webp", "alt": "On a phone", "caption": "On mobile windows go full screen and you switch from the taskbar"}] height="460px"::
The minesweeper is not a grid with bombs
It has the three rules that make it Windows': the first square is never a mine —the mines are dealt after the first click—, zeros cascade open, and a flagged square cannot be opened by accident. Plus the old chord: click a number that already has its flags and the rest of its neighbours open at once.
How it is built
Plain HTML, CSS and JavaScript. No framework, no build step and not one external dependency: no CDN, no Google font, no image hotlinked from somewhere else.
Why the repo is called "Onboarding"
Because of the template the Microsoft Learn programme handed out, the one every ambassador forked for their page. I do not like following templates, so I emptied it and wrote this on top. There were so many of us that nobody ever reviewed those pages, and mine sat there for five years without anyone opening it.
What I found coming back in 2026
That it leaned on five other people's servers and two were already gone. The start button had been showing a broken icon for months because the little flag came from Wikipedia and returned a 400, and the browser window pointed at a domain of mine that no longer exists. That is what happens to a page nobody opens again.
Now the apps come out of one list and each shows up on its own in all three places: icon, menu and taskbar.
::two-columns split="50-50"::
What got fixed
The wallpaper and the icons moved in here —the photo is freely licensed now, and credited—, the calculator exists, the browser opens in a new tab, sizes went back to pixels —at 2.5vw the taskbar was 64px tall on a big monitor— and the CV is today's.
::column-break::
What that bought
With nothing coming from outside, the Content-Security-Policy closes to 'self' with no exceptions at all. It used to need five domains on the list.
::/two-columns::