loading...

Breaking in as a DevOps | SRE

vinayhegde1990 profile image Vinay Hegde Updated on ・6 min read

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, application process, interviews, rejections and repeating until you land a new one (for me, my current one) so brace yourselves.

I'd like to start off by pointing out an anecdote that only a few rare companies actually look for candidates having a genuine interest in their product/service/culture, a keen will to learn new things (regardless of the role) and therefore a possibility of guaranteeing them a good return on their investment.

Most have stringent criteria and the usual ATS - Applicant Tracking System which scans for keywords in your submitted profile and matches it with their requirements and unknowingly not fitting in it by even a single one screws your chances of getting even an interview, let alone the job.

While I concur experience and skills are important as companies do not want to end up with bad hires but in my opinion, even if they land someone experienced but without none of the above traits, it'll turn out to be cruel for atleast one side eventually down the line.

With me so far? Good. Here's a quick summary

In simpler words, experience can be gradually had (everyone was a newbie once) and skills can be steadily acquired but as an employee if you don't realize what exactly you're working for, you'd be unable to solve problems your organization is facing and thus miss out on opportunities to contribute & grow. With this approach your years of experience will increase numerically 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 mind-set over just a burgeoning skill-set, I'll list some technicalities you'd need to start off.

Note: I've tried to include course links wherever possible but please research for alternatives as well.


Step 1 - Fundamentals

Remember when we learnt a language in school in the sequence of alphabets, words, sentences, paragraphs? This is quite analogous as the first step is to master the fundamentals which will serve you well whether you're starting out or are a seasoned veteran.

  • Linux OS / CLI: The glue that holds everything together.
  • Network Protocols: Bread & butter of the entire industry. TCP/IP, UDP, ICMP.
  • DNS: Bind DNS server with the UDP protocol.
  • Web Servers: Apache / Nginx with the HTTP Protocol.
  • Email Servers: Postfix / SendMail with the SMTP / IMAP / POP Protocols.
  • Databases: MySQL / PostgreSQL for SQL based Databases, NoSQL based DBs are a different ball-game altogether so lets jump over that for now.

Key Point: Understanding how each of the above work in a nutshell (ideally, you're not expected to be a know-it-all) and being aware of what works where in the OSI layer is something everyone worth their salt should be familiar with.

Step 2 - Emerging Technologies

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 the wonderful 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 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) and make sure you’re imbibing it via practical exposure. If it’s an on-line course, do evaluate course contents, author credibility, reviews before choosing an option.

Step 3 - Your Resume / CV

Please make a well formatted resume that highlights 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 (however keep a copy offline in Word|PDF as well) - I can vouch for CakeResume from personal experience.

The catch?: Regardless of you using either of the two options above, please make a due note of the possibility of maintaining multiple resumes as in my opinion, there's no globally accepted standard resume / CV format as such.

Step 4 - Visual Representation

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.

Step 5 - Side projects

Again, not particularly necessary but this 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 already :P) For an illustrative example, please refer mine

Step 6 - Soft skills

Did someone say soft skills? Worry not as I'll try to cover them too.

  • Interacting with grace and being courteous (in interviews, emails and calls) is an etiquette that'll take you miles.

  • One more skill I acquired during my search was using LinkedIn effectively. While networking with industry peers face-to-face at events is better, it tends to be challenging to do so in 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 can 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've a brief template that you can use to connect with people on LinkedIn every time)

  • To extend that train of thought, do follow organizations on LinkedIn as they post 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.


TL;DR a.k.a Key Takeaways

  1. Focus on learning things 1 at a time to avoid confusion, frustration and burnout.

  2. When applying for a job, be sure to do atleast some research on a company, use sites like Crunchbase & Craft - regardless of the outcome, your interviews will be definitely more interesting.

  3. 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 who doesn't want to work with me. Yes it'll be initially agonizing but it's a good way to get closure.

  4. EDIT: Also, 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.

  5. 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 :)

Have any opinions, suggestions or anything else that you'd like to share on this? Please do so in the comments below.

Posted on Oct 2 '18 by:

vinayhegde1990 profile

Vinay Hegde

@vinayhegde1990

Site Reliability Engineer with 5+ years of experience. Otherwise an avid artist, reader, cinephile & football fan. Looking forward to connecting with everyone :)

Discussion

markdown guide
 

Thanks for the informative article. This is one of the best resources I have found in quite some time. Nicely written and great info. I really cannot thank you enough for sharing.
DevOps Training in Pune

 

Happy to know that my article helped you @bama!

 

Great article! Very thorough and well written, nothing else to add but a big thank you (and a <3) !

 

Thank you for the encouraging words @Matei! I'm glad the post proved beneficial for you.

 
 

Glad to know it helped