350+ Followers after my debut post on dev.to, I'm overwhelmed. Thanks a lot for your support everyone!!
So, this is my 2nd career-related post (4th one, overall) and I'm hoping to come across more cheerful in this that I wasn't in my previous one. In case you didn't read it, please find it here
This post is to share my experience of transitioning into the role of a DevOps | SRE - Site Reliability Engineering and it's key takeaways (I'm aware they're mindsets/best-practices but I'd like to call them roles to keep it simple here)
Before beginning, let me enlighten you that this activity will involve its fair share of finding relevant jobs, applying, interviews, rejections, and repeating until you land a new one (for me, it was Bizongo back in 2018) so brace yourselves.
An observation I've had is very few companies actually look for candidates having a genuine interest in their product/service/culture, a problem-solving attitude, and a keen will to learn new things thus giving them a possibility of a good return.
Otherwise, most have stringent criteria via the usual ATS - Applicant Tracking System scanning for keywords in your submitted profile to match it with their requirements. Not aligning to it by even a minor parameter misses your chances of getting even an interview, let alone the job.
While I concur skills and experience are important as companies want to avoid bad hires. However, even if they hire experienced people with none of the aforementioned traits, it'll end up as a mismatch for at least one side eventually.
To rephrase, experience is an ongoing process (everyone was a newbie once), and skills can be steadily acquired as long as one is passionate enough. But if you don't realize what exactly you're working for, you'd be unable to identify and solve problems for the organization thus missing on growth opportunities. This will add to your tenure numerically but not much in quality, leaving one with very little to talk during a career switch.
So, until more companies adopt the mindset of preferring to hire people for mindset over just a burgeoning skill-set, I'll list some technicalities you'd need to start off.
Note: I've included course links wherever possible but please research for alternatives as well.
Remember when we learned a language in school in the sequence of alphabets, words, sentences, paragraphs? Becoming an SRE is similarly analogous since the first step is to master the fundamentals. This will serve you well whether you're starting out or are a seasoned veteran. Listed below in no particular order:
- Linux OS / CLI: The glue holding everything together.
- Network Protocols: TCP/IP, UDP, ICMP - the bread & butter of the entire industry.
- DNS: Resource Records, Zones, TTLs etc.
- Web Servers: HTTP Protocol via Nginx/Apache/HAProxy
- Email Servers: Postfix / SendMail with SMTP / IMAP / POP Protocols.
- Databases: MySQL / PostgreSQL for SQL Databases. NoSQL DBs are a different ball-game altogether so lets skip that for now.
Key Point: Understanding how each of the above works in a nutshell (ideally, you're not expected to be a know-it-all) but being aware of where each resides within the OSI layer is something DevOps / SREs folks should be familiar with.
Done with the basics aka alphabets & words? Good! Next up are more technologies which you should invest time to grasp - one thing at a time.
- Containers (Docker): This Udemy course is a great place to start.
- Cloud Computing: Where all websites such as dev.to are hosted. AWS leads this space with Google Cloud / Microsoft Azure hotly trailing. Again, another Udemy course is a fantastic starting point.
- Version Control: GIT is probably used by most enterprise teams to manage their code-base. Alternatively, SVN.
- A Programming Language: Python / Ruby / Go / Perl are widely accepted as de-facto standards to automate things. The Internet already contains a smorgasbord of articles so I'll skip this one.
- Configuration Management: Tools such as Puppet / Chef / Ansible / Saltstack / Terraform are used to maintain the whole infrastructure as code (IaC) saving you time from configuring one or more servers individually as well as keep them consistent at all times.
- I've also purposefully not covered topics like Monitoring & Alerting, Metric Collection, Container Orchestration as they're beyond the scope of this article, and best learned on the job.
Key Point: This will take some trial and error but find the ideal way to help yourself learn (whether it’s instructional course videos, PDFs, or blogs). If it’s an online course, do evaluate its contents, author credibility, reviews before choosing an option. Also, ensure you fiddle around with these utilities practically to imbibe it better.
Please make a well-formatted resume highlighting your career so far, focus on achievements & ensure to keep it crisp. You can try cakeresume / sumry as URLs are easier on the eye & they render cleanly on most modern browsers (Keep a copy offline in PDF as well) - I can vouch for CakeResume from personal experience.
Key Point: Regardless of you using a web-URL or PDF, do note the possibility of maintaining multiple resumes since there's no standard resume / CV format accepted globally.
To extend point No.3, a portfolio website showcasing all of your relevant skills and having a link to your resume would ideally be icing on the cake but I'll leave that to your discretion.
Therefore, an alternative would be my next point.
Again, not mandatory but having one will greatly boost your chances. It could be anything among the following: a. A project made of technologies of your interest.
b. a solution to a genuine problem you faced at some point in time. For an illustrative example, please refer mine
c. even better, contribution to real-world open-source projects (Yes, I know it's been said here enough 😝)
Were you thinking of soft skills? Yes, they're equally important so here's my take on it.
Interacting with grace and being courteous (in interviews, emails and calls) is an etiquette that'll take you miles.
One skill I acquired during my search was using LinkedIn effectively. While networking with industry peers face-to-face at live events is better, it tends to be challenging to do so in a limited time. Therefore, along with using it to obtain a new role or showcasing that plum promotion, utilize it to connect with industry peers, recruiters, and anyone who could actually help. Start off by following subject matter professionals in the DevOps/SRE sector.
A thumb rule I followed to achieve this was connecting with every recruiter who gave me positive feedback on my candidature even if I was rejected for their company's role. You may or may not need 500+ people in your network but having the right ones will definitely come in handy someday.
Results?: My number of connections jumped by 48% that I was able to leverage to some extent. (Please DM me if you need a brief template usable to connect with people on LinkedIn)
- To extend that train of thought, do follow organizations on LinkedIn as they post a lot of information such as vacancies, blog posts, and insider stuff (events like hack-days, town-halls or their teams at any tech conference that you could use to talk about in your cover letter or an interview.) Believe me when I tell you this, they'll see you in a whole different light.
Focus on learning things 1 at a time to avoid confusion, frustration, and burnout.
Try to keep positive as this process usually tends to be draining - physically, mentally & emotionally. One way I did this was by reminding myself that I'm worth much more than any company that doesn't want to work with me. Yes, it'll be initially agonizing but it's a good way to get closure.
Do keep a track of all the applications in various stages along with dates of when you've sent/received, interviewed/feedback given/pending, sent resumes, etc.. Over a period of time, this will become a good database for your reference. You can try Airtable which is an awesome tool.
Lastly, never forget - you're the best decision-maker for you.
As I conclude this very lengthy post, please remember - Your Mileage Will Vary but you'll definitely end up learning lots of new things.
Exhausted already? This is just the tip of the iceberg! The actual journey starts off after you land the job :)