Tanaka-san had been studying English at our school for eleven years.
Eleven years of payments. Eleven years of Tuesday evening classes. She knew the Japanese staff by name. She'd watched the neighborhood change through the window of that same classroom.
And yet here she was, explaining to me, the newest foreign teacher, why she was learning English.
"I want to travel," she said, a little wearily. "Someday I want to visit New York."
I smiled and nodded, but something felt wrong.
This wasn't a new student. This was one of the school's most loyal customers. She'd probably explained this same goal to a dozen teachers before me—each one cycling through on a one- or two-year contract, each one starting from zero.
Why didn't I know this already?
The answer was sitting on the Japanese staff's computer: Lotus Notes.
The school had a student database. It tracked goals, progress, purchase history, lesson notes. Everything a teacher would need to pick up where the last one left off.
But it was entirely in Japanese. And the interface was so arcane, so labyrinthine, that even if I'd been fluent, I'm not sure I could've navigated it without a manual.
For the native English teachers, most of whom spoke little to no Japanese, the database might as well not have existed.
So every year, when a new teacher arrived, the school developed amnesia. Students like Tanaka-san had to re-explain their goals and dreams. Again. And again.
From their perspective, it must have felt like paying for a gym membership where the trainers forgot your name every January.
I didn't know how to code.
I wasn't a computer science major. I'd never taken a programming class. But I'd always had a thing for logic—puzzles, patterns, systems. At my first job out of college, an investment bank, I'd been pulled into the structuring group while other analysts stayed on the typical sales track. My job was figuring out how to model complicated things in Excel.
So when I saw the student database problem, I didn't think: Someone should fix this. I thought: I wonder if I could fix this.
What if there was a program that worked in Japanese and English? A database the Japanese staff could update, and the English teachers could actually read?
I chose Java. It seemed like the easiest way to build a desktop app that I could develop on my Mac at home and run on the school's Windows computer.
Now, you have to understand what learning to code looked like in 2012.
There was no Stack Overflow. No ChatGPT. No AI tutors that could explain your error in plain English.
When I got stuck, and I got stuck constantly, I had to Google search, sift through forum posts from 2003, and pray that some kind stranger had answered a question similar enough to mine. Sometimes I'd post my own noob questions and wait days for a response that might never come.
I spent nights after work staring at error messages I didn't understand, tracing bugs through code I barely understood.
It took months.
But eventually, I had something working.
A bilingual student database. Dynamic internationalization, users could switch between English and Japanese at any time. Student editors that tracked class enrollment, counseling notes, skill levels across eleven categories, purposes for studying, TOEIC scores, and self-study programs. Reports that could be viewed on screen, exported to Excel, or saved as PDFs. Password-protected financial sections. Advanced search across all tables.
I'd even designed it with data privacy in mind. Each school would have its own local instance, so no student information would leave the building.
I tested it on the school computer. I showed it to the staff. Everyone seemed excited.
Then I did something that felt either very brave or very stupid: I emailed the president of the company.
I had put together a presentation. I recorded a video walkthrough. I explained the problem, showed the solution, and sent it off.
A few weeks later, I got a response.
Not from the president, but from someone in charge of all the foreign staff across the company. They wanted to meet.
I wasn't necessarily asking them to adopt my little database. What I really wanted to know was: Is there a role here for someone like me?
I'd built something useful. I'd taught myself to code. I'd identified a real problem and solved it on my own time. Was there a position at Aeon, outside of teaching, where I could do more of this? Build tools, improve systems, help both staff and students have a better experience?
The meeting was polite. Professional.
And the answer was clear: no.
At Aeon, you were either an English teacher or you trained English teachers. There was no third option. No concept that a role could be invented out of thin air. No room for someone who didn't fit the existing categories.
I left that meeting knowing there was no future for me there.
But something else had happened. Something I didn't fully recognize at the time.
I'd built something. Not for a grade. Not for a boss. Not because anyone told me to. I'd seen a problem, felt frustrated by it, and taught myself enough to fix it.
The company didn't want what I'd built. But I'd learned that I could build.
And that turned out to matter more than any meeting with any executive.
And more than that, I'd learned how to learn. How to see a broken system and ask: What would it look like if this actually worked? How to sit with a problem long enough that the shape of a solution starts to emerge. How to teach yourself whatever skill the problem demands.
No one handed me that. No credential. No permission. No job title that said I was allowed to try.
I just tried anyway.
The best way to learn how to build products is to find a real problem and refuse to let anyone tell you you're not qualified to solve it.
The skills come from the struggle. The intuition comes from caring enough to keep going when you're stuck. And the confidence comes from proving to yourself, if no one else, that you can figure it out.
No one at Aeon could imagine a role for me. So I stopped waiting for someone else to imagine it.
I built my own.