After graduating with a Computer Science degree, my goal seemed obvious.

Become a programmer.

I had already spent years studying while working as a computer technician. I had supported real systems, worked with networks and servers, and learned firsthand how technology affected a business. Graduation felt like the moment to move forward and find a bigger opportunity in the IT industry.

So I left the company where I had been working and went looking for the programming career I had imagined.

It didn't happen the way I expected.

One opening. A long line of applicants.

The technology industry I entered was very different from the one graduates see today. Programming jobs were not everywhere, and competition for the opportunities that did exist was intense.

I remember situations where around 25 applicants could be competing for a single position. Many were graduates from well-known universities. Everyone wanted the same opportunity, and only one person was going to be hired.

Imagine being a new graduate standing in that line. You have the degree. You have ambition. You know what you want to become.

But so do the other 24 people.

That was one of my first lessons after graduation: finishing school and beginning a career are two different challenges.

The career I wanted didn't arrive

I kept looking for the programming opportunity I wanted, but I wasn't able to land the job I had imagined.

When you're young, it is easy to think of that as falling behind. You see a destination—programmer—and assume every step should move directly toward it.

My next step went somewhere else.

I became a Computer Science instructor.

On paper, that might look like a detour from becoming a software developer.

Looking back, I see it differently.

It wasn't a detour. It was preparation.

Teaching became another kind of education

I was happy teaching. I enjoyed sharing what I knew and working with students who were beginning their own journey into computing.

But teaching introduced a completely different challenge.

You can't teach what you haven't learned.

As a student, sometimes you can understand enough of a topic to pass an exam. As an instructor, that isn't enough. Someone is sitting in front of you expecting you to explain the idea clearly. Then they ask a question you didn't expect.

Suddenly, you find out very quickly whether you really understand the subject. 😄

There were topics I had never taught before and concepts I needed to understand more deeply before I could explain them confidently. So I studied more. I prepared more. I learned faster.

Every class became a deadline for learning. Every student question could reveal another gap in my own understanding.

I thought I was teaching Computer Science. Computer Science was still teaching me.

Teaching changed how I learned

That experience gave me something that would remain useful long after I left the classroom: the habit of learning something well enough to explain it to somebody else.

That matters in software engineering. Developers explain designs to teammates. Senior engineers explain trade-offs. Technical leads communicate architecture and constraints. Code reviews require you to explain why one approach may be safer or easier to maintain than another.

Today, even when working with AI coding tools, the same principle applies. If I cannot explain why a generated solution is appropriate, I probably don't understand it well enough to own it.

The technology changed. The responsibility to understand didn't.

Not every step has to look like progress

When I left my technician job, I was searching for a bigger opportunity. I thought that meant getting hired as a programmer.

Instead, the opportunity was a classroom.

At the time, I couldn't see where that road was going. I only knew that I needed to keep learning and make the most of the opportunity in front of me.

Years later, that period makes much more sense.

Sometimes the opportunity you don't expect is preparing you for the opportunity you haven't seen yet.

I didn't get the programming job I wanted immediately. But teaching strengthened my fundamentals, forced me to communicate technical ideas, accelerated my learning, and kept me moving inside the field I wanted to build my life around.

Then the industry began changing

While I was teaching and continuing to learn, something else was happening around us.

Software outsourcing was beginning to create new opportunities.

I started thinking beyond simply getting hired. There were possibilities to build software for clients beyond the local market. There were possibilities to build a business.

I had ambition and ideas.

What I didn't have was capital.

And then, unexpectedly, I connected with an entrepreneur from the United States.

THE NEXT THING

From Computer Science Instructor to First Startup

How that connection happened—and how it eventually led to my first company—is another story.

Learning the next thing

I graduated expecting one path. Life handed me another.

The programming job didn't arrive when I expected it. Teaching did.

And teaching turned out to be exactly where I needed to keep learning for what came next.

Learning the next thing.