My Tech Career Origin Story: Part I

I've always been a fan of superheroes. My favorite was Spiderman. He seemed to have total freedom. He could overcome any obstacle, navigate any environment, and yet he was kind, witty, and relatable. He was also a huge nerd. To this day, I strive to live my life in accordance with the "Uncle Ben" principle: "With great power comes great responsibility."

Today I'm a Quality Assurance Analyst, or QA, for a mobile app company. The team I'm on will test app features before they go out and make sure the rest of the app didn't break in the process. I didn't start out here, though, and I didn't take the most conventional path, either. I don't have a Computer Science degree. I didn't have a cool internship in college or know someone who knew someone, etc., etc., and I didn't grow up tinkering with computers or anything cliché like that. This is my story:

Out of the Frying Pan

I still remember the 19th of November, 2017, when I quit my job packing boxes at an Amazon fulfillment center on overnights. It was boring work and I felt like every night took another piece of my soul. Sounds melodramatic, but I'm an idealist. I believe everyone ought to work jobs they're not only good at, but interested in doing, if at all possible. This was the furthest thing from that, but I had needed enough money to live on my own, and that was the only job I could get that paid enough.

I was motivated by the prospect of returning to college to finish up my Spanish Education degree, in spite of the terrible experience I had teaching kids at a Spanish camp over the summer. The way I saw it, I no longer wanted to be a teacher, but a bachelor's degree can get you more than a high school diploma or "some college". But when my wrist became inflamed 2 months into the packing job, I panicked. I didn't have a better job to go to, and I was barely scraping by as it was. I knew that my wrist wasn't going to heal if I kept working this job, though, so I decided I needed to put my physical health first and just figure the rest out later.

While packing boxes at Amazon, I had started working a couple Shipt orders on the side to bring in extra money, but now I was going to make that a full-time gig. My primary motivations were to ensure I could continue to pay rent and save enough to move into an apartment in my college town. The plan after that was to get a job I could walk to (no risk of car troubles affecting employment). I didn't know how I was going to save $4000 for my last semester, but I didn't care. I was taking things one step at a time.

The plan worked just well enough to find myself back in my college town working at a local bowling alley as a bartender. It was mid-December. Fast forward a few more months and I'd be working 3 jobs, 50-ish hours a week for nothing more than $8-10/hr., toiling the spring season away, and then working full-time cleaning construction sites and changing lightbulbs in apartment units all summer. Then in July I was let go from that 1 full-time job I had, and I was in panic mode all over again.

The Decision to Learn to Code

Now let's back up for a minute. When I was miserable at Amazon, it had occurred to me that I no longer had a career goal in life. All my options were gone, and I'd so far found nothing I truly enjoyed enough to do longer than 1 year, and I couldn't job-hop forever. I did some soul-searching and realized that I enjoy creative pursuits. I thought about how I enjoy playing the violin and how that requires sustained focus and attention to detail. I like to learn new things all the time, and I like helping others. I like technology and I like building things, but I don't like manual labor. I'm good at learning languages, but I like dealing with things more than people. I discovered that all of this made me an excellent candidate for a career in web development, and the starting salary for that job was enough for me to live comfortably. It was then that I dedicated all of my free time to getting my first developer job.

While I was packing boxes and running Shipt orders, I was working through Coursera courses on HTML, CSS, JavaScript, and Python. When I moved back to my college town, I started spending hours a day on freeCodeCamp. By the end of January 2018, I had gotten through most of their Front End Developer track and built a few projects using HTML, CSS, and JavaScript. I took a 4-month hiatus from coding when I started working 3 jobs, but I got back into it when July came along and I was jobless.

Coding became my full-time job while I was applying to jobs. Part of me wanted the job hunt to take even longer so I could make more progress as a developer, but I'm ultimately glad it didn't. During the 3 weeks it took to get a floor associate job at Walgreens, I was spending 40 hours a week on freeCodeCamp. They had a new curriculum at this point and I managed to get the Responsive Web Design certificate before I started my job. It was mid-August at this point. My credit cards were basically maxed out.

One More Semester

Ironically, taking forever to finish a 4-year degree had worked in my favor. I had managed to take so long finishing my college degree that I turned 24 in April, which qualified me for independent status on the FAFSA. Long story short, this meant I was going to have enough money to finish college and pay rent from student aid alone. But I'd need to wait until September for the money to arrive.

When school finally started back up again, things just fell into place. I got the student aid, which paid my rent for the remainder of college and through May 2019, which gave me time after graduation to job-hunt. My tuition was covered by the student aid, and I had enough left over to subsidize the $9/hr I was making at my job so I could go to school without worrying about food or other expenses. In my mind, I had only 2 priorities:

  1. Finish school
  2. Level up my coding skills

Everything else was secondary. By the time I graduated, I managed to snag the JavaScript Algorithms & Data Structures certificate. But I had to do it while working 20 hours a week, doing a field study at a middle school 20 hours a week, going to class, doing lesson planning and other homework, and ensuring my basic responsibilities like grocery shopping and cleaning were getting done too. It was the most difficult college semester I had ever done, but I made it. I graduated magna cum laude in December. I was far from finished, though. In my mind, this is where I was able to start seriously pursuing web development as a career.

Getting Serious

I hit the ground running in 2019 with React. I took a Scrimba course outside of the freeCodeCamp curriculum, which helped me get the Front End Libraries certificate by the end of April. While I was working towards that certificate, I requested a store transfer at Walgreens so I could move out of my college town to go live with my girlfriend. When I got the transfer approved, I found out the store manager there wanted to promote me to shift manager, which meant I could bring in more money. More money, in my mind, meant more time and less risk for my developer journey, so I of course said yes. It was February.

While working in my first managerial role ever, I applied to several developer jobs during 2019 and worked on polishing my resume. I went to 2 whiteboarding interviews in Madison, and failed both of them. Even so, I learned how it feels to have to problem-solve and write code in front of somebody with a dry erase marker. I found a couple recruiters and worked with them to secure 1 of those 2 whiteboarding interviews, which taught me the importance of networking. I continued to sharpen my React skills and worked through the remainder of the 3 data/back-end challenges on freeCodeCamp, but I stopped short of doing any data/back-end projects.

In August, I was enlisted by my mom to help remake her website. This taught me the importance of close collaboration when doing work for a client. I learned how to set up a custom domain and work with React Google Maps. I also learned that custom websites take time (this one took me until October) and that designing the website first could have saved me a lot of time.

Behind Every Successful Man...

But let's rewind back to 2018, specifically March 14. I met my girlfriend that day, and today I'm proud to call her my fiancée. While I was working 3 jobs that spring, she undoubtedly kept me from falling apart. In the summer, when I lost my job, she comforted me and inspired me to keep going. When I got my job at Walgreens, she was there to celebrate with me. When I was stressed out juggling everything during the fall semester, she was there too, being my cheerleader and giving me the strength to continue. Rolling into 2019, we started living together and were there for each other when things got tough, no matter what it was.

In many developer journeys, what is often left out is the importance of loving relationships and healthy support systems. I realize that without my hard work, none of this could have been possible. But I'll argue that without the support my fiancée offered me in those early days, I would not have had the energy to put in that hard work in the first place. I'm forever grateful for her and I think the challenges we endured together made us a stronger couple, too.

Teamwork Makes the Dream Work

In August 2019, our luck changed for the better. I got a call from a mobile app company reaching out about my interest in their Support Team position. After a phone screen and an on-site interview in Madison, I got the job. I was going to be a technical support agent for users writing in about their experience using the mobile app. In my mind, I had just taken the most critical step in getting a developer job: breaking into the tech industry. Of course, I wouldn't start the job until October because I had a vacation coming up, but I was so excited I could have screamed.

In September my new boss wanted to have coffee to fill in the gap and talk about what the job was going to be like. When I told them about my fiancée, they recommended she apply as well since they were hiring a lot of people at the moment. So she did, and of course, October came around, and she nailed the phone interview and on-site and got the same job, starting only 3 weeks after I did.

We were so excited! Not just about the job, but about the new standard of living we'd enjoy. We were essentially doubling our household income compared to the wages our old jobs were paying us. That financial security eventually helped us relax a little about our bills and focus more on enjoying our life together at work or at home.

Support Life

Before long we were both knowledgeable about things we had never dealt with before, including tools like Zendesk and what goes on behind the scenes at a tech company. It also showed us how fun a startup atmosphere can be, and the unique perks that come with that work environment. We also learned that we handle working at the same job very well, and that it actually brought us closer as a couple.

I spent the next 6 months on Support, but I also spent them focused on getting a developer job at the company. I wanted to wait a few months and get used to the job first, though, and admittedly, I stopped coding for a little while. I saw my job performance as a better way to position myself for a developer role, since I would first need to impress my own manager before anyone else if I wanted to transfer teams in the future. So I learned all I could about the userbase, the unique problems they face, and the app itself. I put myself out there for any opportunities that could help me stand out.

Crossing Over to the Tech Side

Around February/March 2020, the company put out job postings for a software developer internship, and my manager encouraged me to apply since they knew I was passionate about coding. I nailed the 1-on-1 chat, and the tech lead I had the 1-on-1 with invited me to the Hackathon while I was interviewing for the intern role. I got a chance to meet a lot of developers and collaborate on a project with a couple of them too, even if most of it was out of my depth and I spent most of my time messing with the React dashboards to get familiar with the codebase.

When it came time to do the take-home project, I worked on it for a few hours but my project submission failed, mostly because I had never made a web service before. By some twist of fate, I nailed the algorithm and was giving the correct output on my machine, but my configuration was incomplete. I had forgotten the package.json, which made it impossible for the interviewer to install my project's dependencies. That wouldn't have been so embarrassing if I had understood that that was the root cause. Instead I spent a whole hour or 2 on an email back-and-forth helping the interviewer troubleshoot my incomplete project. Oops.

On the plus side, the interviewer told me that, while I wasn't ready for the developer internship yet, I should apply for QA because they thought I'd be a good fit there. So I did. I met the new QA manager a few weeks later because they were a new hire and it was the soonest they get could set up a meeting. We hit it off and I took all of their advice on what to research before the on-site interview in late March. But we all know what happened in late March, don't we? Yep...

Wisconsin began COVID-19 lockdown mid-March, which meant my interview would need to be conducted over Zoom. I had done a phone screen over Google Hangouts before, so it wasn't totally new, but it was definitely nerve-racking to say the least. My fiancée was there to help reassure me that I was going to do fine, and as it turns out I did. March would be the month that I finally made it into the technical side of a tech company. I was going to be a QA.

6 Months Later...

I'm still working in QA (surprise), and I've learned a lot about software development, Agile, software testing, various tools and technologies, what an SDET is, and the list goes on. I'm actually really good at QA apparently, and I didn't even know what this job entailed until I ended up interviewing for it. In fact, I've loved doing QA more than any other job, and it's made me relax a little in my pursuit of a developer role. I'm not as hell-bent on getting into a developer role as I used to be, but the option is still on the table (maybe).

Based on what I've seen, life as a developer is a little different from how it's portrayed on social media and in blog posts, and they definitely earn their good salaries. At the company I work for, there are Android devs, iOS devs, front-end devs, and back-end devs, as well as data engineers. There are a lot of ways to be a developer here. On top of that, development isn't always shiny new features. Sometimes it's being on-call for crashes that happen late at night, or fixing bugs that only happen on 1 device, or fixing bugs that are really difficult to parse out because they occur infrequently or only at a specific interval. Basically, being a developer looks glamorous, but a lot of the work is not flowers and rainbows.

That said, I think I want to try being an SDET first. Recently, I've been learning Ruby and RSpec in anticipation of eventually interviewing for QA Automation Engineer at some point. I recently updated my resume, designed my personal website from scratch using Figma, and developed it using React to showcase everything I've done up to this point. And I started this blog.

Not sure where life will take me in the next 6 months, but no doubt there will be much love and learning involved.

Cheers, and thanks for reading about the start of my journey into tech.

For the next chapter, go here.