20 years experience with Linux, Networking and PHP as a software architecture, where do I go from here?
I've worked in IT since 2001, have knowledge in Linux admin and network resolution, but although I'm a software architect, my stack is limited to PHP and Oracle PL/SQL, I'm tired of my current job, what would you recommend?
The cloud is your oyster
When you have 20 years of experience, you're positioned to move into pretty much any kind of cloud role.
- Solutions Architect
- Data Engineer
- Cloud Engineer
- Cloud Security
The unicorn for cloud recruiters
I usually say, Cloud Certifications is all about the journey, and in most cases, will be a minor factor in helping you secure a job.... except when you have 20 years of experience.
When you pair a couple of Professional level certifications eg. AWS DevOps Professional with 20+ years of experience cloud recruiters like Jefferson Frank will have an effortless time finding you a high-paying and rewarding career in the cloud. That combination of experience is highly in demand to the point that companies are ready and willing to sponsor non-native English speakers from India or elsewhere to come work in the US and Canada.
Deep programming and framework knowledge is overrated
The great thing about the cloud is that so much of the application workload is offloaded to managed services that companies who go cloud-native leveraging the most of what the cloud offers shifts the knowledge requirements of the software architect.
Companies become less concerned about deep knowledge of web or software frameworks and more on distributed systems knowledge and configuration details between services (application integration).
So when you say I have strong knowledge of one language and one database, that's more than enough to have transferable skills. You will encounter many different programming languages in the cloud, but you only have to have shallow knowledge eg. functions, variables, loops and SDKs.
You can pretty much copy and paste your way through most tasks.
Where to go from here?
When you have strong Networking and Virtualization knowledge adjacent to software development, you will likely be interested and accel in Modern Application Architecture.
Modern Application Architecture focuses on micro-service architecture (dividing monolithic apps into small isolated applications).
Modern Application Architecture is the cutting edge of software architecture for cloud workloads. So the learning path is not well-defined, but the upside is that you can define it yourself, and no one has the means to say you're doing it wrong.
From here, we have two choices: Containers or Serverless.
Containers generally mean Kubernetes (K8) because that's what all the companies want to use.
If you want to peek into this world, this recent article shared with me gives a good insight into how challenging containers are. No, We don't use Kubernetes
If you enjoyed Linux Administration over Programming (which is all about smashing your head against difficult configurations problems), the containers route is for you!
Technically this is a DevOp-ish path.
TechWorld with Nana is a free place to start
Serverless is when you leverage cloud services that abstract away most or all of the infrastructure. So you don't worry about the configuration of the underlying infrastructure. You have a consumption model based on some abstract usage credits, cost can scale to zero, services are designed to be highly available, scalable and secure. You focus more on the configuration of cloud services, shallow programming and architecting and implementing solutions.
The above statement is a bit of a lie, or I should say Cloud Service Providers (CSPs) have been broadening the serverless term, applying to fully managed services that meet most but lack some of the tenants of serverless.
My friend Daniel who runs the Serverless Toronto User Group would say the way you should think of Serverless relating to cloud services is like how some home appliances have an energy efficiency rating; some services are more Serverless than others.
In serverless, you will also encounter containers; it's not Kubernetes, it's more like a containers-light skillset, where you build and use containers, but orchestration and networking are greatly simplified.
If you enjoyed Programming over Linux Administration, then Serverless is the route for you!
Learning serverless is a bit tricky since there are many schools of thought and essential need to join a dojo and learn from a person.
I think the leader of serverless technology is AWS, because they have the broadest amount of serverless services that are well interconnected and are cost-effective.
One route could be to take the Production Ready Serverless (they have a sponsorship program that can reduce the cost significantly)
I strongly recommend attending the Serverless Days Serverless Online Conference August 15 2021.
I am working on an entirely free serverless certification course because I feel there is a huge gap in accessible training for serverless, starting with my Serverless Fundamentals Certification.
👉 If you want to ask me a cloud journey question, details are here: 👈