Fast Track - Learning Community
I've had over 15 years in the industry and I'm keen to share all the things I learned the hard way, so you don't have to make the same mistakes I did. Here are my 3 keys to carrer advancement if you're just starting out or looking to break into DevOps, automation, cloud and software development.
At the bottom of this page I have reading suggestions, next steps and challenges you can follow to advance your own carrer.
๐ป ๐ ๐ Join our slack community to have 24/7 access to some great minds and a supportive group!
1. Get educated and/or get some certs
Until you have enough proven industry experience, a degree and cloud certificates are great starting points as they demonstrate your ability to master the basics. You can also do this with coding bootcamps. That's just the beginning though, the real work happens after you've got some of the basics under you belt.
If you're studying for a cert, think of ways you can make it interactive for yourself (ie open up an AWS and start building), and include outputs that you can with the world (code, blogs etc) - more on that later.
2. Get some experience, then hussle
Roles that build skills vs more money
In the early stages of your career it's less important how much you're getting paid, and more important to get lots of good experience. The experience I gained as a support agent, SEO Optimization expert, and developer, all helped in landing a job as a "DevOps Engineer". There were plenty of interviews where I didn't have all the industry experience, however I still had demonstrable knowledge and enthusiasm I was able to convenience companies it was worth taking a chance on me.
When I started my career I was Level 1 phone support for a windows/MSSSQL based application. I learned essential troubleshooting skills, progressed to Level 2 got my hands dirty with SQL replication. Web development was my true passion, so my free time was spent learning on various side projects.
There are many paths to your dream job, and many jobs that can help you build the experience you need to eventually that job of your dreams.
Be hungry - and hussle
Early on in your journey you're going to be missing 'years of experince'. For some senior roles there's nothing you can do to 'immediately gain experince', but you do have one ace up your sleve that's free and instant - hunger and hussle! These qualities should not be overlooked, especially for junior roles (where you don't need to compete on experince and you have the opportunity to learn).
Learn and do as much as you can, and don't limit yourself to your current 9-5 duties. When I was a web developer for a small consultancy I saw an opportunity to step into an SEO Optimization role, I pitched a business case to invest in me to be that expert, so the other devs could focus on their code, and I got first-hand industry experience in a field I'd never studied.
I remember one of my first real consulting gigs, I was responsible for automating an AWS Account with networking from the ground up. I had a huge learning curve ahead of me. I cut my teeth on CloudFormation, AWS VPCs, learned about ephemeral ports the hard way (those are seared into my memory) - but I came out the other end of that being able to master any AWS Networking issue that came my way.
Be prepared to do things you haven't mastered yet, take on responsibility outside of your role/contract, get out of your comfort zone, and demonstrate a willingness to work hard and learn fast.
3. Your brand - the interview advantage/booster
For my personal brand, I built a presence on GitHub, StackOverflow, Serverfault, and on meetup.com attending, presenting and eventually hosting my own meetup (which was a hit in interviews when they were looking for people active in the community). These were great talking points in interviews and impressed many people, showing my dedication to learning and continuous improvement.
I stumbled on Cloud and DevOps by accident, as a curious developer wondering where and how my code got deployed. By deploying my own websites and obsessing on the inner workings I was able to naturally build practical knowledge of DNS, web servers, load balancers, http vs https, redirects, json/yaml, css/js, IaC, backend and frontend development. You can get started with AWS Challenge or just just developing and deploying today.
Always be producing content
You don't need to write about something new or groundbreaking.
I found that writing about what I learned was helpful for myself, and my brand. If you take notes of interesting things/code/sites as you go, you can draw from a queue content that you can share with the world. The quicker you produce content, the more feedback you get.
Here are examples of all sorts of content I've created:
- Driving change and building a high-performance DevOps culture - based on what I learned from a talk I attended (selfie with the presenter included)
- AWS 2021 Highlights - a super high-level review of a few new AWS Services
- Value Stream Map (VSM) Visualization - a quick python script I made to interact with google/miro APIs to show off some cool visualizations
- Teaching DevOps in one afternoon - a blog I made after I spent a few hours teaching my recruiting friend python and docker
- DevOps in 10 minutes with Google App Engine - a blog professing my love for Google App Engine, and showing off the repo I made to deploy apps to it (I already had this repo from a personal project I had deployed to App Engine so it wasn't much work to write something around it)
So what's holding you back from producing your next piece of content?
Things to read
These websites helped shape my understanding and thoughts of the industry:
- https://martinfowler.com/articles/developer-effectiveness.html
- and thus
Accelerate
and theState of DevOps report
- and thus
- https://martinfowler.com/delivery.html
- and thus
Extreme Programming
,Continuous Integration
and related topics
- and thus
- https://trunkbaseddevelopment.com/
- https://web.devopstopologies.com/
- https://cloud.google.com/architecture/devops/capabilities
- a broad range of topics around version control, trunk-based development, CI, deployment automation, testing, delivery, test data management, shifting-left on security ... very detailed and well put together
- Agile Product Ownership in a Nutshell video
Here's my personal collection of books. It's a mix of leadership, behavioural, DevOps and Agile so you'll want to pick the topics that are most aligned with what you're learning.
What next?
- Checkout learn for self-paced learning
- AWS Challenge to get your hands dirty with AWS, Infra and web dev (more challenges coming, see outline below)
- Publish some content, I suggest medium to start with so you can focus on content and not get bogged down in the logistics of your blog setup
- Join some meetups, meet some people, get those creative juices flowing
When you're ready, join our slack community to have 24/7 access to some great minds and a supportive group.
Challenge outline
You could do this in 6 days, 6 weeks, or 6 months.
One
- Build and deploy a static site in AWS using serverless: AWS Challenge
- Iterate on the first challenge (smoke tests, pipeline improvements) & launch your brand - your hello-world
Two
- 3 Tier app & Networking in AWS
- App Modernization, lambda and strangler
Three
- Google App Engine app deployment
Four
- Automated Testing: TDD/BDD
Five
- Katacoda lesson
Six
- Build a container, do a security scan/test on it, deploy it to a k8s stack
Outcomes
- Your own brand/website
.com - 6 blogs posts based on your experinces and what you learned from each challenge
- 6 repos in your github showcasing your skills
- Demonstration of a breadth of skills (AWS, GCP, Web Development, IaC, TDD/BDD, Containers, LB/App/DB, Security)
Compliments study for a certificate: You can study a cloud cert alongside this challenge and it will help you get hands-on with the material that you'll need to memorize for the cert.