As a cloud engineer, you need a versatile skill set. Below are the skills cloud engineer must have to become successful in his career:
- Platform-as-a-Service (PaaS) and Function-as-a-Service (FaaS). You should know how to use these services. With them, you can move much faster, reduce cost and time to market. The days when cloud was just infrastructure and storage is long gone. It’s hard to keep up with all the new offerings from all the major cloud providers, but sticking with one and keeping somewhat up to date with it is fine.
- Distributed systems. In the cloud, you will build distributed systems. You should have an understanding of basic concepts like concurrency, horizontal scaling and the CAP theorem.
- Messaging. You should know how to have your services communicate via message queues and ensure that messages are processed in correct order, which can be pretty tricky in a distributed system.
- DevOps. This is really important when building systems in the cloud, because you’re going to be deploying a bunch of different resources to a large number of servers. Learning how to set up CI/CD pipelines and templating all your cloud resources is a skill that will pay itself off with interest.
- Programming. This should be a given, but you need to know at least one general-purpose programming language, a scripting language for automation purposes and potentially several query languages.
- NoSQL. There are various storage options in the public cloud. To scale better, you often need to move from traditional RDBMS to document databases, wide-column stores or data lakes.
- Cost estimation. This can be pretty tricky with cloud computing. The pricing models are often complicated and confusing. You should nevertheless familiarize yourself with them and try to understand how different resources scale in terms of cost.