350+ Followers after my debut post on dev.to, I'm overwhelmed. Thanks a lot for your support, like-minded people!!
So, this is my 2nd career-related post (4th one, overall) and I'm hoping to come across more cheerful in this which I was not 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 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, my current one) so brace yourselves.
An observation that I've had only 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 (regardless of the role) thus giving them a possibility of a good return.
Otherwise, most companies just have stringent criteria coupled with 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 in my opinion, even if they hire someone experienced but with none of the aforementioned traits, it'll end up as a mismatch for at least one side eventually.
To rephrase, experience is an evergoing 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 missing out on opportunities to contribute & grow. This will increase your experience numerically in terms of time but in terms of quality, it'll not leave you much to talk about should you decide to change workplaces.
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 that's the bread & butter of the entire industry.
- DNS: Bind DNS server working on UDP.
- Web Servers: Apache / Nginx with the HTTP Protocol.
- Email Servers: Postfix / SendMail with the SMTP / IMAP / POP Protocols.
- Databases: MySQL / PostgreSQL for SQL Databases, NoSQLDBs 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 everyone worth their salt 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: The place 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). Do ensure you fiddle around with it practically to imbibe it better. If it’s an online course, do evaluate course contents, author credibility, reviews before choosing an option.
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 globally accepted standard resume / CV format.
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 made using technologies of your interest OR a solution to a genuine problem you faced at some point in time OR even better, contribution to real-world open-source projects (Yes, I know it's been said here enough 😝)
For an illustrative example, please refer mine
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 gig or showcasing that plum promotion, utilize it to connect with industry peers, recruiters, and anyone who could actually help. Start off by following Mr. Oleg Vishnepolsky & Ms. Brigette Hyacinth - tremendously inspiring.
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. (In case anyone needs it, I have a brief template usable to connect with people on LinkedIn every time)
- 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 :)