How I Transitioned from Embedded Engineer to Cloud Developer

How I Transitioned from Embedded Engineer to Cloud Developer

It was not easy!

I started as an embedded programmer. For the first five years of my career, I worked on the lowest layer of the software. I mainly coded in C, built protocol stacks, firmware, and media middleware.

A few of my colleagues started an internet company and I decided to join them irrespective of my inexperience in the technology they were building. I am glad I took this decision.

I faced many problems learning the application and backend development.

A lot happens under the hood

As a C programmer, you have to code everything yourself with very few open-source libraries at your disposal. Introduction to languages like Ruby and Python made me uncomfortable.

I was like how you can add a string in an array that contains integers. I knew how these languages worked and their purpose but something in my subconscious mind was not ready to accept that.

It took me quite some time to accept the reality and proceed. Now I love these languages, I use them every time I have to write a script for small tasks.

Had to learn a whole new ecosystem

Things work in an entirely different fashion in firmware and in the cloud. Learning a language or two is an easy task. Learning how everything works together in an ecosystem was not easy.

There were too many things to learn, I took baby steps. I started by writing a web scrapper and slowly started writing application code and then getting myself familiar with CI/CD and cloud infrastructure.

Scaling aspect

Then came the problem every cloud developer wants to solve, scaling the application to hundreds of thousands of active users.

In my earlier career, I had worked on systems that had memory was in KBs. We used to optimize the code to the level that it can not be optimized further. I started doing the same with the cloud software. In a few weeks, we could reduce the memory footprint, CPU utilization and redesigned a few subsystems to be more efficient.

There was a time we were solving these problems in the day and implement new features post 6 pm.

Wrapping Up

The journey of developing embedded software to cloud software was not easy in the beginning. Over time you realize that the basic concepts and fundamentals of Computer Science can be applied anywhere just the way you apply changes.

I have noticed similar patterns in all the domains of software whether it be firmware, phone applications, or cloud software. Each domain can have different ways of solving these patterns, but these patterns can be spotted.

Comments are closed.