RSS Amplifier

Bits and Pieces · Oct 13, 2025

The Fraud Who Never Finishes

0
Sign in to vote or save

Haron Kipkorir · Bits and Pieces

I started loving coding because of movies and TV shows. The hacking scenes, specifically. Seymour Birkhoff from Nikita was the catalyst, along with shows like Intelligence. Before that, I was going to be a car engineer, maybe a structural engineer at best. But those scenes changed everything. They made coding look powerful, elegant, almost magical.

In Form 1, I decided I’d do computer science. Not because I knew what it was, really, but because it needed the most points to get in—meaning it was big and grand. That appealed to me.

By my first year at university, I was deep into AI. I kept reading Peter Norvig’s book, absorbing the concepts, feeling like I was on the edge of something important. But I quickly hit a wall: I wasn’t good enough at programming to do anything meaningful with it. So I made a pragmatic choice. I’d prioritize learning to program first, build that foundation, then come back to AI.

Except I never really came back.

After university, I tried to return to AI. But by then, the field had moved on. Everyone was using Python, NumPy, and TensorFlow. I had specialized in C#. Starting over with Python basics felt overwhelming, like going back to zero after years of building expertise elsewhere.

But there was something else bothering me, too. Using TensorFlow, relying on these high-level libraries—it felt like cheating. Like using a CRM instead of building a real system. I didn’t want to be a consumer of tools. I wanted to be the builder of TensorFlow, not just someone who used it.

So I enrolled in Andrew Ng’s deep learning course, the one that actually explained the math, the calculus, the algebra behind neural networks. Finally, I thought, this is real. This is what I wanted. The course made me appreciate all those university math classes I’d endured.

Then work and life got in the way. The course was abandoned.

And for the past four years, I’ve been a working software engineer doing web backend development. Learning frameworks. Learning libraries. Using tools other people built.

The exact thing I rejected in the AI world.

I’ve been living in contradiction to my own values for four years.

I specifically didn’t want to just use TensorFlow because it felt like surface-level work. Yet I’ve spent four years learning ASP.NET Core, Entity Framework Core, MassTransit, MediatR, whatever the next library is. Always learning new frameworks and patterns. Never building them.

When I’m honest with myself, I realize I’m always consuming other people’s abstractions, never creating my own. And there’s a voice in my head that keeps whispering: Is this real engineering? Are you actually good at this? Or are you just good at following documentation?

Let me tell you about a project from high school. Final year, we were assigned a project. I found it hard—hard enough that I bought a project someone else had done. An MS Access database system.

But here’s the thing: I didn’t just submit it. I customized it. I rebuilt parts of it. I learned every single thing about it—the login form, the queries, the reports. I made it mine. And that learning experience? It was one of the best I’ve ever had.

I wasn’t thinking about whether MS Access was “real” engineering. I wasn’t worried about whether I was building foundational tools or just using them. I was just... building. Learning. Making something work. Making it mine.

I had something finished. Something tangible. Something I understood completely.

And I was proud of it.

I haven’t had that feeling since.

Not because I haven’t tried. I’ve started dozens of projects. Each one begins with excitement, with vision. This will be the one, I think. This will be the project that proves I can build something real.

But I never finish them.

Sometimes I tell myself it’s because work gets busy. Sometimes I convince myself the idea wasn’t good enough. Sometimes I pivot to learning a new technology instead, telling myself I need to know this first before I can build that thing properly.

But the truth is simpler and more uncomfortable: I don’t think I have a single complete project I’m genuinely proud of. Not since that MS Access database in high school.

And that makes me feel like a fraud.

Somewhere along the way, I developed strong opinions about what constitutes “real” software engineering. Real engineers build tools, not just use them. Real engineers understand the math, the fundamentals, the theory. Real engineers create infrastructure that others build upon.

These aren’t bad values. But they’ve become a prison.

Every project I start now carries enormous weight. It can’t just be a project—it has to be the project. The one that proves I’m not just a framework-hopper. The one that shows I understand things deeply. The one that’s foundational, significant, worthy of respect.

That pressure is paralyzing.

Because how do you commit deeply to one direction when you’re terrified of being wrong? When finishing something “small” feels like admitting defeat, and attempting something “big” feels like setting yourself up for another abandonment?

So I’ve been thinking: Was becoming a software engineer a deliberate, conscious decision? Or was it something I did because I thought it looked cool, but don’t actually love?

The more honest question might be: Do I not love software engineering? Or do I not love who I’ve become as a software engineer?

Because when I think about that high school project, I loved it. The building, the learning, the ownership. And when I think about abandoning Andrew Ng’s course, what I remember isn’t relief—it’s regret. I wanted to understand those foundations. I wanted to build things that mattered.

But I’m not doing either of those things now. I’m building CRUD apps and learning the latest .NET patterns because the community has moved on from the last approach.

I’m not building. I’m not learning deeply. I’m not creating anything I’ll remember in five years.

I think what I’m craving isn’t a different career. Its direction. Structure. Clarity.

Waking up and knowing for sure what I’m supposed to be doing. What the MVP is before building out the complexities. What “done” looks like.

Maybe that’s why the high school project worked. The requirements were given. The scope was clear. There was a deadline. I could finish it.

Maybe that’s why everything since then has failed. I’m trying to give myself permission to build something significant, but without constraints, “significant” becomes “infinite.” And infinite projects never get finished.

Here’s what scares me most: committing deeply to one direction and being wrong. Wasting my time doing the wrong thing.

But I’m already wasting my time. Just in a different way. I’m wasting it by never committing to anything. By keeping my options open. By learning broadly instead of going deep. By starting projects I’ll never finish.

I think I want the status and identity of being someone who builds foundational tools. But I’m not sure I want the actual work of building them—the years in the wilderness, the uncertainty, the slow progress, the risk of irrelevance.

And maybe that’s okay to admit.

Maybe the person who gets excited about customizing an MS Access database and the person who wants to build the next TensorFlow are two different people. And maybe I’ve been trying to be the second person when I’m actually the first.

I don’t have an answer yet. But I think I need to finish something. Anything.

Not something that proves I’m a “real” engineer. Not something foundational or impressive, or historically significant. Just something scoped, completable, mine.

Something I can point to and say: I built that. It’s done. I’m proud of it.

Maybe that MS Access project taught me something I forgot: that the joy isn’t in building the most important thing. It’s in building something—understanding it completely, making it work, making it yours, and actually finishing it.

Maybe software engineering is my thing. But maybe I’ve been doing it wrong.

Maybe I need to give myself permission to start small again. To build something “simple” with the “cheating” tools. To actually ship something instead of endlessly preparing to build something worthy.

Maybe the fraud feeling doesn’t go away when you finally build something impressive.

Maybe it goes away when you finally build something finished.

I don’t know yet. But I think I’m going to find out.

Read the original on developerharon.substack.com

Comments

Nothing yet. Say the first thing.

    Sign in to join the conversation.