How I Became a Software Engineer
Tags: bootcamp, junior, job
Published: 2019-07-02 15:29:48

---
title: How I Became a Software Engineer
published: true
description: My journey from Customer Support to Software Engineering
tags: bootcamp, junior, job
canonical_url: https://www.rahatcodes.com/posts/howibecameasoftwareengineer/
---

Career Karma recently posted something on twitter “You’re always one decision away from a totally different life”. Over the past year I’ve repeatedly been in situations where one decision completely altered where my life was headed.

A couple of years ago I was a college dropout with not much direction, working in customer support and really hating where my career was headed. I eventually went back into college and started studying computer science but it wasn’t enough for what I wanted in life. I was working towards this degree that quite frankly, other people cared more about than I did. I still can’t care less about it. I needed something that would actually give me hands-on experience with technology that is relevant for this day in age. Traditional college education alone was just not going to cut it and it was not the best way for me to learn.

A year ago I made the first decision that completely changed my life. I decided to enroll in a bootcamp. I researched a few different options and eventually settled on a bootcamp my best friend had found. It was a Trilogy Bootcamp at Columbia University. I loved the fact that I was going from someone who didn’t realize that the in-line styling I was doing in my HTML files was called CSS, to someone building awesome modern web apps in React.

With each project we completed in bootcamp, my confidence rose. I was learning a lot and I grew hungry for more knowledge. In addition to the bootcamp, I began going through courses on Udemy, Front End Masters and even a workshop from the legendary Kent C. Dodds. I made it a point to load up with as much knowledge as I could, and work on whatever I could get my hands on. I wanted to learn all of the different frameworks and technologies that were gaining popularity in the job market.

In March of 2019 I graduated from the bootcamp. I was ready to hit the job market. I failed quickly. I applied to hundreds of jobs in my first month and only heard back from a handful of companies. The majority of them did not go any further than a phone call or a failed code assessment. My confidence was immediately dropping. I began further immersing myself in courses on Udemy thinking, “ If I learn more, these companies will hire me, right?” Well that idea was about to get challenged and ripped apart very quickly.

I started promoting myself on Twitter and becoming more active in the different tech communities that exist in the Twitterverse. I was discovered by the founder of a small start-up who was looking to hire more developers for his company. He was intrigued by my background in customer service and seemed to be surprised that coding was something I enjoyed. I suppose his current employees were just not as enthusiastic about the whole coding thing as I was. We spoke on the phone and he quickly invited me to speak in person to see if I would be a good fit. I was excited at the prospect of my very first on site interview.

I was proud to reveal that I was working on a project that included a lot of the tech stack they were using. I was using React, GraphQL, and PostgreSQL. I then proceeded to fail at my first interview, unable to really explain the underlying reasons why anything I coded was actually working. After being grilled about the technology and answering more or less everything incorrectly, I was told I probably would not be a good fit for the role. I was immediately crushed but what he did for me next was something I am truly grateful for today. He spent almost an hour giving me feedback and pointers on how to improve myself. Here is a summary of what he told me:

* I was trying to learn too many things at the same time, and none of it was actually sticking in my head.

* I was focusing too much on what he called the “sexy labels” and abstractions that exist in modern technology.

* I needed to go back and repeat the basics and rebuild my fundamentals.

* I needed to double down on my vanilla JavaScript.

* Run SQL queries without the use of an ORM.

* Forget things that made the development life easier and go through the pains of doing things like building a server with Node and not with an Express framework.

These were all actionable items that I knew I could take with me and work on. He didn’t stop there, he also told me what I was doing right:

* Continue to actively commit my code on Github.

* Continue writing blog posts about my journey as well as sharing things I learn about.

* Continue to be active on Twitter and learn from others online.

I think the feedback session lasted longer than the interview itself and I will forever be grateful that I failed at this moment. I went back and doubled down on the basics. I focused on working with vanilla javascript. I re-learned how to build simple Node apps. I did a couple more projects using raw SQL queries. At the same time, I kept myself active online and ready to network with others. I developed a small introduction to React workshop and presented it in the form of a webinar. It was one of the first times I created a full project in React without relying on the Create-React-App CLI.

As I was doing all of this, I was looking for meetups, hackathons, and conferences to attend. I attended a few hackathons with varying levels of success. I made a great connection at the Yale Hack Mental Health Hackathon and am now working on a side project with a start-up for a mental health app for college students. These connections and projects were all improving my skills but I needed a paid engineering position to get myself out of my customer support job.

Now we’re coming up on another decision that completely changed my life. I decided to volunteer at a conference called Full Stack NYC. The thing is, I almost did not. This was happening during Ramadan and I was not sure if I could fast for the entire day and also work at the conference. I sucked it up and did it anyway.

I have a lot of trouble with socializing and speaking with people, so this was a great opportunity for me to get out of my comfort zone. I could help and have direct access to the speakers without having to fight through the crowds and try to keep their attention long enough to make a connection. The speakers just spoke directly to me without me having to initiate the conversation because I was helping them out. If you’re an introvert, I highly recommend this approach. You’ll be working so there will always be something to do to avoid any awkward silences and you don’t have to work as hard in getting those conversations started. They will come right over to you. I became friends with a fellow volunteer who brought me on later to do a talk at her meet-up and also introduced me to someone hiring for new developers at American Express.

A week and a half after the conference I got a call on a Thursday afternoon asking if I could make it to a job interview the following day. I was scared and felt very unprepared and almost said no, it was way too last minute. This was when I made the latest decision that completely changed my life. I told myself I had already been preparing since my last in person interview. I told myself that I could review any small details but I already knew what I needed to know to prove that I knew JavaScript. I knew how to work in React. I knew how to work with Node and Express. I just had to prove it the people who were interviewing me.

So I spent most of the next day going through a long on-site interview process. I received a lot of great feedback from the people who interviewed me at the time. I was optimistic but still cautious. I let time pass and continued trying my luck with other companies as well. I eventually fell into a rut wondering if anything would actually happen for me. Then it just happened, I got an offer. As of today, three months after completing my bootcamp at Columbia, I’m happy to say that I’ve accepted an offer as a Software Engineer at American Express. I’m going to be working with a lot of the technologies I love and working on an amazing team for an amazing company. I got here because of the hard work I put in, because of the support given by my friends, family, and my wife. I got here because someone actually took the time to give me actionable feedback from a failed job interview.

Not everyone is lucky enough to get opportunities like this and I’m truly grateful for it. As I was building myself up after my bootcamp, I started to help others who were starting to learn more about coding as well. It solidified my knowledge and really helped me succeed in my interview. I plan to continue to do that since helping others ended up helping me get better as well. This is how I became a Software Engineer. Some of these methods may work for you and some may not. The most important thing to remember is to not give up, because you might just find yourself one decision away from completely changing your life.