Changing from QA to Software Engineering

TLDR

While working as a QA Engineer I decided to change course and aim to work as an iOS engineer. By the grace of God, I accomplished this goal by learning iOS development from the beginning, then eventually acquired a part-time iOS Engineer job while working as a QA Engineer. After a year and a half of committing to my goal, it became reality and I earned a full-time job as an iOS engineer. 

Table of Contents

  1. Introduction

  2. Reasons for Changing to Software Engineering

  3. Beginning to Learn iOS Development

  4. Challenges Finding a Job

  5. Finally - Earned a Suitable Job

  6. Conclusion

Introduction

In the name of God, the most Gracious the most Merciful. 

With every story there’s a beginning and today I’ll be sharing with you how I went from QA to Software Engineering. I’m sharing this story for a few reasons:

  • To motivate others to outline goal-oriented actions to improve their lives. 

  • Before my journey, I searched online for articles highlighting transitions from QA to Software Engineering, but I didn’t find many. So hopefully this blog post becomes resourceful and beneficial. 

I’ll start with the reasons why the move to iOS development. Then I’ll explain how I learned iOS development and the challenges I faced during job searching. Finally, I’ll explain how I landed a full time role as an iOS engineer. 

Reasons for changing to Software Engineering

When I reached my first 8 months as a QA Engineer in the summer of 2019, I began pondering about my future and where I see myself in the next few years. I was content with testing software, especially when I had the chance to write code to create automated tests. I enjoyed this aspect of my job as a QA engineer so much I realized I have more interest in engineering software than testing it. 

Having the chance to collaborate with my developer colleagues everyday confirmed the developer track is where I wanted to be. But the field is broad. What specialization should I choose as a developer? Should I become a front-end engineer focused on websites, a backend engineer, or a mobile engineer? After doing some research on those specializations, I chose specializing in iOS for these reasons:

  • Specializing in Swift is a rare skill, meaning it’s highly in-demand and needed by companies. 

  • With a single programming language like Swift, you can engineer an application for any Apple OS and its various devices (iPhone, iPad, Apple TV, MacBook, etc). 

  • I’m fond of Apple and many of their products since I used to work in an Apple Store repairing Macs and iPhones for customers. 

From that day, I decided to commit to developing my iOS development skills. And as with any planned goal it needs sacrifice and patience from you. Hence, I started spending my personal time outside of work to learning iOS development. 

Beginning to learn iOS Development

Learning any new skill requires time and practice daily. What helped get started with iOS development was a Udemy course by Angela Yu. The course included the following:

  • Swift 101 (basics like conditionals, loops, objects and syntax)

  • Setting up an app from the beginning using Xcode.

  • How to build a UI (User Interface).

  • Writing Swift to setup UI logic. 

  • How to make API requests with Swift. 

  • Building and running your code via an iPhone simulator that runs on your computer. 

  • Ways to persist user data on a device. 

Since I’m used to programming from my days in college and my current job, learning iOS wasn’t too challenging. After about 3 months, I completed the Udemy course then spent my personal time on building practice applications. During the course I built numerous basic applications and after completing the course, I built two personal applications: CatID and DadJokes. 

After a couple more months, I changed my focus from building applications to studying data structures and algorithms. My reason for changing course is because knowing these concepts is considered a requirement for most developer jobs. 

Challenges Finding a Job

Ten months after starting this journey, I decided to start applying for jobs. These are some websites where I applied for jobs:

  • Indeed

  • LinkedIn

  • Glassdoor

  • Angel’s List

Two weeks in, I’ve received calls from companies and spoke to their HR representatives over the phone. But I didn’t receive any follow up communication. Two more weeks passed after applying for more jobs and the same pattern continued - no follow up communication via email or phone calls. After 2 months total passed the same pattern continued, prompting me to analyze what’s going on and the reasons for little to no follow-ups. In general I concluded the following:

  • Firstly: I don’t have official experience in iOS development and most companies prefer a job seeker with experience already. 

  • Secondly: Companies are hesitant to hire new workers with little or no experience. That’s because companies won’t see the results of their investment into such employees until a year or so later. For that reason, many companies consider such scenarios a waste of time and money. 

  • Thirdly: I still didn’t get to know or network with iOS engineers so they can reference me for an available job. 

Ultimately, these points shed light on my challenges - so what should I do? I thought about how I can earn experience for a short period of time which will lead to employment. The answer: focusing on part-time iOS engineering opportunities with little to no pay.

Naturally, I felt hesitant at the thought of accepting a job opportunity without pay. As a practicing Muslim, I came across my answer while reading the Quran:

18:30

إِنَّ ٱلَّذِينَ ءَامَنُوا۟ وَعَمِلُوا۟ ٱلصَّـٰلِحَـٰتِ إِنَّا لَا نُضِيعُ أَجْرَ مَنْ أَحْسَنَ عَمَلًا ٣٠

As for those who believe and do good deeds- We do not let the reward of anyone who does a good deed go to waste

Reading the verse changed my perspective, helping me realize if I accepted a part-time opportunity without pay it’s not a waste! Rather it’s an opportunity to development my skills even further which will inevitably lead to acquiring my ideal job. So I decided to trust God on this one and after a week I accepted an unpaid part time iOS job at WellThee - a health startup company.

Finally - Earned a Suitable Job

During my tenure at WellThee, I learned new concepts and methods to create a UI. In addition, I was working every day and upwards of 80 hours a week. Even though the iOS opportunity was part-time, I enjoyed the work I was doing so much that I voluntarily wanted to work more hours to improve the app I was working on. I continued this for 5 months until an opportunity came my way for employment. 

There was a mobile engineering manager (we’ll call him Tom) who, like me, worked part-time at WellThee while working at another company. While I pushed Swift code and created pull requests, Tom was the one who would review and approve my code; I also got a lot of feedback on my code which helped me further develop my iOS skills. Moving on, Tom randomly reached me and requested that we connect privately on a topic. I agreed and when our meeting started between us, Tom said he had a job available at his current company. Because my programming in Swift is advanced and very well-organized, he requested that I apply for the job opening. I responded to him and asked him numerous questions regarding the iOS app I’d work on, company benefits, team harmony, and salary expectations. In short, I was pleased with the answers to my questions and decided to apply for the job opening. 

I had two interviews - one with the Senior Engineer and the Engineering Director. The first interview tested my knowledge of iOS and included a coding challenge in Swift to build a simple app. After a day, I was told I passed the first interview and got the green light for the last interview. In the last interview, I got to know the engineering director, who asked me questions regarding my past experiences and the challenges I faced. In other words, personality questions to know if I fit the company and job position. 

After the second interview, I received the good news - the company gave me an offer, which included details such as salary and job benefits. I read it all carefully and then accepted the offer!

Conclusion

After a year and a half after starting my journey and transformation from QA to iOS engineering, I accepted the offer from the company and departed from my full-time QA job and part-time iOS job. Despite the challenges, duration, and numerous job application rejections I remained steadfast and faced my obstacles in a solution-oriented manner. If one door in front of me was closed, I committed to another path where the doors were open. Only with time, sincere commitment, and true sacrifice, you’ll arrive at the accomplishment of your goals by God’s Will. 

Have any questions or would like to follow up on this post? Follow me on Twitter with comments and questions.

Make sure to share this article. Appreciate you reading through my blog and until next time.

Buy Me A Coffee
Previous
Previous

Solving Spiral Matrix Problem