Why I did it.

1,832 reads

A year and a half ago, I opened up GitHub and hit the “New Repository” button. I didn’t know it then, but what seemed to be merely a side project would grow into my proudest achievement, and a tangible reflection of my goals and values.

For all of my life, I have looked up to people such as Oprah Winfrey, Michael Jackson, and Bill Gates — people who never settled for less, and were always driven to seek success by something deep within. I have also always been inspired by my parents, and the many sacrifices they made for me to have the opportunities that I have available to me now. All of the people whom I have ever seen as role models have one thing in common: they achieved their dreams not by chasing a tangible result, but by values in their hearts that motivated them to work toward the success they truly believed they deserved. I often ask myself what I can do to be like them. I ask myself what I want to achieve. I ask myself what strengths I have that I can use to create the life that I believe I deserve.

For a long time, the answer was clear as day — I wanted to be a programmer just like my father. And beyond that, I wanted to use programming as a gateway to start businesses and organizations, to reach out to other people, and to someday even make a name for myself within the global community. I wrote up countless ideas for websites and apps, thinking that I could change my world all by myself, a single teenager without any real-world experience. I spent thousands of hours coding what I thought could be the Facebook, or the new Windows. Eventually, though, I realized that I was still in the same place I had started in. I started freelancing on Upwork, doing full-stack JavaScript jobs — or, at least, applying to them.

I had been using Node.js for a few months, and had completed a few Web development jobs, but JavaScript fatigue set on very quickly for me, and soon, every idea I had for a project or website was lost behind a wall of project configuration and massive node_modules directories. Combined with my virtually empty Upwork profile, and inability to land freelance jobs, I felt that spending my free time programming, which once seemed to me like the most practical decision possible, was becoming a waste of my time. Nevertheless, something pushed me to try just one more new project.

At the time, I knew almost nothing about programming in Dart. It was merely a language I had stumbled upon one day during a casual Google search, while looking for inspiration. I was under the impression that it would replace JavaScript, and so I gave it a shot. Strangely enough, it felt like love at first sight. It seemed to me that Dart was the right tool, and that I could use it to finally bring to life ideas that otherwise would remain trapped in my head.

However, one very important component was missing — a server-side framework. Even my failed projects were powered by some sort of tool that made it feasible to write a back-end. Especially in Dart, where it is possible to share large amounts of code between clients and servers, I refused to believe that there was simply no solution to prototype full-stack applications. Thus, Angel was born.

After a few weeks of developing Angel, an acquaintance from a programming forum reached out to me, offering me money to build a Web application for him. This was my first chance to put Angel to the test, and see if my hard work was worth anything. We were building a “proxy dispenser” — essentially, a website that sold infinitely-large lists of proxies that were checked beforehand and guaranteed to work. Not only did we need a user-friendly front-end that made us money, but we also needed to securely handle user accounts, and payment processing using Stripe and PayPal. The project really dragged on because we mostly had no idea what we were doing, but eventually, we finished, and got the site to run smoothly, without any bugs or glitches.

The website was taken down by its owner long ago, but it was enough to reaffirm my faith in myself. I had a reason again to believe that I could live up to the achievements of all of my role models: even though at first it seemed like I couldn’t, I did it in the end, and I was proud of myself for it.

As soon as we launched, I promptly quit applying to jobs on Upwork. It made more sense to me to work on something that made me happy than to continue getting frustrated in an environment that seemed wired against me.

In the months that followed, I continued to develop and promote Angel, if for no reason other than that it gave me self-confidence. For some time, nobody would turn their head toward the project, let alone use it. Regardless, I kept at it. Angel is a visible reminder to myself that even when I feel incapable, I have the power to ultimately achieve my goal, if I persist instead of giving up at the first sign of failure.

A year and a half later, Angel has almost 130 stars on Github, and many people within the Dart community, as well as those outside of it, are interested in the project, and the philosophy behind it. There are dozens of plug-ins and middleware available for Angel, and a few companies started using Angel in production. Others have reached out to me about internships, referencing Angel. If I had never pressed the “New Repository” button that day, or if I had simply given up on Angel because nobody was interested in it, then none of it would have ever happened. That in itself is motivation to me to continue working on it for as long as I can.

When you star Angel, when you download Angel, when you use Angel as a dependency in your project — you’re not using a piece of software. No. You’re telling me that you believe in me. That you believe in my dream. You’re telling me not only to develop this project, but to take my hopes and ambitions, and apply them to every success or failure that life throws my way, starting from that very moment.

So, what are you waiting for? I now present to you the Angel framework. Try it out. File a bug report. Tell your friends about it.

Tags