They say fortune favors the brave and I’ve recently taken the brave decision to transition from Mechanical Engineering to Software Engineering. My name is Daniel from Nairobi Kenya. As the title suggests, I’m a 27 year old mechanical engineer transitioning into tech. How difficult is it to make the career move from mechanical engineer to software engineer? This will be the first article in a series of many articles documenting the career change journey I’ve just embarked on and I hope I motivate more people to take this journey with me. I’ll limit the scope of this article to events that influenced my current decision to leave mechanical engineering get into software engineering.
My first interaction with programming and computer science in general was during my second year studying Mechanical and Manufacturing Engineering at the University of Nairobi, Kenya where a course was taught (Introduction to Computer Science) that introduced me to coding and in particular, writing code in C++. It goes without saying that it was incredibly tough for someone like me who had never written a line of code before. Computer science II which came the following year was better since it was taught in Python, the syntax simple and everything made sense intuitively.
By the time I got to my 5th year of study, I had decided to go down the software engineering route and I approached my Fluid Mechanics lecturer who specialized in computational fluid dynamics (CFD). For those who don’t know what CFD is /does, here’s a brief summary. CFD is a branch of fluid mechanics which involves numerically solving fluid mechanics problems with the help of computers. Hence I chose the project ‘Computational analysis of the flow-field of a healthy and damaged human aorta’ for my final year project. It involved making idealized models of the aorta using a CAD (computer aided design) tool and using Openfoam (a C++ library with ready made solvers) and generating the simulations. You then get all the flow aspects of the healthy and damaged aortas from the simulations and make a comparison. For a grueling and sleepless 8 months working alone and with my project supervisor, I finally had a functioning simulation which I presented to a panel of lecturers for grading (which I successfully passed). Those 8 months taught me how to write code, fix bugs and present well researched and written work. It also motivated me to find a way to pursue my core mechanical engineering interests alongside my love for programming.
Every journey comes to an end and graduation in September 2019 marked the end of my campus journey. It also marked the start of the hustle and bustle of life outside school, trying to achieve life goals and chasing after career goals. It was around this time that I was bitten by the web development bug. I started by learning HTML, CSS and JavaScript on Codecademy and building a few static websites. I also started learning Python, the Django web development framework and Heroku (for hosting). Here’s also where I started my entrepreneurial journey and started a small business that helped me concentrate on learning as I had some income. The job search journey on the Mechanical Engineering side was also going on and I was about to get a lucky break.
At the beginning of 2020 and I landed a role at one of the world’s biggest beverage manufacturer as a mechanical engineering intern in Nairobi, Kenya. The effect of this was that my web development learning journey was suspended indefinitely to concentrate on gaining real world experience as a Mechanical Engineering professional. 3 months later and the coronavirus pandemic hit and everything shut down including my internship. Luckily, as the economy started to get back on its feet, in July 2020, I got my job back this time as a contracted employee and its the same role I occupy to date.
After finally settling down I re-embarked on my programming journey in April 2021. There are a lot of areas where the day to day work of a mechanical engineer can be enhanced by having basic programming skills. For instance, some routine data analysis work can be automated using Google Sheets (data inspection and cleaning), R programming (data transformation and analysis) and Google Data Studio (data presentation). This informed my decision to re-immerse myself to the world of programming through the Google Data Analytics Professional Certificate which helped me gain, among other skills, programming skills that I was able to directly apply to my mechanical engineering role. This process also indirectly reignited my love for web development and I decided to go all in in 2022.
I am currently working to actively change careers from mechanical engineering to software engineering, more specifically web development with Python. I believe there are a lot of interchangeable skills and the rigor involved in both professions is the same. For instance when I started learning Data Structures and Algorithms this year, I discovered that some of the same principles are used in manufacturing. For example, stock management can be modeled as a queue data structure.
I am currently building a portfolio on GitHub and I’ve been working on a few projects (here's my Github , follow me!) with lots more in the pipeline. I’m also working to cement core CS and Python concepts. My current learning path/interests are: Data Structures and Algorithms, Django, Flask and SQL. I also have a few data analysis projects that I’ll put out there soon (keep an eye on my github). I am working towards getting into a particular internship as my entry into the tech world. The goal is to transition completely from mechanical engineering in 6–12 months. Its a daunting task but with proper planning and commitment, its possible.
This blog post is meant to encourage the very many people who would love to change their careers but are afraid to or think they are too busy or too old. I’ll post every step of the way so as to document the process for those who might be interested in what its like trying a career transition while working another full time job. Its never too late to chase your dreams
Top comments (0)