Making the Jump: From Performance Tester to Software Engineer

Making the Jump: From Performance Tester to Software Engineer

I kicked off my professional career as a Performance Tester. The role guarantees that components of an application perform as expected under changing client loads and assists with assessing the resource usage, speed, availability, response time, scalability, and reliability of any application preparing it for production.

After a couple of years, I realized I wanted to move forward and expand my skill set. I decided to pursue coding, and a friend helped propel me into my current career as a Software Engineer at Likha-iT Inc.

The Transition: From being “good” to “not so good” at my job

Moving into software engineering, I packed my bag with courage and bits and pieces of knowledge from college and online tutorials. Understanding Java, C++, HTML, CSS, and Model-View-Controller (MVC) Framework, I prepared myself to be humbled knowing these were not enough, and I still have a long way to go.

I will encounter challenges every day and will be needing a lot of fuel to traverse this new path. I knew I would fail and make mistakes, but I promised myself not to give up but instead learn from them and use them to contribute to the growth I envision.

Surviving the Labyrinth of Programs

The first few months were rough and tough. My experience and knowledge were not enough to survive jumping into this labyrinth of programs from the real application. The first project I handled was a car-sharing web application where customers can reserve and rent cars online. It was built using Angular and Java Spring Frameworks for the frontend and backend. Angular is the new version of AngularJS Framework. Thus, I needed to learn basic concepts and understand JavaScript, HTML, and Typescript.

Sharing the free online resources available online that helped me learn new tech stacks:

Codecademy – https://www.codecademy.com/learn
W3schools – https://www.w3schools.com/
Udemy – https://www.udemy.com/

After gaining knowledge of those languages, I dug deeper and started learning the building blocks such as the Modules, Components, Templates, and Data Binding. The process of learning one framework is very laborious. It consumes not only time and effort but a lot of brain cells.

On the other hand, the same process goes in dealing with the Spring framework. I started learning from the fundamentals to more complex concepts. It is a bit more complicated than Angular but quite easier to read and learn since I have used Java in various projects during college.

The next project was a mobile application that enables a customer’s mobile phone to become a smartphone key. This feature uses Bluetooth to connect the phone to the device installed in the car. The framework used to build this app was React Native.

These projects helped me to become proficient in the programming languages and frameworks that we are using. I have also been picking up skills I needed to understand some of the more complicated concepts in Software Development.

Overcoming the Challenges

Changing client needs and requests, miscommunication, the need to stay up late, and mishandling of tasks are just some of the challenges a software engineer faces on a day-to-day basis. With all these, I can say that one of the most important factors that helped me succeed and get through the hardships are my mentors:

  • My colleagues, who guided me since day one whenever I have questions and bounce ideas off.
  • Lastly, the management, who have always been understanding of us and never underestimated our capabilities. They were supportive in helping us improve.

Finally…

Becoming a software engineer was never easy. Preparation was vital to make the first few months of the transition easier. One should always be armed with dedication and patience to overcome frustrations or failures. Making use of many resources available online would also be a great help. Another realization is that it’s important to be surrounded by people you feel comfortable asking any questions. It is better to ask a lot of questions than assume. Through this, you can get first-hand knowledge of various team expectations.

Being a software engineer is fun, fulfilling, and worth the battle. Seeing the applications you worked on going into production and how it helps people from different places is rewarding and gives a GREAT feeling.