Interview Transcript
Silver Fox: Hi.
Crafty Lobster: Hi, Silver Fox. Hi, how are you?
Silver Fox: I'm good. How are you?
Crafty Lobster: Good, good. Everything you were able to hear me all good?
Silver Fox: I can hear you all right.
Crafty Lobster: All right. So, today you have requested for coding interview for Amazon. Is that right?
Silver Fox: Yes.
Crafty Lobster: So, before I begin, can you little bit tell about where are you in terms of your preparation? What are you looking to check? And then we can take it from there. And what place are you interviewing for in the company?
Silver Fox: I think I'm interviewing for, for instance, pre hire. I currently have about 11 months of experiences since I, and my interview is scheduled out next Monday for Luke interviews. And I have done all the Leetcode Amazon char questions. And also was following the Cracking the Coding Interview, interview patterns questions. And there's most of them, and yeah, that's basically my progress right now.
Crafty Lobster: Oh, right. So you're interviewing for SDE one, right?
Silver Fox: Yes. SDE one.
Crafty Lobster: Right. Oh, cool. All right. So I'll tell you a little bit about Amazon interview. And so basically, in the Coding Interview, we ask a couple of leadership questions to check the leadership principles of Amazon like bias for action, ownership, all those things. And then we ask two question which is which is one easy or one medium or one. Or just one question which can be medium or hard problems? Okay. So this is the general the format. So today, I can cover one leadership principle question and one coding question or I can skip leadership principle. If you want to totally focus on coding question, and then go to question coding question. So which one will you prefer?
Silver Fox: Can we have one leadership principle question and one coding question.
Crafty Lobster: Sounds good. Sounds good. And, yeah, and in the in the interview, during the interview, I'll be taking some notes. So you might hear my keyboard sounds. So just be mindful of that. I'm just taking notes, which I will share with you towards the end of the round. So we'll start the interview on the on the this dashboard, on this interviewing.io platform. And in about for about 15 minutes and towards the last 10 minutes, I'll give you some feedback from what I observed and things you can further improve, which will help you clear your interview. And if you have any questions after that, we can also take them. Does that sound good to you? Any any questions?
Silver Fox: Just before the interview starts, you might hear me typing sound, but actually, me and my girlfriend are in the same room. So it's my girlfriend typing, it's not me typing as you know, I'm typing in the midway. So just to be clear.
Crafty Lobster: Sure, sure. No problem. But during the interviews, I recommend you give interview from a place where there is no other person or noise coming.
Silver Fox: Yeah I'll make sure.
Crafty Lobster: For the actual interview.
Silver Fox: Yeah, in the actual interview, I'll be the only one in the room.
Crafty Lobster: Yeah. All right. So let's get started. So, so I'll start with the behavioural question first. And so this is the actual interview starting now. So I want you to tell me about a time when you have worked against a tight deadlines, and didn't hand had the time to consider all options before making a decision.
Silver Fox: Okay. Just give me a one moment to think about.
Crafty Lobster: No such cases?
Silver Fox: I think I have one. So I think I will start with this example. So during my time at [Company] International, as a junior web developer, my job responsibilities includes working with other developers for the internal HR system. And I remember, for some reason the clients wanted the next year verbal to be two weeks earlier. And by then, to be honest, we weren't quite ready for the deliverable to be two weeks earlier. So we must cut something. But, but our manager is busy with other projects and other stuff. So it's falls onto us to decide what feature and which part to cut out. So I did, I did a bunch of research, like, including what are some common HR systems from on the market? And what features what functionalities do they have, and what's the most common functionalities and all that. And I found that there's one particular functionalities, that it's not very well used, it's apply for promotion. Because in the market in, like, this is how we design a design that, you know, if someone were to apply for promotion, then he was submitted an application for in the software and this application form will be realised by some real person. So but the only process that will clean up Yeah, it's you don't have to pass he passes a partition form to someone else in person. But this feature is supposed to take the longest to complete, because we have to build a building, volunteer, and gather like a lot of information, and a lot of form field to be built. So based on the information, and also discuss with other teammates, and we decided, we decided to cut off this feature for the next level. And we also inform the client about this talked about the upcoming like, data alliance. And the decision we are about to make the clients was okay with our decision. And so I also talked to the manager about them. And so we moved down was this, you know, cutting off their feature for the next level, and with this feature cut off, and the feature actually should take longer to develop for the next available from the list of functional requirements. So we were able to make it to that deadline within the timeframe. And also, we made sure that the other deliverable. The other function requirements for the next level were completed on time, and was were high quality and in the demo, our clients stress that they were pretty happy with this new durable given the tight deadline. And the feature can be moved to the next level and that's basically what happened. So, yeah.
Crafty Lobster: So how much time did you had initially, and from which you reduced two weeks and after you remove this feature, were you able to achieve that time?
Silver Fox: Okay, so originally we had about a whole sprint plus a week. So it's basically be four weeks, plus Well, five weeks. In total. Our sprint is counting like four weeks as one sprint. So it's just a five weeks and with a notice we received we have to complete by the end of the not the end of the sprint but the middle of the next sprint because they were they were working on something that's rely rely on the feature. So that they need some buffer zone to pass on our feature, so that they can be implemented in their feature.
Crafty Lobster: And how many people were working on this thing
Silver Fox: about five to six developers.
Crafty Lobster: And the coded the identification of the functionality that you mentioned, which was taking long time is not needed in this iteration.
Silver Fox: So we have like, for every functionalities, we have an estimate of its size, and its, you know, actually means approaching this time to completion. And so this is one of the longest from the initial analysed phrases this deliverable. So this decision was made by our team as a whole, like we talked about, oh, how long should we take to implement this feature? And so does that answer your question or looking for the information?
Crafty Lobster: So yeah, no, I'm more interested, like you mentioned, you, you guys knew this feature will take more time. So is it fair to say it was a collective decision to drop this decision and something you did not do individually?
Silver Fox: I would say, I would say the decision was made made class collectively, but the information I and I took the initiative to in the case, at the moment, no one really know what to do. And most of us are junior developers, they don't have much experiences in you know, what to cut out and what to keep. So I took the initiative to analyse this and do some research, just because that's if we keep you know, working at the pace, we were as before, we wouldn't be able to complete this deliver on time, and finish all the testing we were required to do.
Crafty Lobster: And anything, any learnings you had from this experience that you will take away so that for for future instances, any learning you have?
Silver Fox: I think one important thing I learned is that in the future, no matter what I do, if I have a way to connect with a client, I would do so regularly. So that if they had been, they have any thoughts, any ways of planning, anything they would like to do, I will know right away, instead of like, this is when they are made this decision, you need to we need to push forward the deadline by two weeks. So I think I will keep the communication channel was a client where it's early. And we will communicate on a regular basis. And so that we both know each other's situation and issues and concerns. So that's, I think that's one really important thing I learned from this one. And like I even applied some of this in my current job. So I'll just talk about a little bit. My current job I currently working as a web development support engineer at one company, and part of my responsibility is to, you know, support customers in their technical requests, sometimes a feature request, sometimes bug reports. And in my supporting duty and development duty, I would actually actively notify my customers, hey, how long this feature I've been working on, that you requested, will be probably going to take. And if there's a problem in my development, like if that's a if there's a testing issue in your testing suite, I will let the customer know, hey, our testings with experience and problem. So this might take a few days, few extra days to test the feature before merging to the master. So I think this is the most valuable thing I learned. And I've heard a lot of positive feedback from this. You know, I keep in touch with a client.
Crafty Lobster: Good good sounds good. This is good. All right, so let's move to the coding part. You can select any language of choice from the drop down, which is plain text and then I'll put the question which you can read work on so, the question is this... and this is my question. This is the question you can go through it I'll put some test cases for you distributed through and let me know if you have any questions
Silver Fox: Okay. The initial thought I have sorry. So, the initial thought I had, in my head is DFS but that would take o(m x n)squared like I need to traverse the whole grid for every letter that is equal to the starting letter. So, that will be
Crafty Lobster: in DFS you say, Can you can you explain more? Like how will it work and the complexity aspect?
Silver Fox: Okay, sure. So, for example, the first example, I have A, B, C, C, D, and in this case, I will start with top left corner, this letter A says letter A starting this index, I would have a pointer pointing to this a, let's say the pointer was a P. And that since I already got this a from this, this index, I would increase a pointer to pointing to be the I would search top left, bottom right so that's a requirement right horizontally or vertically neighbouring these four indexes these four places top left bottom right, if there were to be a B, I would push the I would have this stack thing that is keeping track of which node to wait for the next. And in this case, I would have missed a B which is zero in the 0's row and first column and the next one omitted in B, then I moved increased a pointer to so the b is equal to B I increase a pointer to C then I check B is top. Since I would come from this one comes from the left one I don't need to check left. And then I do the same check here. And after I do the same check I should have this. This this. C this letter C Grid, in my stack and then I do the same check increase my coordinator again. Right now I should have one two.
Crafty Lobster: And what if you have multiple choices. Let's say you have B also here and then C here.
Silver Fox: Okay, I think what I'm going to handle us is I'll do it recursively. And I would have I would return true whether true or false false. If my pointer is at the last index of the word and if it's let's say if my point is here, and I got to the last index and these two are match then I would return true. Or, or in the other case, if I have traversing ABC, and I didn't find another matching C because if I were to traverse to the stripe, I didn't find another C from the C. I would return false. I would return a recursive call like helper let's say this recursive call is helper and helper traversing to talk to left bottom right. Like before helper like if any of these helper functions return true I would return true all that means I have found that answer right?
Crafty Lobster: Do you need four helpers or three helpers.
Silver Fox: Let me think for the first, okay I think four helpers, so let's say if this is not where letter A is letter F, then I need to traverse all the way through the grid and to this element, I'll start to expand and this element has more neighbours top left bottom right. So, I need to, so I need four helper function call to get top and bottom.
Crafty Lobster: And how do you ensure that you don't use same letter again?
Silver Fox: I think I would have a grid copy outside of the on the upper scope. So that I have would have access to it for the for the same for the to check that the exact position that I have visited in the same iteration like for example for letter A would have this initialised for letter B I would have this and it will keep tracking which position that visited
Crafty Lobster: Got it. Okay, what is the time complexity of this? For what you have described.
Silver Fox: okay. So, let's say the
Crafty Lobster: Let me just, so m the grid is m cross n and the word length L. So give me a complexity in terms of M N and L
Silver Fox: Okay. So, I think it should be M x L square because what we are basically doing is from every position we traverse, we potentially traverse through the whole board to find the word the worst case complexity is this
Crafty Lobster: And N? So the grid is m cross n so you don't want to use N?
Silver Fox: Oh I'm sorry
Crafty Lobster: Is the complexity not depend on words?
Silver Fox: Okay, let me let me think
Crafty Lobster: middle what you want to search
Silver Fox: okay. I think it should be instead of traversing through the whole word, I think the length of word is should be in time word dot length so you know, we are approximately at most traversing this word length positions, as the word length is, like has six characters that will traverse through a sixth position amongst
Crafty Lobster: but then you will also do branching inside recursion, right? Is it just six or more?
Silver Fox: Not necessarily like six six, but it's I think it's like linear, it's it's a linear relationship with the word length so it's not necessary. So it should be like...
Crafty Lobster: So what it should be?
Silver Fox: Should be something like this. So the grid length, the grid size times more or less
Crafty Lobster: Are you sure about this?
Silver Fox: I mean, do you have any suggestions? Those are just my initial thoughts.
Crafty Lobster: So, for So, you will say you are iterating at the complete grid and each point in the worst case you will traverse word length, right? I'm saying will you travel word length at each point or it can be more than that for example in, for example, like you have this ABC ABC and let's say you have all this C here a b c and then next is c. So, you have C here as well. And then you have C here. So, you have if you look at the C A B and you have a C at three places,
Silver Fox: Okay.
Crafty Lobster: Right so, you have three choices to go right? A B C, and then you have for the fourth C you have three choices, okay. Right. And then each will go on each can go on further till what length right? You can keep getting more choices. So, do you think it is word length? The number of iteration at each node?
Silver Fox: I think in this case, expanding extra notionally word length square because of word...time. I mean, sorry just let me think. So for each for each of the plans, I could have time for complexity. If, let's say I have four choices for B, for each of the choice will be have four choices of C, for 3 I would have another times.
Crafty Lobster: Okay, let's do one thing. Let's do one thing. I think we can skip this part. I think I got an idea and you're thinking in the right direction, you're close but not yet there. I want you to write the code for this and run it on these two test cases. Basically so that we can get an idea of how you can translate the idea into the code
Silver Fox: Okay, sure. So I'll start by this defining function and I will call it find word in grid in.
Crafty Lobster: You there? Hello?
Silver Fox: Sorry can you hear me?
Crafty Lobster: Yeah, I can hear you now, I lost you a little while.
Silver Fox: I just refreshed the page now I'm here okay. I would have a...I would have a memory called visited and this will be initially A right and I will copy the grid to let go. After pushing every element for the push...So I'll just have it for edge here for now later I will transfer it to another helper function to keep the code cleaner.
Crafty Lobster: Okay, okay.
Silver Fox: We have visited to track this... I think right now we should define the depth first search function it has access to visited grid on word. I think I'll pass in the index of the word character that I'm looking for. Initially this should be zero. So index zero. And since we call this DFS on every position on the board, I would assume, I think we should also have a row and column variable to tell me which position on the board that I'm going to visit. So this basically find the character of this specific row and column. Row, column, if this char in grid word to specific index we're looking for. And we call DFS on the top, left, bottom right. So this is top, if row is greater than zero we're just checking if this is a first first row greater than zero. Okay, I think this is the only thing we need to check DFS and we call DFS here was DFS. We'll find this one. This is a top position. Okay actually not this should be this now, we are not grid. I think we will also need to return, return it somehow. But let me just finish traversing every position top left and bottom right and I will handle the return value later.
Crafty Lobster: You will also need to pass index to DFS.
Silver Fox: Oh yeah, sorry. So index plus one and the left is column greater than the recall. Let me just copy and paste this real quick. Minus one that's column minus one. And on the bottom. row is smaller than minus one, so that means we have one extra row to traverse. So if this is the case. We DFS again. Okay last case right, right we check column smaller than the zeros so similar to the bottom case. In this case we also call on this okay. And we would have I think I would have okay I just need one moment to handle where do we end. So if index is equal to word dot length minus one so that means we're at the last index and we return. Cool, so we need to also find some way to return all these four cases I think I would have four variables since we need to check before we need to check if there's a pop before calling us DFS on top position and also we need to account for the visiting state to better to be better performing. So I'm thinking to handle the first case like our return value. I would declare top equals to this and I would also have this left has char. Woops I just glitched for a moment and similarly we have this grid has char and we return if any of these as literally true that means we have found. Okay actually I'm not in the scope. I, in order to get into the scope I need to define all these. We simply need to call for every index for every position of the grid. We actually need to call this... Okay, here we have this variable const. DFS and DFS from position zero and row zero its calling. If in any case found what is the return? And if we traverse through the whole grid, this many times still didn't find the word we return false. Just let me go through this. One more time. See if i'm missing anything. I know that I.
Crafty Lobster: What are you?
Silver Fox: Sorry. Go ahead.
Crafty Lobster: Yeah. What are you doing on line 45 With this current row?
Silver Fox: I'm making a copy of the grid. And like I said, I am making a copy of the grid. I'm tracking the visited, visited status? I'm thinking of, you know. I'm thinking of trying to go through this part of the logic first and then apply this.
Crafty Lobster: Sure, sure. Okay, okay.
Silver Fox: So from here we call DFS row at column, we have this char in grid. Char in grid is equal to the word, index, we're checking. And this is the base case, where at last index of the word we return true and we check all this. Okay, I think now we need to handle this visited stuff. Because, like you said, if, if we don't have this visited. We could go back and forth infinitely. Like that's why if we have EC at CD we can go back and forth okay. I think we could handle here. Since we're checking this grid here, we could mark it as visited. So visited row and column. I think I would have three states. Zero means in this visited grid. Zero means I have never visited this. One means I'm have I started visit, like if I'm starting to visited position I would set it equal to one, I would set it equal to one here. And after visiting all these positions, I will set it equal to two. So one means I'm currently visiting this position. And if I found I found that one again, that means I'm currently in a loop and two means I had finished visited, I am done with this position like like I don't need to consider this position anymore because I have exhausted every, I have visited all its neighbours from the upper, from here. So I have two states, three states, zero, one, two.
Crafty Lobster: One question like, you can start from the bottom and come back at top right.
Silver Fox: Start from the bottom
Crafty Lobster: So if you start at bottom and come back at top right. So if you start from top and then you will start with sitting you will not find anything and you will mark it as two. But then you start at bottom again. And then you start going up you will see that it has two right? Am I right?
Silver Fox: Yeah.
Crafty Lobster: Do you understand what I'm trying to say?
Silver Fox: Okay, so what I'm thinking is that to prevent infinite loop have a fresh visited grid defined here. So like, so this will be new every time. But one I call this DFS. Sorry, it's should be. When I call this DFS. I will have this visited freshly new, so that I haven't, that means that I haven't visited any of them. Right? Every time I have a fresh, freshly new visited our grid so that we could prevent that we have to traverse over here and we have already visited this one, we'll check this one. So that should be a should prevent a case. Okay, so in order to make this work I'm making a copy of each copy of this visited so I think it's a great time to separate this into a new helper function since we are creating a copy every time so this logic and copy make. This will return a visited copies so as a new visited copy every time we don't refer we're not referring to the address visited but a new array and they would have visiting status. Those who are calling this function make this status grid we pass it into just, let me try to think for a moment. Actually we don't need to pass in here because where we call the function final word DFS we are in the same scope here and we have access to this visited status grid. Actually, actually I need to define it outside because that only accounts for the first DFS call if I call it here I don't have access to this visited status here. So I think it will be better if I define the variable here that visited status here equals to null and I set it equal to right before I call find word and in this case I need to handle all checking. So check before setting it if visited status grid not equals to zero that means we have we either are currently visiting this or we are done visiting this node and we return false directly we don't need to check and we are setting it to currently visiting here and we do all the visiting after that we, after that we said a goes to two, okay. I think this should handle the event loop case and
Crafty Lobster: So you have two, still have two, three states 0, 1 and 2
Silver Fox: Yeah, you have to have three states
Crafty Lobster: Okay. So you are checking if it is not zero you are making it as one and then checking if it is matching the word. Are you still with me?
Silver Fox: Sorry, I'm back.
Crafty Lobster: Okay.
Silver Fox: So I still have to
Crafty Lobster: Sorry, sorry. Come on. Again.
Silver Fox: Like you talked about I still have three states, right.
Crafty Lobster: Yeah. Anyways that's not a concern. My one other concern is you are on line 61 you are visiting first and then checking matching the word. What if it is not matched, you will still mark it as visited?
Silver Fox: Okay does not match it...
Crafty Lobster: You get what I'm trying to say? Let's say...
Silver Fox: yeah, I get what you're saying, I'm just trying to think, do we still need to check it if it doesn't match. But I think you're right. I think we should set it here. Just because it doesn't equals to just because it doesn't equal to this word index. It doesn't mean that it comes later that there's a case, this position as it goes to one of the index. So yeah, you're Yeah. Thanks for that. And in this case, we only mark as visited if the index is equal to the target grid.
Crafty Lobster: Okay, you done? Anything else do you think is pending?
Silver Fox: Um I think the code could be cleaner. I mean, like, especially as far as logic.
Crafty Lobster: Let's try to run this. Let's see if it's working.
Silver Fox: Okay, sure. So try to run this find word and word is equal to this.
Crafty Lobster: Okay, let's changed the F to A.
Silver Fox: a, b, c, c, a, b, c, c.
Crafty Lobster: And the input grid also needs to be changed. A, B, C, C, E.
Silver Fox: I think ABC ABC, yeah.
Crafty Lobster: Let's run it now.
Silver Fox: Okay, so it was forced into into the no return. Yep.
Crafty Lobster: So it should return two right?
Silver Fox: Two return. Yeah, let me think which char do you want to go to?
Crafty Lobster: Yeah
Silver Fox: Just console logging this out the word index I'm checking
Crafty Lobster: Maybe also row and column as well.
Silver Fox: Okay, why is it returning false without printing?
Crafty Lobster: It's not even going inside maybe.
Silver Fox: Oh okay. I see. Have this I should have this curled up push. Okay, the way that this status should have zero. Okay, let me just cut off. I think there's something wrong with this visiting status grid okay, it's just circular.
Crafty Lobster: Okay, maybe you want to print line 58. Okay, and what is happening? Is that condition fine.
Silver Fox: Yeah, I'm just checking like the visited grid. It's a circular array, like it's an array of circular array. For some reason. The visited status should be a grid of filled with zeros right?
Crafty Lobster: Yeah.
Silver Fox: Okay, okay, I see I see made a typo here. Right now we should have. Okay, we're returning okay.
Crafty Lobster: Awesome. Can you run the other case?
Silver Fox: On the other case? Yeah. Yeah, the other case, so let me just copy and paste the original grid here PCCP?
Crafty Lobster: Not this one, I think the same ABCB line 26 to 33.
Silver Fox: Okay. Okay we got false.
Crafty Lobster: All right. Sounds good. That's it on this coding test, I think you did good. Let's get into feedback now. Okay. Okay, sure. All right. So, let's close this coding first, and then I'll come back to later share principal again. So, in this, I think you did good, you have working code at the end of interview, which is really good, and it matters a lot to have a functional code ready. So, you are able to take the hints fix your things, and which is really positive. And I see your code I am happy with the structure of your code, you have functions and the structure is fine, you are using the right construct functions names are good. And the end and so that's about the good part. Now, a few concerns I have one is complexity. The complexity which you described M N into word length of four is not actually correct. So, think of at first point, you will have four choices, but after that, you will always have a three choice okay. And so, we you can look at it as ternary tree. So, basically like binary has to node at every point you will have three choices. And in worst case, you will do three raise to the power L iterations from each node. So it will be three m n into three raised to the power L, where L is the word length. So, complexity analyzing, you were reasoning, right, when I was giving you hints you were thinking, right, but you could not reach the right complexity in there. So that that was a little negative. I know it can be confusing, but it's a minor thing which can make us interview from strong to like average, I'll just take it like that. And then then in the coding part, the implementation is good, it was but one thing as an improvement I have which I can suggest is you could implement this without using visited at all. So, how why why do I say this is you can have some iterating implementation where you have in the stack from where you have the nodes you have visited so far. And you can keep that in your memory and basically visit visit only those which are you have not visited so far. So you can you can look for this implementation. So this is a very popular question. So it's it's optimization over space complexity. Here you are creating a lot of visited matrix. So other than that, I don't have anything I think overall, you did good in coding. Now coming to the leadership principle, I asked you basically an example where you had tight deadlines and didn't have the time to consider all options. Okay, so there, I think you were good. But again, there are few improvements which I can say yes to. So it was not coming out clearly. Like what was the initial timeline was I had to probe you on that end, what was your impact? I had to verify units. So when when you basically answered these type of question, look at stressing on what I specifically did and what results came out of it. So you might have heard of STAR technique, basically you elaborate the situation, and then what actions you took. You can mention the teams, but you have to stress on what you do, as well, very clearly. And then in the end, what was the outcome? So, that's how basically you approach this question. So, try to stress more on that. And the learning parts, where you say yesterday, talking to clients, where that was good, positive, and that was a sensible thing to do in the situation that you described. So that was good. Overall. If I if I was an Amazon interviewer interviewing you for SDM and roll, I think you meet the bar, I will sort of basically pass you for the fall for this round for for the coding round. And so that's your thing. So few improvements, the feedback what I've just said, I will write it down and then send it to you. So on that like complexity, and maybe presenting your case little bit strongly so that you can keep in mind and work on. And yeah, that's pretty much from my site. Any question you have?
Silver Fox: Okay, thanks so much. For the feedback, it's really, really helped me. I think, one question, because there are a lot of leadership principles like 14 In total, what do you think are the most important leadership principles for developers in general?
Crafty Lobster: So for developers, I would say, bias for action is good. And then ownership is important. And customer success is important. So these are the three I think, which are most frequently asked for like SD one. Things like are, are, write a lot, have backbone, those you can ignore those, those we generally ask for senior folks. Other than that, I don't remember all of them on the top of my head, but I can quickly have a look, just give me a moment. And then, okay, just let me fetch it. So you have a write a lot, which you can ignore bias for action is important for you. Customer obsession is important for you deliver result is important. Deep Dive is important that's four. Earn trust is not that important. It can be asked, but I think generally people don't ask for SD 1 and frugality is not important. Have one is not important. Hiring development is not important for SD 1. Insist on highest standard is not important. Invent and simplify is not important. Learn and be curious can be important for SD 1. Ownership is important. Think big is not important. Yeah. So I think I told you five, six, maybe ownership. Learn and be curious. Then you have delivered us and not not dive deep. dive deep. Customer observation, bias for action.
Silver Fox: Okay, thanks a lot.
Crafty Lobster: These you can focus on more, but don't, don't skip others, at least read about them little bit, but focus on these more basically have an example to demonstrate these leadership principles.
Silver Fox: Okay, I see. All right. That's, I think that's all my questions. Thanks a lot.
Crafty Lobster: All right. Nice talking to you and wish you all the best. Do good. Yep. That's all thank you for your time. And thank you for interviewing with interviewing.io Thank you.
Silver Fox: Okay, thank you. Good the rest of your day.
Crafty Lobster: Bye bye