My Journey from Embedded to Cloud: A Personal Account

Introduction

In this blog, I would like to share my personal journey from being an embedded engineer to becoming a cloud backend engineer. I hope this account will help readers who are considering making a similar transition or are interested in learning more about the field.

My Background in Embedded Systems

After completing my graduation in Electronics and Communication, I started working for an embedded product company where I honed my skills in C programming language, CDMA technology, and complete product lifecycle management. I learned how to write software that was both fast and reliable and gained a deep understanding of the hardware-software interface.

Working on embedded systems also taught me how to think about problems from multiple perspectives. I learned that hardware engineers have one way of looking at things, software engineers have another, and so on. This helped me become more flexible when solving problems and understand why other people might see things differently than me.

However, after three years and six months, I felt the need for a new challenge.

Exploring IoT

Following my time at an embedded product company, I joined a new company that specializes in IoT products. As a newcomer to the IoT field, I had a lot to learn from my experienced colleagues. Starting with C coding for the embedded part of IoT, I gradually worked my way up towards designing and integrating AWS SDK that talks to the cloud. This was my first introduction to a cloud service. This taught me how to work with sensors, communication protocols, and data processing. During this time, I also started to learn Python as it is a widely used language in the IoT domain.

Transitioning to Cloud Computing

As I became more interested in AWS components, I started working on an IoT Edge analytics product and used Python for application coding. I integrated the AWS SDK of Python with this and started using Python a lot in coding. AWS IoT and other services along with Python opened a new opportunity for me to transition from the embedded side of IoT to the Cloud side of IoT.

Soon, there was an opportunity to work with Python for backend batch processing (aggregation) in the cloud, and I jumped at the opportunity. I started to work with AWS Lambda and soon began learning about Docker. With Docker, I was able to run small services in ECS for scheduled jobs and even integrate ML jobs with the data from IoT devices.

I also started working with other AWS services like API Gateway, Lambda (for serverless HTTP), SES, SQS, and CloudWatch.

Working with AWS IoT and Other Services

In AWS, I learned how to work with services like AWS IoT, API Gateway, Lambda (for serverless HTTP), SES, SQS, CloudWatch, and ECS. These services allowed me to build scalable and reliable web applications that could handle a high volume of traffic.

AWS IoT was particularly interesting since it allowed me to connect IoT devices to the cloud, process data, and trigger actions. I could use AWS IoT to monitor sensors and devices, send alerts, and perform analytics on the data.

API Gateway and Lambda allowed me to build serverless web applications that could handle HTTP requests without the need for a dedicated server. This made it easy to scale applications and reduce costs.

SES and SQS allowed me to send and receive messages reliably and efficiently. CloudWatch helped me monitor my applications and identify issues before they become critical. ECS allowed me to deploy and manage containers, making it easy to scale applications and maintain high availability.

Learning from Mistakes

As with any new technology, I made mistakes along the way. Here are some of the things I learned:

  • Don't be afraid to ask for help. The cloud computing community is friendly and helpful, and there are many resources available online.

  • Start small and build up your skills gradually. Don't try to build complex applications right away.

  • Experiment and learn from your mistakes. Cloud computing is a rapidly evolving field, and there's always something new to learn.

Conclusion

In conclusion, transitioning from embedded systems to the cloud was a great experience for me. I was able to expand my skill set and work with new technologies like Python, IoT, and cloud services. AWS was a great platform to work with, and I learned a lot from my experience.

If you're considering a similar transition, I encourage you to explore the IoT and cloud computing domains. There are many resources available online, and the community is friendly and helpful. With some patience and persistence, you can make the transition successfully.