How did I transition into the software engineering field after graduating from mechanical engineering?

Ali Raza
JavaScript in Plain English
7 min readDec 24, 2023

--

From Mechanical Engineer to Software Architect within 5 years

I am currently working as a software architect at and leading Xstak XPay, a cutting-edge payment orchestration platform, building a universal API for payments.

I studied mechanical engineering at the university and later switched my career to software engineering.

And it all started with a Google search.

Motivation behind transition

Five years ago, in late 2018, I wanted to build a mobile app and thought it was some super technical stuff. I just did a Google search, only to find that all it needs is an Android Studio and a programming language.

I was dissatisfied with the opportunities available in the local market for mechanical engineers.

So, I decided to give a shot to software engineering for ample growth and learning opportunities.

I have an attitude and belief that I can learn anything from any field by studying and putting in hours.

In this article, I will share my journey and how you can grow in your career.

My roadmap towards becoming a Software Engineer

So, I started exploring software engineering and found that it is easier to get with the MERN stack.

I did two things to make a learning path:

  1. Enlisting all the important topics and concepts related to technologies such as HTML, CSS, JavaScript, React, Node, etc.
  2. Go through the interview questions and note down the topics and levels of difficulty.

I learned all the concepts this way:

  1. First, learn the basics of the topic.
  2. Practice and build using that knowledge.
  3. Learn advanced concepts related to that topic.

Following this path, I built basic webpages, then added interaction using JS and moved to more complex projects such as building clones, etc.

I used the following resources:

HTML/CSS courses:

  1. https://www.udemy.com/course/design-and-develop-a-killer-website-with-html5-and-css3/
  2. https://www.udemy.com/course/advanced-css-and-sass/

JavaScript courses:

  1. https://www.udemy.com/course/the-complete-javascript-course/
  2. https://www.udemy.com/course/modern-javascript-from-the-beginning/
  3. https://www.udemy.com/course/javascript-advanced/
  4. https://www.udemy.com/course/understand-javascript/

ReactJS courses:

Honestly, I didn’t know anything about React or any other library until I started looking for gigs and freelance projects.

  1. https://www.udemy.com/course/react-the-complete-guide-incl-redux/
  2. https://www.udemy.com/course/react-redux/

So, I started learning React and found it quite easier than JavaScript.

NodeJS courses:

  1. https://www.udemy.com/course/the-complete-nodejs-developer-course-2/
  2. https://www.udemy.com/course/advanced-node-for-developers/

As I got work, I gained more experience and worked on web apps, chatbots, digital marketing, and Shopify apps, to name a few.

Hands-On Experience

As soon as I knew I could do some basic web development, I started looking for work and did some projects.

Over time, due to client requirements, I learned a lot of skills, such as GraphQL, chatbot development, etc., irrespective of my experience and skillset in that regard.

By gaining industry experience, my confidence boosted, and I was able to identify more areas to grow in this domain.

Journey from software developer to architect

Three years ago, I joined my current company as a senior software engineer, and looking backward and connecting the dots, it was one of the best decisions I have ever taken.

I started my team as one of the developers in a team of 8–10 developers. I had no background in CS, so I put in more effort and worked harder.

To set context, during my job, I gradually got promoted to these roles in just three years:

  1. Project Lead: 3 months
  2. Team Lead: 6 months
  3. Principal Software Engineer: 2 years
  4. Software Architect: officially for 3 months

Before we move further, it is important to understand that every software engineer is an architect in some capacity.

Hard and technical skills got me promoted, and so can you.

1. Learned niche-specific skills

I started with a frontend development role and later moved to backend development as a developer and architect. I learned these hard skills and improved my domain-specific knowledge.

Every project is built on the frontend, backend, database, cloud, and DevOps.

2. Mastering software architecture fundamentals

The fundamentals of every architecture are the same, with the same requirements. I mastered these concepts:

  1. Performance.
  2. Scalable
  3. Security
  4. Reliability
  5. Problem-solving

3. Understanding different architecture types

Architecture starts with a project structure, connectivity between different components, and the pattern used to build the project. And it’s unique for each project. So, in this domain, you need to understand different architecture topics:

  1. Event-driven
  2. Monolith vs Microservices
  3. Modular monoliths
  4. Service-oriented architecture

4. Practicing building architecture of different apps

I practice building the architecture of famous products and the problems I face with existing services like ticket booking apps, airline search engines, payment systems, etc. It allows me to explore and learn a multitude of skills, architecture patterns, and ways to improve problem-solving.

The soft skills and qualities that elevated my career and can do your’s

Everyone knows technical stuff, but the real puzzle is how to complement that with soft skills and your solution-building capabilities.

1. Love what you do.

I loved to be a software engineer, and it became my passion over time. I would spend weekends and leisure time learning new technology and upgrading my skillset. Accumulating vast skills allowed me to lead and manage different projects. As a software engineer, you need to find your passion in any niche or subdomain of software engineering and keep building the stuff.

2. Don’t limit yourself.

I never limited myself to a specific skill and built my identity on that. If you limit yourself to a specific tech stack and don’t take on new tasks requiring a new skillset and level, you will never explore new horizons.

I was given the same advice by my manager, the CTO, when I asked him how I could reach his position.

To be able to lead multiple teams and build solutions, you need to have skills and experience in multiple technologies and the mindset to be willing to learn new skills.

3. Become a go-to person.

In your company, become the go-to person for a specific product or feature. You will interact with different teams while understanding the requirements and building a network inside your company.

I followed this path initially at my current job. I was the go-to person for integrating checkout into the projects for a headless e-commerce CMS. Then, when I moved to a sister product-based SAAS startup, I took charge of XAP, an admin panel for customers, and was the go-to person for all requirements and implementations.

This allowed me to build my reputation and further grow in the higher hierarchy. It will do the same for you as well.

4. Being at the right place at the right time.

I think and plan long-term. When my colleagues were switching jobs for a quick raise, I stuck to my position and outperformed my competition with management and leadership skills. I found and availed of the opportunities in my current company, which grew my position and influence. In fact, my current experience amazes the recruiters.

You need to think long-term if you want to reach higher positions. I doubt if any company will hire you for higher positions if you continuously switch jobs.

5. Learn to sell yourself.

We live in a free market where we trade our skills for money. So to make a better deal, you need to master marketing and selling yourself.

So you need to put forward your efforts in front of your managers and their managers in standups, regular meetings, etc. If there is a technically difficult task that no one is willing to take on, work on that.

Do quarterly sessions with your manager or lead and take their feedback on improvements and work on that.

6. Ownership

Always take 100% ownership of your task and project. Put in 100 percent effort with integrity, and always deliver a WOW experience.

7. Work Hard

Photo by Jordan Whitfield on Unsplash

I can't say enough.

8. Find mentor at your job

I consider myself lucky to have had my first manager as my mentor, who actually taught me the art of leading people, managing multiple projects simultaneously, and pointing out the flaws in my leadership skills. In my first year, I learned all the skills required to work in top positions.

Conclusion

I have shared all the hard and soft skills that got me promoted despite transitioning from mechanical to software engineering. To get promoted, you need to work hard and smart, think long-term, and always strive to do your best.

Thanks for reading.

Let’s connect on Linkedin.

PlainEnglish.io 🚀

Thank you for being a part of the In Plain English community! Before you go:

--

--