Solve Your Own Problem

September 20, 2025

Earlier this month I had the opportunity to return to EECS 441, the CS capstone class I took at University of Michigan with Professor Elliot Soloway. I delivered a presentation about my experience trying, and failing, to build an education video game called EscapeCodes.

I presented three mistakes our team made while building EscapeCodes and offered some solutions aimed at helping the students avoid the same pitfalls.

All the solutions essentially boiled down to one idea: solve your own problems.

Why is that, when university students set out to create a product for the first time, they don't start by looking at what issues need to be solved in their own life but, instead, gravitate towards the ideas which seem "coolest", have the perception of creating "impact", or offer the opportunity to use a trendy technology?

One possible explanation I find compelling is, the sort of person who gets a computer science education at a top university in the US comes from a privileged enough background such that they don't experience many painful problems on a day-to-day or even weekly basis. Unfortunately, the only products that succeed are ones that solve painful, recurring problems. So students naturally look at the problems others are experiencing to find something worth working on.

Solving someone else's problem tends to be a major headache, however. To begin with, you have to find and convince someone experiencing that problem to use your janky prototypes such that you can get useful feedback. You also don't have the ability to read said person's mind so, at some level, you are constantly translating the feedback you are recieving. Because its your own prototype you are, of course, going to decide to interpret said feedback in the most favorable way possible. Inevitably, despite all your best intentions (and because you've been lying to yourself about how good the product is), you will deliver a solution which is useless for your target audience or, worse, actively harms your them in ways you didn't expect.

Its much easier, at least when you're starting out, to solve your own problems. You can test the product as you're building it, getting instant feedback. You can see how often you use your own thing and whether it is delivering outcomes you are happy with.

Every technology which is currently useful for millions of people had to start out being useful for one person first. Why not make things easier and make that first person yourself?