The Power of Code: Helping My Mom Pass Her U.S. Citizenship Exam

We came to the U.S. as refugees in 2003. In 2025, my mom finally became a citizen. The bridge between those two moments was love and code.
The Why
My mom has always carried more than her share: rebuilding life in a new country, a kidney transplant in 2016, and the quiet daily work of learning English. She attempted the naturalization exam twice before (most recently in 2021) and failed. Watching her study with English-only apps felt like watching someone try to memorize a language she couldn’t yet read. It wasn’t comprehension; it was survival.
When her 2025 interview was scheduled, we had two months. I had my own responsibilities, but I also had something else: the ability to build what she needed.
Designing for One Person
If I designed for “users,” I’d have built another generic flashcard app. Designing for my mom led to different choices:
- Native-first learning. Dinka wasn’t available; Sudanese Arabic was close and familiar.
- Audio over text. Reading was the barrier. Listening was the unlock.
- Confidence loops. She didn’t need a leaderboard; she needed momentum and small wins every day.
What I Built
- Frontend: React + Tailwind for a fast, clean, responsive UI.
- Backend: FastAPI + SQLAlchemy for simple, reliable APIs and persistence.
- Content pipeline: I collected the 100 USCIS civics questions and used GPT-4o mini for text-to-text translation into Sudanese Arabic and for text-to-speech generation.
- Storage/delivery: Supabase to host and serve audio efficiently.
- Learning features:
- Practice and Exam-Simulation modes
- Adaptive focus on weak areas
- Progress tracking with streaks and badges
- Per-question analytics for time and accuracy trends
None of this was novel in isolation. What mattered was the fit: every choice mapped to a specific obstacle my mom faced.
Two Months, One Goal
We studied together each day. She listened, repeated, and answered in both English and Arabic. The app didn’t just drill questions—it removed friction and returned dignity to the process. Instead of cramming, she learned.
On interview day, she passed.
For the first time since leaving South Sudan in 2003, my mom became a U.S. citizen.
What I Learned
- Empathy is a feature. When you build for one real person, the right product emerges naturally.
- AI is a force multiplier. Translation and TTS with GPT-4o mini turned a weekend plan into a practical, tailored tool.
- Impact beats polish. Shipping the right thing quickly mattered more than perfect animations or a complex architecture.
Why This Matters to Me
I’ve shipped plenty of software. This is the one I’m proudest of. It wasn’t a startup or a hackathon; it was a promise. Code, used with care, can collapse the distance between someone’s dream and their reality.
The most meaningful thing I’ve built wasn’t for scale. It was for someone I love.
What’s Next
I’m exploring ways to generalize this into a template others can use: multi-language content pipelines, audio-first flows, and accessibility-first patterns. If I can help another family shave months off this journey, that’s worth it.