My Journey From a Warehouse Floor to the Microsoft Store and Everywhere in Between

Wait 5 sec.

By Marcin "HCK" Firmuga - 22, Radom, PolandThere's a temperature a cheap laptop reaches right before it gives up. Mine hits it at 94°C, fan screaming, the keyboard too hot to rest my wrists on. For most of last year, that scream was the soundtrack to my nights.\==I coded through it anyway.== ==Because I was scared that if I stopped moving, I'd vanish, quietly, the way twelve dead projects before this one did. The way I almost did at twenty-two.==\Last week, that fear got the strangest answer I can imagine. PC Workman, the Windows monitor I built on that screaming laptop, alone, broke, ==went live on the Microsoft Store==. Not a random ZIP or "clone the repo." A real listing, in the same store as the software I grew up thinking only companies could make.\And then, three days later, a tester told me it didn't work.\Both of those sentences are true. This is the story of the distance between them, because that distance is the only part of a milestone worth writing down.The number you never see cross a line.There's a version of me that stopped trying at twenty-two. No dramatic moment, the way a power rail sags from 12 volts to 11.9 to 11.8 while every reading still says "within spec," and then one day the number is just wrong, and you have no idea when that happened.\How I found the day it happened, and how I refused it, is the more personal half of all this. I told it in full in\The Man Who Got Himself Back, and I'd rather point you there than tell it badly again here.What matters for this piece is the metaphor, because it ends up in the code. A threshold never catches a slow sag; you only see it once the number is already wrong. Remember that. It comes back later, in voltages.The WarehouseNine months in the Netherlands. Four jobs, seven flats. Fifteen kilometres a day on foot, scanning barcodes, ==for three and a half euros per hour==. Twelve-hour shifts, and then, because I couldn't not, four-six more hours at night on that 2014 laptop.\Three days before Christmas, the same people who'd smiled at me for weeks smiled again and said: "You didn't pass the trial. Tomorrow, goodbye. And out of the apartment."\The 22nd of December. Suitcases by the door before I'd finished the sentence. Two dogs waiting in another country. Maybe a month of money left. (I stood in a corridor that night and shouted that I wasn't a terrorist, in a language that isn't mine, to stop a man putting me on the street. Long story. Different post.)\I didn't open a job board that night. I opened my editor and started rebuilding number four.\==Three weeks later, on the 20th of January, I shipped the first== .exe.\Here's the truest sentence I own from that year. Build something. Commit something. Watch a progress bar move.\Feel like you exist. That isn't a motivational poster. That's survival.\ \What I actually built.PC Workman tells you why your PC is slow. Not that it is, you already know that. Why.\It talks to you through hck_GPT, an assistant I wrote that runs entirely on your machine: ninety intents, a nine-layer router, no cloud, no API key, nothing ever leaving your computer. Ask "Is this a virus?" and it checks who really signed the file instead of trusting the name. Ask "what should I upgrade?" and it reads your own load history and names the actual bottleneck.\I could have shipped pip install openai in an afternoon. I didn't. A monitor that reads your machine and then phones a stranger's server to explain it is a contradiction, so hck_GPT runs on a rule engine and an optional local model, and nothing you ask it ever leaves the room.But the part I actually lose sleep over is memory.\Every monitor on earth forgets you the second you close it. HWiNFO, Afterburner, open them tomorrow, and they'll draw your 78°C against the exact same line they draw for every machine that has ever existed. I couldn't live with that. The most useful number a monitor can give you isn't the temperature. It's whether this temperature is normal for you.\So every reading lands in one of five workload buckets, and each bucket keeps its own learned normal, folded forward with a Welford accumulator. Three numbers per bucket. Never recomputed:def _welford_add(acc, x): """Fold one sample into a running accumulator (Welford, 1962).""" n = acc["n"] + 1 delta = x - acc["mean"] mean = acc["mean"] + delta / n acc["n"] = n acc["mean"] = mean acc["M2"] = acc["M2"] + delta * (x - mean)\==82°C while you game: fine. 82°C sitting idle: something's wrong.== Same number, opposite verdict, judged against your own past, not a spec sheet. Voltages get the oldest math in the project: median and MAD, Nelson rules from 1984, hunting the slow sag, a threshold will never catch.\Now, the rail from earlier. I am the one who sagged for three years inside spec while everyone, me included, swore nothing was wrong. I built the alarm I never had. Statistics from the sixties, babysitting a power supply. Boring, predictable, and that's exactly why I trust them. Statistics don't hallucinate. People do. People looked me in the eye at nineteen złoty an hour and said, "Just try harder, the rate will improve." It never improved. The math, at least, never lied to me.Microsoft said no. Then Microsoft said yes.Two weeks before the listing went live, I published a post called "Microsoft said no."\My first .msix got rejected. Not for the code, for a blurry tile icon and a privacy-policy link that pointed at the wrong file.\A year of voltage-anomaly math and offline AI, and my blocker was a fuzzy PNG. The reviewer was right, and it stung anyway. So, I fixed it. A crisp icon, drawn clean. A real, readable privacy policy, living where it belongs. A patched build with thirteen more fixes my testers had found in the meantime. Resubmit. Wait.\Then, one morning: approved. A rejection that says "fix these two things and resubmit" was never a no. It was the Store telling me I was this close.\I thought that was the finish line. I was wrong, and the way I was wrong is the actual point of this whole piece.The three days after "approved."Here is what a Store badge proves: that you exist, that your paperwork is clean, that a reviewer opened your app, and it launched. Here is what it does not prove: that the thing is any good on a machine that isn't yours.\Three days after the celebration, a tester named Adam sent me a screenshot. The in-game overlay, the thing whose entire job is to show your temperatures, showed this: --. Just dashes. On his machine, the monitor was blind.\A monitor that can't see temperatures is a monitor in name only. I'd shipped it to the Store. It had passed certification. And it was, for a stranger who wasn't me, useless.\I spent that weekend doing an autopsy, and it turned up two failures I want to lay out honestly, because they're the most useful things in this article.\One: Microsoft approved my app into a folder that the app itself can't write to.\A Store install lives under C:\Program Files\WindowsApps, which is read-only.\My database, my learned baselines, my preferences, every single write failed, silently, on every Store machine.\The app that was supposed to remember your machine for the life of the install was, on the exact platform I'd just fought my way onto, amnesiac from the first second. The fix was a path layer that detects a packaged install and redirects everything writable to %LOCALAPPDATA%.\==Six copies of the same duplicated helper across the codebase, unified into one. Unglamorous. Load-bearing.==\Two: my sensors only worked while you were looking at them.\Live-data bus that feeds the overlay, the charts, and the learning engine was being produced by the UI pages themselves. Open the My PC page and data flowed. Close it, and the producer died, dashes, forever, and zero samples reaching the part of the app that learns.\==Schrödinger's temperatures==: ==real only while observed==. The fix was one always-on background collector, a single producer that runs whether or not any window is open.\And the deepest one, the one that actually earns the word useful. The learning engine only knew how to learn CPU temperature, and CPU temperature, on Windows, needs an extra sensor tool that most people never install. So on a normal machine, with no extra tools, the thing I was proudest of learned nothing. Zero percent. Forever. I'd built a memory that only worked on my desk.\So I rewrote it to learn from whatever real signal a machine actually has, CPU temperature when a sensor exists, GPU temperature on any NVIDIA box, CPU load always, and to show its best real reading with an honest note about what's still locked. On a simulated machine with no extra sensors, it went from folding zero samples to folding three hundred, from 0% to a real, growing baseline. It finally learned on a machine that wasn't mine.\That is the whole difference between a listing and a tool. The listing says I exist. Only a stranger's machine, working, says I'm useful.What the warehouse already taught me about thisI've seen "within spec but useless" before, and not in code.\19pln/h (~4€/hrs) an hour was within spec. The contract that meant an older woman scanning groceries next to me couldn't take a sick day, even when she was ill, was within spec.\==Every one of those systems worked, on paper, by the number, technically fine. While grinding down the people inside them.== Working is not the same as good. A thing can pass every check and still fail the only test that matters: does it actually help the human standing in front of it?\I built a whole company's worth of that lesson into one weekend of bug fixes.The kid who was afraid of disappearing.For the first months, I shipped into an empty room. Thirty views on a post. Zero stars on the repo. You write into that silence long enough, and you start to wonder if you're really there at all.\Then one article reached forty-four thousand people, another hit #1 trending on HackerNoon, and the stars climbed from fourteen to sixty-odd. Small numbers by internet standards. Not small to me. And the fear I'd been running on quietly changed shape: for a year, it was I'm scared of disappearing, so I build, which is loud but clean — when you've got nothing, you've got nothing to lose. Now it's heavier. Now there's something I can lose.\I don't have a clean ending for that. Anyone who sells you one is lying.\But I have this.\A permanent listing in the Microsoft Store is about the most concrete I exist as a solo dev can get, and a weekend spent making it work on a machine I've never touched is the most concrete it's useful.\Every build is Sigstore-signed, clean on VirusTotal, and checked by CodeQL on every commit. You don't have to trust a stranger's ZIP anymore. That paranoia has been in the project since release one, because I know exactly what it costs to trust a system that only looks fine.\I built a program that learns for the entire life of the install. I learn for the life of mine. This grind is a year old, it hasn't ended, and it isn't going to, and I've finally understood that this isn't the tragedy of the story. It's the proof of it.\A finished man has nothing left to recover. I get to keep going. That's a pulse.\==Welding plastic by day, coding by night, the same rhythm that built every line of this.== To every tester who spent hours breaking things I'd never have found alone (==Adam, Samanta, Przemek, Abdul, this one's yours==), to the strangers whose questions turned into real features, to everyone who starred it or just said "keep going": this is yours too.\PC Workman is free and open source (MIT). No accounts, no cloud AI, nothing leaves your machine, and now, one click to install. The next chapter is already loading. There's a freeze bug a stress test caught last night, and a build going out to fix it.\Not yet. Not today. I'm still here. Still shipping.\Everywhere I am:linktree.com/marcin_firmugaGitHub: HuckleR2003 - Microsoft Store: PC Workman · pcworkman.dev\