hey what's up everybody my name is moss and this is the devops interview guide in this video I'm going to outline at a high level the typical structure of a devops interview and provide some advice on how you can prepare for your next interview I'm a devops engineer with about eight years of experience and I can tell you I've been in a lot of interviews and the interviews that I'm going to be focused on in this video are targeting experienced or intermediate level devops engineering positions and I'd like to point out that typically the title of a devops engineering role is called a devops engineer but that isn't the case for all companies especially larger companies like meta Amazon Google etc for example at meta the role that does a lot of devops activities is called a production engineer at Google I'm pretty sure they're referred to as developer productivity software engineers and Amazon web services they're referred to as system development Engineers now let's briefly talk about the events leading up to an interview the first step for a devops engineering interview is typically a pre-screening call with the recruiter for that particular role and in the that pre-screening call the recruiter asks you about your experience ask you what you're looking for in terms of a job and also your salary expectations probably and we'll probably be able to give you some high level information about the role if the recruiter thinks you're a good fit then they'll forward your information on to the hiring manager and then the hiring manager will decide whether to move forward with an interview or not now sometimes before your information is forwarded to the hiring manager if the recruiter still thinks you're a good fit you might be pre-screened with an online assessment so following the pre-screening call the recruiter will typically send you a link to some sort of online assessment and that online assessment will typically include either a coding challenge or it will include General devops related questions those questions could include specifics about devops practices or um tooling and Technologies Within devops if you pass the online assessment the hiring manager will likely set up an interview with you so let's talk a little bit about the structure of an interview the length of an interview can vary depending on the company so at bigger companies like meta and Amazon the interview is typically five separate sessions with different interviewers and it can be up to six hours in total at smaller companies you'll find that the interview is typically one or two sessions totaling either one or two hours the typical format of an interview will include the following three sections the first section are star-based interview questions star stands for situation task action and result and these are behavioral questions the second part of the interview are coding challenges and in the final section of the interview they typically ask experience based devops questions on tooling Technologies or concepts and I want to emphasize that the order that I've laid them out here is not necessarily the order that you'll get in all of your interviews so let's dive deeper into each section to analyze what's included so let's begin with the star interview questions so these questions can be either hypothetical scenarios or they can be drawn from your personal experience and this depends on the company so for instance Amazon uh like AWS they'll ask these star questions in the format as tell me about a time when this happened so for instance they'll say tell me about a time that you had a disagreement with a co-worker whereas other companies might phrase the question as what would you do in this particular situation so what would you do if you had a disagreement with your co-worker so Star based questions are behavioral questions and as I mentioned before star stands for situation task action and result and those are those represent the steps you need to take in order to answer the question so to answer one of these questions you should outline the situation you should specify the tasks that needed to be done third you should um uh tell the interviewer what your actions were in that situation and finally you should tell the interviewer what the results of your actions were in that situation so my advice for answering these types of questions is to be prepared before the interview come up with real examples from your past experience that answer various questions and what you can do is you can Google Star interview questions and you can get many a large list of these star interview questions and you want to craft the examples that you come up with from your past experience for specific questions so for instance the one that I gave earlier tell me about a time that you had a disagreement with with a co-worker you should come up with an example from your past experience that specifically addresses that question and I also want to emphasize that the examples that you come up with should illustrate your action that you took in this situation avoid saying we or we the team did such and such in this particular situation always focus on what you did and your contributions uh were to the situation Additionally the examples that you come up with should always end with measurable results so for instance you could give an example where the result was that build times were reduced by 20 percent or that positive feedback from the development team increased for a particular process or workflow that you improved even if the example that you give results in a negative outcome it's still a useful example because oftentimes interviewers will ask you something like tell me about a time that you failed to meet a project deadline or a project requirement and in these cases you want to have those examples prepared because even though it may have the the the example may have resulted in a negative outcome the follow-up to that is what did you learn what would you have done differently that's typically what they ask in those cases okay so now that we've covered star interview questions let's talk about the coding challenges that you might get when you're interviewing for a devops engineering role so depending on the company you might have a single coding challenge in your interview or you might have multiple coding challenges in a single interview session or across multiple interview sessions and at larger companies like meta Amazon Google you can expect to receive leak code style questions but for devops engineering roles the level of coding that is required to fulfill the role's responsibilities is not the same level as a software engineer working on back-end services for AWS or meta the the software that devops Engineers write is typically internal tooling that doesn't have a direct impact on the end user of of services like meta or AWS and because of that coding challenges in devops engineering roles typically are not as difficult as software development engineer roles I've outlined in the presentation a list of categories that I've studied for interviews and that I have most commonly seen in interviews for devops engineering roles that you can study on leak code and you can study these specific categories on leak code by just navigating to lead code and then if you select problems here at the top scroll down you can see that the um problems are categorized here and if I expand this I can select a particular category now a category that I see consistently in devops engineering roles are hash table questions so if I open this up uh I can see a list of hash table questions and they can be sorted by difficulty or frequency if you have a Lee code premium membership which it is helpful to see the frequency that a question is asked but you can sort by difficulty and in general the level of difficulty that you'll see in devops engineering roles is going to be easy and medium I don't think I've ever seen a hard leak code question in a devops engineer interview so this is the way that I've studied for coding challenges I studied per category I narrowed the categories down to the ones that I listed in the presentation and then on top of that there's this site grind 75 questions this also helps you narrow the number of questions that you want to study for by difficulty by topic and also by your schedule as well so this was also very helpful and something that I utilized to study for my interviews so a lot of times the coding challenges will be leak code style questions but there is kind of a second format of questions that I've also seen and these are formatted almost like a project so you will be asked to complete unfinished code for instance or you'll be given some sort of feature or system to implement so it kind of is like a system design question but not really um I don't think it's as intense as system design questions but it is more of an open-ended problem-solving question and it's not specifically targeted to a single problem like you know find the shortest path or sort these numbers or something like that I feel like this kind of question is less common you're more likely to get leak code style questions but just know that this other format does pop up here and there so my advice for the leeco challenges is first make sure that you're talking out your solution as you work it out make sure that you're talking about the things that you're doing and don't just silently write code because the interviewer doesn't you know can't read your thoughts and you need to make sure that you're expressing your thoughts while you're writing out the code and this takes practice because it's not natural for someone to write out code and talk at the same time but it is something that you have to get used to for the interviews because it's very helpful uh for both yourself and the interviewer because the interviewer make uh you might be going in the wrong direction and if you're expressing your thoughts the interviewer can redirect you or guide you into a different direction if they know your thought process the other thing that I would advise is to check in with your interviewer frequently and make sure that you're on the right path or that your approach makes sense so in the beginning when you feel like you've come up with an initial approach that you want to implement run it by your interviewer and say you know I think I can solve this problem by doing you know such and so and they can validate you know whether that approach makes sense or maybe they'll tell you they aren't going to tell you outright that it's wrong but they'll be able to kind of guide you into a different direction if you're not headed in the right direction so check in as you're talking uh about the the steps that you're taking check in with the interviewer ask them does this make sense get feedback from them and get get input from them the coding challenge isn't just about solving the problem it's also about gauging how you work with others when you're approaching or trying to solve a technical problem on the job you're going to be working on a team and having to solve problems as a team and so when you're working independently and working in silence and you're not communicating with the interviewer I think that this does take points off from your interview also I would not spend a lot of time in the beginning of the interview when they show you the problem statement thinking about the most optimal result try to get to work and start coding as soon as possible even if it's a sub-optimal approach and you know it's a sub-optimal approach you can optimize later but get a working solution first and then iterate because that will inevitably happen anyway if you come up with a solution the interviewer is going to ask you is there any way to optimize the solution and finally make sure that you're practicing the leak code questions that I mentioned earlier take a little bit of time each day to complete one or two problems don't try and cram problems all at once or memorize Solutions look for patterns and problems a lot of problems overlap in their Solutions or they can be bucketed into a particular category and I promise you once you start doing not even like that many problems you'll start to see patterns in the problem statements and you'll immediately recognize oh I can use a hash table for this particular problem or I can use a stack for this particular problem and it will help you a lot when you're presented with a coding challenge because the coding challenges that that you're given are not one for one for elite code question they'll never be one for one for a lead code question they're always slightly tweaked they're very close to Elite code question that you've seen before but the constraints are tweaked uh the input is tweaked something is tweaked a little bit so you just want to be able to recognize what kind of a problem it is and that will help you come up with a a viable approach to solving that problem in the final section that I want to cover are experienced based questions and this line of questioning is very specific to the role that you're applying for it's kind of a toss-up on what kind of questions you're going to get in this section of the interview you could be asked questions about Linux Administration or troubleshooting or you could be asked more General troubleshooting questions for example you might be given a hypothetical scenario where you are working on a client workstation communicating with a server and you receive an error from the server they'll ask you well what does the error mean and how would you go about fixing that error and as you address each error they'll introduce a new error so it's kind of an exploratory troubleshooting session to see what the depth of your knowledge is and how broad it is what uh what kind of Technologies and Concepts does your knowledge base span because they'll go from networking uh troubleshooting errors to a local areas that you might get on a Linux machine to storage errors it will it will go into quite a bit of depth or you might be asked questions for a specific tool like kubernetes Docker terraform ansible Jenkins gitlab or any other devops related tool in addition you could be asked higher level questions about devops Concepts like git Ops or CI CD so for instance you might be asked how would you implement a CI CD pipeline that utilizes git Ops these are the kinds of questions that you can expect in the experience based section of the interview so in conclusion my advice to you is to First study easy and medium difficulty Elite code questions in the categories that I outlined in the previous slide also prepare examples for star-based interview questions and make sure sure to study tools and technologies that companies need candidates to have experience in for the role that you're applying for if the job description specifies that they're looking for someone with kubernetes experience or knowledge about kubernetes try to get some experience on your own either at your current job or independently on your own time to get familiar with kubernetes and get experience with kubernetes in general the most common technologies that I've seen in job descriptions and have been asked about in interviews are Docker kubernetes Linux AWS Azure Python and terraform those seem to be trending quite a bit right now in devops interviews and I'd also like to to note that that list assumes that you already have exposure to the long list of other devops tools that you're kind of expected to have experience with like git sem tools like GitHub Hub git lab or bitbucket CI CD tools like Jenkins or Travis CI my other advice is to continue applying and interviewing for positions apply for as many jobs as you can and get as many interviews as you can because every time you interview you'll gain a little bit of interview experience and you'll be more prepared for your next interview and lastly make sure that you have a list of questions that you want to ask the interviewer because if you're seriously considering a move into a new job think about all of the things that are important to you in a job maybe things that you have in your current job that you aren't guaranteed in a new job and some of the things that I typically look for in a devops engineering role and comes up quite a bit our on-call scheduling so is there an on-call schedule and if so what kind of a schedule is it because it could be a 24 7 schedule or it could be something that's uh not as demanding where it's only during business hours but it could have weekends so you want to make sure that you ask all of the questions and reveal any um any aspects of the job that might make you hesitant to take the job if you were given an offer I hope this video helped and I've linked some resources in the video description below if you did find this video valuable please consider throwing a like on the video and subscribing to the channel for more videos like this thanks for watching