Noah Qin
3 min read

Swift Student Challenge — I Didn't Make It

My SSC submission wasn't selected. Here's what I think went wrong, and what I'll do differently next time.

March 28, results came out. Not selected.

I won’t pretend I wasn’t disappointed. I spent real time on this project, and I genuinely thought it was solid when I submitted it. But after sitting with it for a few days, I started asking a more useful question — not “why didn’t they pick me,” but “what did I actually build?”

I built a math visualization app. Swift, SwiftUI. The core idea was letting users see functions come alive — drag parameters around and watch the graph change in real time. Derivatives, Riemann sums, the stuff that’s dry and abstract in a textbook, turned into something interactive and visual.

Technically, I think it was fine. The UI was smooth, the interactions felt natural, the math worked.

But it wasn’t something the world needed.

When I’m honest with myself: if I were a math student, would I use this app?

Probably not. Because Desmos already exists. GeoGebra already exists. Wolfram Alpha already exists. These tools have been around for years, they’re more fully featured, and they have massive user bases.

I didn’t build something nobody had done before. I built another version of something others had already done well.

The problem was the starting point.

I picked this direction because I thought math visualization was cool. And it is — but “I think this is cool” is not the same as “this problem needs to be solved.”

Looking back at another project I’ve been working on — Vex, a multi-language version manager — the origin was completely different. I was genuinely frustrated by the mess of nvm, rustup, pyenv, sdkman all fighting over my home directory. Nobody had to convince me to build it. The pain was real and it happened every day.

The SSC project didn’t have that. There was no “I can’t take this anymore” moment. Just a “this would be pretty cool to make” thought.

A good project should start from a real, specific pain point. Not “this technology is interesting,” not “this topic is trendy,” but “this thing is bothering me or people around me every day, and I want to fix it.”

Projects that start from pain have a natural advantage: you don’t need to manufacture a story about why they matter, because the answer lives in your daily experience. You also don’t need extra motivation to keep going, because the problem doesn’t go away until you solve it.

I’ll enter the Swift Student Challenge again next year. But next time I won’t start from “what tech would be fun to play with.” I’ll start from “what problem actually makes me frustrated.”

Find the problem first. Then figure out how to solve it with Swift.

Order matters.