Notes

(Trying to) Reverse Engineer our Dorm Washing Machines

The washing machines in my dorm are free, which is great. However, they're also often busy โ€“ as most college students are probably aware, Sunday nights are by far the most popular time to do laundry, but I'm always surprised how many machines are running whenever I visit our basement. Even at seemingly random times (1am on a Wednesday night) there's usually at least 1 machine running, if not more.

So on my quest to endlessly procrastinate, I wanted to see if there was a way to track washing machine usage in real time. The washing machines in our dorm claim to use an app called "Speed Queen" to allow students to monitor their loads of laundry. The backend behind their app uses is fairly simple โ€“ a series of calls to an API that returns machine status and location information. I was able to see requests using Proxyman on my phone, and while requests do need TWO different authentication headers, the data that it returns is actually in a nice format. Cool!

The data for other dorms is awesome โ€“ I can see the status of individual machines, if their door is open, how much time is left, among other things. Of course, my immediate desire is to create some sort of frontend that displays the status of our dorm's washing machines in a nicer way, and collects data on when they're the busiest. Then, at the end of the year, I could publish a deep analysis of all the data I collected, to better understand the patterns of college students like myself.

Sadly, this dream was crushed by fact that for some reason, my dorm's washing machines aren't on the app. The dorm shows up, but the API only returns an empty array, a sad reminder of my lack of control in the beurocratic machine that is Stanford. I'll probably submit a "fix it" ticket, but I don't have a ton of other options.

To try to extract some meaning from this, I do think this is a nice reminder of how some issues can't be solved with "more CS." Often, you'll need intervention from a greater institution, approval of some higher power, or connections to people who can actually solve the issue at hand. Or, you can bodge it, and stick little accelerometers to each machine. Thanks for that idea, Jerome.