My Journey as a Software Engineer

My Journey as a Software Engineer

Mechanical Engineer to Software Engineer

Everyone starts their journey somewhere to reach their destination. I am writing this to document how I reached where I am now.

Background

I am a mechanical engineering graduate who graduated in 2016 and started working as a mechanical engineer at a Fortune 500 company. I was working on developing and improving specialized industrial equipment for food retail, industrial automation and pump industries. I had to routinely develop mathematical equations which are very tedious/difficult to solve manually, to quantify a mechanical process. So I started employing iterative techniques to solve these equations using the Python programming language. And so I started developing a strong hand in programming.

Fast forward to a few months later, I got interested in developing web applications and becoming a software engineer. I wrote simple web scraper and CSV editing scripts but it was very difficult for me to develop web apps since I did not have any experience in it. I started studying it but was lacking understanding of the fundamentals of computer science and software engineering. I took a web development course on Udemy but found it too difficult to do. So I created a structured plan to become a software engineer. This almost took me 5 months to execute.

Studying DS & Algo

For the first 2 months, I did 3 things. One of the things was that I was studying data structures and algorithms from the Data Structures and Algorithms in Python - by Goodrich book and solving problems at the end of the chapters. I just worked on the initial 4 to 5 chapters to get hands-on with programming. In addition to that, I learned the Java programming language as it seemed ubiquitous in enterprise software development. Furthermore, I completed the Algorithms, Part 1 course on Coursera.

Practising DS & Algo

As you might already know, you do not become great at anything just by studying it. You need to practice the skill consistently. Knowing how to apply data structures and algorithms to solve business problems is a skill that needs to be learned through practice. So I started practising DS & Algo questions on InterviewBit. InterviewBit is a very good platform to practice problems under time pressure. Leetcode is another platform which is very popular among software engineers and computer science students to practice DS & Algo problems.

Creating Software Project

Demonstrating to recruiters/hiring managers about your ability to work as a software engineer is easier if you have a project code repository or a hosted application. I developed some scripts to scrape the lyrics of about 250 songs from a website. I also developed a CSV editing script which manipulated CSV files containing info on 50000 products to a format understandable by Shopify. These two projects were good enough to have a nice discussion with hiring managers in interviews. I did not host these projects at that time but I currently host public and private code repositories for my projects on GitHub which is a very popular repository hosting platform for individuals and companies.

Accomplishments

After almost 5 months in September 2018, I was able to get a job as a Software developer in a Financial Services company. Since then, I have worked in various roles from developing iOS applications for a gaming company to managing data infrastructure for a trading team in one of the largest investment banks to developing a live-video-based e-commerce platform from scratch for my startup. Currently, I work as a freelance consultant with companies on full-stack projects which use technologies like Python, Django, FastAPI, Flask, MongoDB, PostgreSQL, OracleDB, Vue.js, Nuxt.js, etc.

My Goals

My future goals are to work on high-impact projects for amazing companies and develop a profitable SaaS as an indie hacker.