BrandGhost

Actionable Software Engineering Interview Tips - Engineering Manager AMA

This AMA will be based on the topics discussed in my newsletter: https://weekly.devleader.ca/p/actionable-interview-tips-dev-leader TL; DR: - Coding questions – Yeah… LeetCode. - System design questions: Very vague on purpose! - Project & collab questions: Focus on how you communicate and what you learned
View Transcript
e all right it looks like we're live I put a little Link in the chat um this conversation is going to be about the last newsletter that I put out that newsletter happened to be kind of building on this three-part series series that I have going on it's focused on trying to help people that are you know aspiring to be software Engineers kind of land their job or you are a software engineer and you are trying to transition or something like that right I want to be able to help people focus on what I'm calling these three different phases of how you can think about going for your job and the reason that I like breaking these up I kind of touched about this already in the previous live stream is that there's an overlap in the skills of course right it's not like you in each phase like none of this stuff overlaps but I think the focus that you want to have in each different phas is important and because of that I like looking at them separately right so for example in every phase you probably should know how to code for example right you need to be able to do that but um some of the things that you want to emphasize and showcase and that kind of stuff your goals are different in each phase and as a result those things change as well so the first live stream that we did on this was about how you can try to stand out right that meant that if you're thinking about everyone else who's applying for jobs like you can't control everything that everyone else is doing it's impossible right so I'm I'm not trying to dismiss how challenging it is for people to get jobs right now that's not the point but at the end of the day all that we can do is control what we can control you can't control other people people so I was trying to offer some tips about you know how you can structure your resume so that it does stand out how you can uh look at different types of jobs it's maybe not like maybe it's not big Tech that is a good move for you right now if everyone's applying to these sets of jobs there might be other jobs that you could be going to look at that you're dismissing because it's it's not Microsoft or it's not Facebook or something but there's lots of great places so I just Tred to give you some different tips about things that you can action and in this video or I guess this live stream cuz it's live um we want to make sure that you're focused on what's going on during the interview phase total disclaimer I'm not going to be sitting through this live stream and like doing lead code problems with you I'm not going to put a system design question together it's not what I want to do in this conversation I want to talk about the what I would think with I know I mentioned three phases is the interview part in my opinion also has three major components to it I can speak to my own experience going like through big Tech interviews as an engineering manager and it's going to be similar not the same but similar to what you might expect if you were a software engineer and as a result we can try and tailor and adjust what my engineering management experience was like through those interviews to you know yourself as a software engineer um I do have about eight years of experience prior to Microsoft hiring for a startup um so I can kind of frame up what that looked like as well just because I think it's important doing content like this is challenging because I mean for a lot of different reasons one it's live so I can't mess up uh two is that the the different companies that exist out there like I can't possibly speak like I can't give you a general statement that applies to everything there's always going to be exceptions and that's not just with the companies but like you as an individual going through this right you might be excellent at something and you just don't have to spend the time focusing on it so it's challenging I'm going to be try to be General but still be actionable as we go through this so the three different components to most software engineering interviews are going to be some type of coding problem there's going to be something like a system design or architectural question and then there's going to be more Behavioral questions and sometimes the behavioral stuff is broken up into like behavioral like how you navigate conflict and stuff like that uh versus like Project based um sometimes a lot of the time this gets grouped together or um you might have depending if you're doing a big Tech interview and you have multiple interviews they might have two people depending on your level right two people will focus on both of these topics like behavioral and projects stuff and they will both ask you questions about them so um a lot of this can look different big Tech is very notorious for doing like I think I might have had because I interviewed uh my Facebook one got filled uh the day that I was supposed to interview they sent me an email that was like hey hope you're still on and then another email like around the same time that was like Hey like this position's closed and I was like w which one is it um so I think they closed the position before I could even interview but Google Amazon and Microsoft I interviewed with the formats are all very similar the stuff that you're reading online is probably accurate when I went researching this about four years ago um it was very much you know what people were saying online you're going to have multiple rounds of interviews and where it will differ between me as someone uh like at a principal engineering manager versus if you're more Junior like you kind of tailor this back but the different phases get more focused so programming uh if you're doing like I think I might have had five rounds of interviews four or five rounds depending on the company it was it was a lot but you would have M like likely multiple rounds of programming questions as a software engineer for me as an engineering manager I still had programming questions I think it might have been Amazon that I didn't or it was very very basic um to the point where I don't even know if I was writing code versus just kind of walking through some stuff um but certainly Microsoft and Google I had coding questions um and on the topic of coding questions like I was saying if you're sofware engineer especially more Junior like you will be getting more coding questions the reason that this is the case is especially if you don't have a lot of or any work experience prior it's very difficult to gauge uh Behavioral like how you're going to be working in teams because you haven't done it yet right they can still ask you questions about um you know how do you work on projects with other people like they can try to get that out of you but they re like a lot of interviewers recognize that if you don't have a lot of that experience they shouldn't spend that much time trying to get that data out of you because they can probably get a little bit of what they need to move ahead without spending too much time and the same thing with system design right like if you're a junior level engineer it's unlikely that you're going to be tasked building very big complex systems on your own like that's not going to be a responsibility so it's not that you won't get system design questions you can and you probably will but the emphasis on that is not as strong so you should still absolutely practice them we'll talk about that more but your emphasis you'll want to have more on the coding if you're a you know an engineer versus like a an engineer ing manager obviously and if you're more Junior you'll get a lot more coding representing your your interview okay so I don't say this a lot but um this is the time that you'll hear me say it uh lead code lead code is a really good way to practice for this kind of stuff um in a lot of public forums like I don't it's not that I hate Le code but I I dislike how much emphasis people put on it over just coding things so like the challenge with lead code is that it's not very well representative of of like what you're doing on the job some people like for some people it's great practice you know it's a good way to like um challenge them like and so I don't like saying like don't do it like that's not what I'm saying uh it's just a lot of the time it doesn't translate well into building real systems working with other people feels very hyperfocused but that's exactly why it ends up being good on these interviews so I don't really like that we get these styles of questions on um on interviews I don't think that they're I just don't think that they're a good representation of quizzing people for what you're going to be doing on the job but that's not really my choice uh if I were running a software company I would change how that works but I'm not so I think you probably want to spend time on lead code um what I did for myself going through my engine intering management interviews was I blocked off time and I would go through lead code problems I would you know I started on the easy ones because I'm I don't like I code every day but I don't code like this I don't code on these like these questions that seem like they have a trick to them like it's it's very contrived and I started on easy right so start on easy try to work your way up but what I liked doing was getting stuck right I'd move on to another question what I tried not to do CU I'd always want to come back and get the answer this is a similar thing I did in University when I was trying to memorize things what I didn't want to do is memorize like the order that I'm doing stuff and so if I did a question one and I write out the answer and I get it wrong I read the answer and I go okay now I know it if I did things out of order I didn't want to like have the order that I was doing things in so I do question two and then I come back to question one if I do it out of order like am I going to remember it a lot of the time my memorization would be like it would break down if I did things out of order so what I tried to do was make sure that when I would look at the answer that I would not sort of go back to that question right away because I'm not in reinforcing the learning it's like I'm just enforcing memorizing an answer that's not helpful um when I said this for studying right one of the things with studying was like sure there's some memorization in some cases but I needed to understand what I was doing so I would go through questions if I got stuff wrong look at the answer right but I'm I'm not going to go solve it again i' have a quick peek at and go okay like that was the trick okay you know keep going forward and what would happen when you do enough of these is sometimes you see these tricks and patterns come up again right you start going oh like I remember like there's something like this it's not the exact same but it's very similar um now when I go to do this I think I can reapply some of the things that I saw I would do this for a bit so I'd block off like I don't know like 30 minutes to an hour depending on my schedule do that take a break then when I'd come back the questions I got wrong I would do them in like a different order so that it was not like oh yeah at the beginning of the day I remember the answer was 42 like there we go like I can cheat no I want to make sure that I I knew like how to go solve it um just checking the chat here for this question that came in hi for senior c.net Engineers would coding questions include DSA AKA lead Cod sell problems yeah absolutely um so that's if you just joined that's kind of what I was just saying is like unfortunately if you watch or read out my other content I don't talk about lead code very highly and it's because um I don't think it translates well into the workplace that's my opinion uh that's what I've observed my experience but for some people it might but for interviewing absolutely um I don't like it but I think it's the reality so yeah definitely C whatever language you're using data structures and algorithm type questions from lead code I think are really good so you want to go practice these you want to block out time you know get some Focus time it can be really frustrating right you might go that whole time and you don't get any of them right but what I want to talk about next is like this is a bit of my opinion when it comes to interviewing like I don't care it sounds funny like I don't and I can't give you this advice generally speaking like everyone will think this way but I don't care if you get the answer right because I'm not looking for you to just give me a final answer to me that's just as useless as someone memor like if you knew the question and could answer it right away like you know just because you memorized it like you don't understand it but you memorize the answer like what value is that and I want to give you an example that literally for my career my first job outside of University the company that I worked at for eight years during my interview they were really excited and they like they wanted to wrap up the interview like I think they were kind of jazzed like we're going to offer this guy and one of the engineers that was on the interview was like like I think he was also you know happy and he's like should we like maybe we should ask him a technical question because they were just using my own sort of programming experience leading up to it and they were kind of like yeah I guess like we should ask him something like it's probably a good move to do that and they I can't remember the exact question but it's kind of like a really simple Elite code style question like I don't know like reversing a link list or you know something like that and the question that they wrote on the Whiteboard was the exact same is the last time I had an internship it was the last interview question that I was ever given so when they told me what to do I was like I want to give you a disclaimer and like this might sound stupid to you because you might be like why would you do that Nick like but I said like I I know the answer to this question like I can go write it on the board right now it's this and I said I want you to know that because uh and I'm this is my first job outside of University after you know six internships but still I I wanted to let them know that I don't want to cheat like it's not the answer you want the answer you want to hear is not me just writing the final answer you want to see how I think about it so I needed to give them the the disclaimer like I know the answer to this I still want to walk you through to how I get there but in case you're hearing me go through it too smoothly like just know it's because I already know this and the reason I bring this up is not to say like hey look like I'm such a good e two shoes but more like truly the value like I'm not offering them any value if I just write an answer on the Whiteboard I've always thought this way right and I still do as an engineering manager if I'm hiring I don't care if you give me the right final answer I mean that's nice that's nice right but the part that's most important to me and I truly hope that other interviewers take this approach because it seems silly to me otherwise um it's about the steps to get there right and not only just memorizing the steps and writing them out because you've seen the question before but understanding why I want someone to be able to debug the code right so you're doing one of these lead code problem style problems in an interview they pitch it to you and you're okay like okay so you you should ask questions too like I forgot to mention this for these types of questions anything in your interview ask for clarity if you're just making assump and not stating them or not asking for clity about them it's an opportunity that you could have done that and when we get into the next style of questions they do this on purpose so please please do ask for Clarity on things um go into your question right your try to answer it walk through it be talking about what you're thinking right that's a huge part about it if you were to just be quiet the whole time and just write you know scribble stuff down or write the answer and go done like okay like they're going to want you to go through it now but if you're especially if you're getting stuck it's so helpful to be talking through like what you're thinking about the algorithm you're designing like you want to be doing that because it's showing like what your brain's doing it's challenging it's really challenging to be if you're not practicing it this way and I recommend you do practice talking out loud on your own it's a little awkward but get a little rubber duck set it up on your desk um take your phone put your phone on your desk somewhere right put a picture of someone on your phone talk to your phone um do anything talking out loud is ridiculously beneficial um it really does work to improve how you're thinking so walk through stuff as you're problem solving and you're doing your lead Code Practice try to get to your answer then think about testing it debug it right this is what people are going to be asking you in interviews great you wrote down the answer prove to us it works right like what what input would you put into this what about this Edge case like practice doing this as you're going through these lead code questions it's not just a matter of like did you like did you get the answer and it's because you copied it off of like some answer page like that doesn't really go anywhere so all of these other steps about talking out loud debugging problem solving like in my opinion this is the valuable stuff in lead code it's not lead code itself it's just like practicing how you debug how you problem solve um how you would go test things and and explaining why your code works like these are the valuable parts so absolutely practice that lead code style problems are really good doing a quick time checking about um a third of the way through because I try to do these for about an hour so I'm going to move on from like the lead code style programming questions but these will come up um I should make a quick note that at startup style companies I found that yeah you're going to get coding questions but I feel like it feels less um less leite Cody less contrived examples sometimes it might be I've seen like doing par programming and stuff like you're going to be coding so expect to do that and the more that you're practicing talking about these things out loud will help tremendously okay that's the coding part if you have any further questions drop them in the chat I if there's time at the end I'll come back if not I'll try to post about uh answers to those questions because I if you have the questions I want to answer them for you okay next next style of question is going to be still technical it's going to be like a system designer architecture question the thing that you really want to pay attention to in these ones is that almost always they're left very vague and I didn't like I remember being a lot younger and hearing like oh when you interview at Google like they're going to ask you like why your manhole covers round and like I always thought that big Tech would ask you these really silly like questions like they don't seem like they have anything to do with programming they just want to see how you think that people might get those questions I don't know I never did in any of my experiences but I did get system design questions and I remember when people I was reading about these right here's how they're going to ask them and I was like oh they've evolved like they just ask you these really you know dumb trick questions and they're not um they're not dumb trick questions they ask you very vague questions about designing systems because they're trying to test some other thought processes so for example if you were to think about any system that's distributed out there right now odds are it's pretty complicated odds are right if you have a lot of computers working together across a large geography it's probably pretty complex you added anything with payments like there it's going to balloon right like it's going to be a complicated thing so when they ask you these questions and they're very vague it's not realistic that you can answer the question and I like pause and think about what I'm saying here they ask you a question and I'm telling you you can't answer it if you just started to write the answer down it's going to be wrong and the reason I say that is because you genuinely do not have enough data to answer that question and it's on purpose so if you just start writing the answer like I want you to kind of put yourself in the interviewer shoes so maybe we'll do a quick I'll just try to make up an example off the top of my head right like I want you to design a system that is used for um movie theater ticketing that's it right so you get your pencil out your pen whatever you get your paper and you're like okay well we need to have some type of payment processor um it's going to be movie theaters we need to have a database of movies um and then we're going to have this user interface and like we're going to have a mobile app and we're going to have these things go to this backend server you start drawing all this stuff out where my head is at is like as an interviewer I need to translate this into what it would be like if you were working for us this is what they're trying to test and if you are given extremely vague requirements and you don't validate any assumptions or ask for clarity you will go off and build absolutely the wrong thing in the real world it's just it's just how it is right if if you automatically just jump to I'm going to assume everything it's just not going to be a good time so what you need to do and this is why they structure them this way you know movie movie ticketing system for you know movie theaters you want to be able to have users buy their tickets online Okay um is this like what what kind of movie theater are we talk is this just like a local movie theater is it one place that's going to change how you design your system drastically right it's it's Pro it's not even a distributed system it's just a a web server like database you could have a CSV file right um how does a payment work right like do they even need to have support for that like you know all these fancy different you know stripe and whatever else right like you need to start asking these questions so okay what type of load are we talking about like do we need to manage anything for Peak load are there situations where a new movie comes out and everyone's trying to flood the system and we want to be able to make sure that there's you know some type of burst capacity that we can deal with um how do how do they get the the movies into the database that people can get the tickets like what does that update Cadence look like what kind of redundancy do we care about right again like is it just one movie theater if it's not then okay is it just geographically in one area um if it's across the world like what you know do we have different movies and different geographies like there are so many questions that you could be asking there's basically an infinite number of questions and you don't need an infinite number of questions answered but the interviewer can steer you down a path right they might and if I were interviewing something that I like to do and it's not to trick you it's it's to keep the the design pretty simple but I like Ching the requirements and I I'll explain this because it sounds like that's kind of trying to trick people personally I like to be able to say so someone's talking about it being you know these different constraints and I'll say let's assume that for now it's not this way like how how would you go design it like how does that change your design oh I'm going to go to a SQL database even though before I was saying like a document store like no it's got to be SQL okay well tell me why like why would you choose those characteristics like explain that to me cool okay a great explanation you explain how that might tie into this other part okay no I don't want to go down that path though I think for this case I think it's going to make sense um if we assume this other constraint so how does that change it okay well we definitely have to use the document store let's go back and do that okay awesome cool thank you for explaining let's let's continue down this path so you have a document store you have this you have that let's talk about like keep going and then you keep asking these questions about clarifying the important things and you want to be writing them down so they you know what do users care about they care about latency they care about and maybe they don't right I'm just giving you an example they might care about latency they might care about um do they really care about like the the throughput like they're not streaming the movies so like that's not a huge deal but latency is probably pretty important they care about their payments actually being like consistent real durable not just like I press the submit button and I keep clicking it and I don't know how many times it charged me you want to be asking these questions and writing down your assumptions so that you can build this system out based on the extra data that you're asking about and again to reflect on this it's not to trick you the goal of that to say oh look we didn't we didn't give them all the information like they're totally screwed here like that's not that's not what's happening it's done so that they can see how you think about problems how you think about getting um the requirements gathered because a lot of the time in software engineering when you're more Junior there's and I don't like using the phrase like spoonfed that feels like a you know like you're not intelligent or something you're incapable but a lot of the time the requirements are known ahead of time they're given to you and it's because the more Junior you are that people want to get you up and running so that you're you can build some autonomy you can build like that confidence and be you know a contributing member of the team and as you progress Things become less and less um structured like that's the reality of it it starts to become more like hey we have this type of Challenge and you're the software engineer like you are an expert Problem Solver you're an expert in analysis and using code is one of your your best tools go on and go you know approach solving this problem but that's sort of as you become more senior that you have a lot less structure right so the point is that when they ask these questions they want to see when you're not given a lot of structure right we didn't give you all of the details like how do you go validate what those requirements are and I kind of said it in the beginning right like if you just go build things it's not a good sign because if you were doing this when you're hired right you're hired onto the team someone gives you vague requirements and you go awesome I'll see you in three weeks when I'm done building this you didn't validate any of the requirements because you just had it in your head that it's going to be built this way it's not going to be it's not going to be a good time so this is a great way where interviewers can gauge how you're thinking through these problems right it's it's not to trick you this took I I mean what I interviewed for Microsoft around four years ago and I went like into my interview practice thinking like oh man like I I hate being tricked like it feels so crappy um I felt like in University a lot of my exam questions they would try to trick you right they'd say like oh you're going to get four big questions on your exam and they're going to be structured about these topics and you'd be like okay I know this and then you go to write the exam and you're like that's not like they added something else in here and everything that you thought you knew is now like out the window and I it always felt like I was trying to be tricked and I hated that so I went into all of this prep thinking the same thing like oh system design questions they're not going to give me all the data like they're just trying to trick me but it's not it's not the case right so a lot of the time when you're thinking about this stuff put yourself in your interviewer shoes and think about like what are they trying to get out of me right they're not just there to waste your time and make you feel bad no like they're trying to get some type of insight so to practice these there are I'm not like I said I'm not going to I already went through a bit of an example and I said I wouldn't but I think a good way to practice these there's so many resources online about just building distributed systems you could if you can't find good lists of these to go practice with you could think about anything online that you're using you're watching this video right now how are you watching this video unless you've downloaded it and you're just watching it on your phone or you've downloaded it and you're watching it on your computer you're very likely I'm streaming it to two places right now to Twitch and to YouTube and if you're watching this after the fact it's probably on YouTube because I don't think twitch is keeping these so you're on a platform right you're on a big huge distributed platform I want you to go build a video streaming platform there you go like there's an example of one and you might go on Twitter and you or X whatever we call it now um LinkedIn Facebook whatever those are distributed platforms okay you're taking a break from studying your lead code problems you want to go watch some Netflix there's a distributed platform right you have so many different distributed platforms you can think about and if you want to practice with this kind of stuff you can be like it sounds kind of funny but you can also be the interviewer right I talked about what happens if you change these constraints so you're a video streaming platform okay we'll do one super quick here with video streaming throughput is huge right you're streaming so much data and I would say that people probably do care about latency but how much do they care so for example if I told you to watch a movie you had to wait one minute to watch any movie you wanted but I could guarantee you would never have any disruptions in it would be streamed at the highest quality possible you might say yeah that's cool like I'll do that but if I changed the constraints and I said look users really care about latency like we need to make sure that there's never any latency in what they're experiencing and I mean why if it's a video I don't know but maybe it's it's stuff that's live they really care right start changing these constraints and see about how your system would change and if you're unsure there's lots of again resources online where you can look at like if I structure a system with a message cue versus this versus that um you can start to learn these things I'm just checking the chat again for this question with system design questions rounds in startups and non-big tech companies also involveed take-home assignments um in so in big Tech I have not seen take-home assignments in big Tech and I think it's I don't know if I can like I don't have a statistic on it I think it's pretty rare that you get takehome stuff um I think there's a a body of people that are highly against take-home things like they're sort of bashing people for doing it saying like your people are already under enough stress how could you possibly go give them an assignment to take it home like that's that's terrible um I can kind of see that um at the same time like what's cool about a take-home thing is like it feels very real um again thinking about interviewers it's ch like interviewing is challenging in general like obviously for someone being the interviewee it's very challenging I'm not don't want to dismiss that or minimize it it's incredibly challenging unless you do it all the time and you're just super experienced it but I don't think a lot of us are but it's also challenging on the side of the business to be able to gauge the qualities that you care about really well and there might be people that disagree with that and saying oh it's very simple you just do things this way but like the reason I say it's not very simple is because if it was everyone would be doing it in a way that gave them answers that were exactly what they want I already think by doing leite code style questions like we're not getting the answers we want so to your question specifically about um so for system design questions also involve take-home um in startups um I I think if if anywhere you're going to see this it's probably at smaller companies and again I don't have stats on it but my rationale for that would be that okay think about again interviewer shoes for a second at a big company getting a ton of volume of resumés coming in I've said this before and it feels really crappy to say it so I kind of want to just say like on video I'm sorry if this comes across in a really lousy way so I apologize but if you're a a big company getting a ton of resumes coming in it's it's basically impossible to have a human go reading all of them it's just it's the volume doesn't make sense so what they start to do is introduce filtering right and I'm not saying this is the right thing to do I don't have a good solution for this but when you have so much volume so much you can't have a human do it all so what do you do like you start to introduce things that will just take out some volume so you start like artificially increasing the bar it could be like looking for certain keywords on rums if they're not there just drop them right like I'm not saying places do this or everyone does it or some places do I have no idea but that would help get rid of the volume the same thing like oh I know there's a big debate about you know formal education versus being self-taught I've worked with people on both sides of that talk with different people in different walks of life on both sides of that there's amazing developers on either side it's there's no debate there now I have I don't have stats on this again so I'm not trying to pick a side but one would suspect if education systems were doing what we expect them to do that by paying for a formal education and to give you an example in Canada uh engineering like I went for computer engineering that's an accredited program to become a professional engineer you can't call your and I can't in canid I can't call myself a software engineer because I'm not a professional one would think that by paying for an accredited program you'd be getting this extra step up and in terms of education and skill so for companies like to say okay well if you don't have at least your Bachelor like sorry we'll just filter you out right big companies have luxuries like this because they're so much volume of resumés and again I'm not saying this is the best way to do it it's just it's more realistic smaller companies I don't think have as much of a luxury that way and and at a small company proportionally if you have a one bad hire at a small company one bad hire is significantly more impact than one bad hired at Big Tech right it's it's literally just like a mathematical thing if you had a company of nine people and you hire someone and it's they're the 10th person and they're bad one out of 10 people so 10% of the company is bad now in a company of a thousand people right so 999 you hire your thousandth person one out of a thousand people is bad it sucks but you don't feel it as much so I think smaller companies it's likely that you'll see more creative ways for interviewing whether it's uh coding questions I think usually they'll have basic coding questions no matter what but system design or like a take-home project I could see that being more realistic because there trying to come up with a creative way to gauge like is this person going to be good and if they give you something to take home again my opinion I can't speak for the companies doing this my guess is that they're saying look we want to give this person the benefit of the doubt they're going to have all the tools that they'd have access to if they were working let them surf the Internet let them you know take their time to do it and and create a solution so I think yeah I think it's possible and more likely at smaller compan for sure I try to give you my reason why um again some people think it's very unfair that people have to go spend all this extra time like yeah I get it I get it but I also understand why a small company would want to do that it's just a better way for them to gauge in their from their perspective right um I something I've seen a lot of great success with not at Microsoft but the company I was working at before we started shifting to doing pair programming during interviews it's a lot of work to set that up ahead of time because you want to have something that's like not super complex or find the right balance people's skill sets and the language they know can can vary and we had such good success with that because you'd sit someone down put them in the driver's seat and kind of say like here's the app we got here's what we're experiencing here's why we think it's wrong like like let's walk through it and debug it together and you get this really realistic experience of you know you give someone the benefit of the doubt because they're very new to the code base and everything but you get a really cool experience being able to to work with them so just different ways to gauge but that kind of thing I've never seen at Big Tech not saying it doesn't happen I just wouldn't count on it and again time check um I'm going to spend the last uh I'll spend the last 20 minutes unless there's questions that come up um talking about sort of this last phase last phase of the interview phase uh sorry for the confusion so this is still interviewing but the third category of question that I see come up a lot and especially as a manager but this will come up for you as well if you're not a manager is going to be about Project Style questions or Andor behavioral style questions now these are not my popular videos on YouTube everyone loves seeing my C tutorials when I talk about software engineering in general feel like people see it come up and they're like I don't care like I just want to know the coolest new thing I can do with C or something um honestly I think this portion of what you get interviewed for is the most beneficial set of skills um doesn't get a lot of focus in interviews it gets some but um when I talk in the next live stream about when you're on the job what should you focus on it's this stuff and it's all of your like interpersonal skills and people hate hearing that for some reason U like I said it's not a cool CP thing it's not a c tutorial so they're like I don't care but you will care um when you're working in a company working on teams what you really don't want to have happen is your technical skills are superb and you're unable to work with others hello in the chat uh just join the stream awesome great to see you here we're just about this last phase of uh of interview questions so behavioral uh behavioral questions and Project based questions so um your interpersonal skills are incredibly valuable in software engineering and it's because you're working in teams you're going to be working with stakeholders with different backgrounds uh different levels of technical abilities um you can't sit there and say well they don't get it it's their problem they're not technical I'm the engineer I'm smart like it it doesn't work that way you can't just lock yourself in a room and code stuff and hope that you're going to do well on your team it's going to be disastrous so your your interpersonal skills are of enormous value so that's important your problem solving is important communication like the list goes on and it has nothing to do with code code is important your technical skills are important but these other skills should not be neglected and I want to leverage this time to remind you that because you will be interviewed on it and you might think I don't really care about this stuff I'm just going to get by in the interview to be able to answer this kind of stuff but the point with my reminder is that I really want you to take this to heart because you will get hired you're going to be working on a software engineering team the fact that you're I don't know what time it is for you it's quarter after 10:00 at night for me you're watching this live stream about how to do this you are motivated enough that you will you'll get there I I assure you um so when you're on a team you don't want to find that like your technical skills are very Advanced and you have a lot of challenges working with people so for these types of interview questions they can be all over the place and I think one of the best ways to practice is to look at um you can look online it doesn't have to be software engineering at all okay um it could be it could be marketing if you're working like think about people that are putting marketing projects together anything that's team based I think is an excellent example that you can try looking for interview questions I'm going to check the chat in just a sec um for these types of questions going back to what I said earlier I would write a list of them down I would set my phone up somewhere put a picture of your best friend or your dog whatever on your phone set it up and go look at your sheet of paper and say okay first question what's some like you might think they're silly but there's reasons for them right like tell me about a time that you had to solve an interpersonal conflict with someone on your team okay like do have you had that experience you might go well Nick I haven't even worked before like I'm trying to get my first job cool okay what about a project that you worked on at school did you get along with everyone that you work with all the time well there was the one person on the team that never pulled their weight okay cool how like how did you navigate that right so what I want you to do is go build up a list I I've ended up going to like probably 10 to 20 different sites just collecting lists of questions I wrote them down on a big sheet of paper and I know this is for an engineering manager but you're still going to have questions that come up like this maybe not as many and I wrote them all down and I started from the top and I started answering these things talking to my phone whatever was in front of me I have two dogs so was probably talking to them a lot and I would answer and go down the list drawing upon the experiences that I had and if you haven't worked before that's okay try to think about school or projects or things you've collaborated online and if you don't have any of those experiences I want you to be able to be comfortable saying hey I don't have that experience but here's how I think I would go navigate this and the first time you find that you're stumped if you're like oh crap like I don't have a good answer for this don't worry make a note of it on your sheet and go to the bottom and now you're going to work from the bottom up to the top you're going to do the exact same thing nothing's different you're just going in a different order with different questions and when you get stuck again go from the top to the bottom and for me this worked extremely well right it helped me break out of that pattern of like oh I I just remembered it like you know it's the easy way out I really needed to think about these scenarios and how I was going to talk about them I'm going to check the chat um so these days many companies non big Tech have introduced DSA rounds online tests or otherwise yet for all software engineering positions uh irrespective of volume of applications awesome yeah like it's it's a I think that's an inter in way to filter things out because I was talking about this volume of applications you need something to filter and if you can do something online I think that's very smart um we the company I used to work at one of the lightweight things that we would do before scheduling Engineers time to go interview with people was they would have we had a phone screen that was extremely simple questions the way that it was phrased for the person that put this list together one of the list together was the questions are so simple that not getting one of them right suggests that you might not have written code before like that's how simple they were and we would still let a couple pass you know if you didn't answer them all but it was meant to be so simple and people would not pass the phone screen and we truly had people because before we had people interviewing they've never they hadn't coded before and they were coming in trying to speak confidently about it but they couldn't answer any coding questions so I think that's an interesting way to handle that so that's cool but yeah you you do need to the point you have to practice your data structures and algorithms okay so for your behavioral questions you want to use real experiences as much as possible Right think about these challenging times think about what you learned from them that's the biggest part in my opinion about this because not all of the questions that you'll get answered or they you got asked sorry are like tell me the most beautiful code that you wrote like tell me about that and you might okay I got the really cool example and you're all excited to talk about it like you're not going to get 10 questions like that you might get a couple because they want to see what you're passionate about and like how you know get you in a comfortable Zone to talk about these things but you will get challenging questions like talk to me about a time you were working on a project and had gone off schedule and they might you know depending on the interviewer they might give you more or less context I would say feel free to ask for more clarity about what they're looking for so you can answer properly so don't don't hesitate on that um they give you enough and you can go with it great but if you're ever like I'm not really sure if they want me to go down this path or another one just ask so you know tell me about a time that where a project was off schedule and um and you had to to navigate like how like what did you do right and they want to see how you approached a problem that might have absolutely nothing to do with like oh I went to line 13 and I just started coding the rest of the solution like it's probably not what happened so giving them there's something called the star method and I should have done my homework before live streaming but that's the benefit of live streaming I'm not super comfortable with jumping around and sharing my windows and stuff yet that'll take some time but I think star method's really good for this um helps kind of set up the scenario something something something um and result at the end and the ideas that you give the person asking you the question enough context so they're not like what the heck is this person talking about you frame it up a little bit and then walk them through how you got to the your result that can be super helpful and the the goal again is like they want to see your thought process if you have a scenario where you're like maybe like you have a you're walking through something you're like I don't have a good outcome from this like I had a a challenging thing and the project missed the deadline right like that that could be a a scenario that you experienced if you don't have a like a a happy path one to talk about or if they kind of maybe force you down this tell me about a time where it blew up like it failed like the most important part about these types of questions is what did you learn right we are all human you are guaranteed statistically at some point in your career you're going to mess something up um I mess up code all of the time I don't code at work but I mess up code all the time in my own projects like we're human right it's going to happen so what's the other part about being human learning so take from your experiences these learnings so tell me about a project that failed because it went off schedule and it couldn't be recovered okay frame up what happened here's what we tried to do cool okay when we reflected on it here's what we learned right we realized that we overestimate or we underestimated how long something was going to take we thought the code in this area was uh we had a lot more confidence it turns out those tests weren't even running so we thought they were passing this whole time but it turns out we had no test coverage um and then everything was breaking and it was in like frame it all up and then explain like what were the actions that you were going to take for next time they want to see that you're able to learn and improve because that's also a non like coding skill that's extremely valuable just checking the chat again uh I'm starting out been using C for like a year on and off what best advice can you give someone in my position like getting uh for lowend jobs okay yeah I I'm just checking the time I'm going to probably just wrap up this section in the next minute and then I'll try to answer this question I think it's really good um the point with the behavior ones and the project ones is that in my opinion these are some of the best to try and understand like how will this person be when they're working with us right if they ask you questions like tell me about a time where you had an interpersonal conflict with a teammate how did you approach it you would be fascinated to hear how many people say like like everyone else is just wrong and not them like that's not a good sign like statistically it's very unlikely that everyone else is wrong and you are always right so if if you're hearing people answer stuff like that you might be thinking like this person might not have a lot of awareness it might be very difficult to work with them on a team right like they they need to be able to gauge these types of things and I think that some of these behavioral and Project based questions can be really good so again my advice was you can look at a bunch of sites online not even just for engineering try to get team-based um interview questions right that talk about behavior and project make a list go top to bottom when you mess up get stumped go bottom to top and keep practicing them over so that you feel if someone came up to you and said tell me about a time when you could go I got like a 100 of these in the back of my mind that I'm ready to talk about right and if you get a new one you haven't heard before at least you have enough familiar memories you've gone through the steps of being able to try and exercise this kind of this muscle in your head for for walking through this stuff so these are my favorite questions um I do think it was Amazon that I interviewed with it was almost all questions like this um this is I don't want it's not meant to brag but given that I like these types of questions I had three offers from Amazon from doing my round of interviews and I I honestly think it's because I had questions that were all like this and I practiced a lot and it was stuff that I was very comfortable with because I had a I truly had a lot of experience going into it so um it just worked really well okay back to the chat so starting out in C best advice um for lowend jobs um yeah okay I think I I don't know your background if you're in school um for folks that are in school if you can get internships it's it's the best op like and I know not everyone has that that opportunity um I'm from Canada originally uh I went to the University of waterl the program that I went to was a co-op program we were forced to have internships if you have the luxury to have internships through your school that op opportunity is there I cannot recommend it enough um I hated going to class I hated school and I was reminded every time I had an internship like I love this like I'm here because when I graduate this is what I'm doing and I love it so internships if you can um I think are extremely important um sometimes it's not something your school offers but if you reach out to different companies like so for example Microsoft does have internships everything's listed on the careers page I'm not going to I not referring people or anything like that it go online all the informations there but do your research about the companies that that offer them big Tech a lot of them will offer them smaller companies it's challenging some do um depending on how comfortable you are again I'm focusing on internships right now I don't know your uh sort of uh if if this is an option for you but I do think being able to reach out if you a student and saying like hey look like I got this much time left as a student is this something that we could entertain um I don't think there's any harm in asking like I just don't I think the only the worst thing that could happen is someone says no we don't do that or they don't say anything so internships if you can please do I highly recommend it um outside of that it's it's not a secret right like the job market is it's awful for a lot of people right now um I'm not school okay yeah so we'll kind of talk about this next part then I I think that there's just so much competition when it comes to um people applying to Big Tech like it sound this is going to sound a little backwards because I work at Microsoft but um I worked at a startup for eight years I had my best learnings ever at startups I think a lot of people look at big Tech and they go oh the pay is really good the jobs are super stable it's going to look so good on my resume like it's not that these things are like they're not wrong but like how stable is it how stable is Tech like how stable has it been right like I think that argument kind of kind of goes out the window um startups can be more volatile like if they're you know if they're not profitable that kind of thing but small businesses and stuff like I mean everything's a little volatile right now but if you can find a small business where it's not like you know are we is the company making money like that's kind of a a scary situation to be in um I think there's lots of opportunities still that people tend to gloss over with smaller companies and it's because it's not it's not as sexy as big Tech so I would recommend um in terms of your job search I would recommend looking for perhaps smaller companies in terms of Skilling up because I don't know exactly where you're at for being ready to apply or if you feel like you need to build more skills up um my opinion is Project based learning is it's the best um it's been my experience that it works the best for the people that I've coached and mentored I feel like it's the best way to approach um learning things getting practice you are learning new things because you get to pick what you want to work on you're practicing um you can build up a resume in portfolio like you get all of these good things out of doing it when it comes to doubling down on and this again sounds backwards because I put out a lot of tutorial videos I put out a lot of articles I have paid for courses in C I don't think the first thing that you want to do and only focus on is like let me just go watch tutorials let me just go read the articles um if you are someone that values learning like a structured way from the ground up the courses that I have are made for that but I think personally you get your best learning out of building things so what I recommend you do is try building some things on the side please do not look at them like how do I build the next you know multi-million dollar startup don't think about money you don't even have to finish what you're building um the value is is going through the process of building the thing right you could get so far and be like I want to ref it cool go do that if you want to leverage that learning on a resume you could talk about how I set out to go build this thing and I structured the architecture this way and then I changed to this other architecture here's what I learned I think that would be a super cool question to ask someone during an interview like tell me what you learned about this right because you're truly applying yourself so I think building up that kind of experience is valuable if you're building these side projects and stuff and getting stuck great like that's that's where I think tutorials and articles are super handy right I'm building a thing I want to do X Y and Z I got X and Y done I can't make Z work at all I can't figure it out you know right on to YouTube go watch one of the dev leader videos about mongod DB okay I'm just kidding unless you're building with mongod DB there's a few new videos but um you know you you you leverage tutorials for that kind of thing right unstick yourself keep moving along with your build um I do think it's the best way to learn there's uh John Cricut I'll do a shout out to him um if you know who John if you don't know who John Cricut is he has a coding challenges newsletter so if you're on LinkedIn or Twitter John Cricket um he publishes this newsletter and puts out coding challenges and it's it's honest it's just the perfect thing for you to go like I don't know what to go build like go build one of those you're not going to go sell it to someone right that it's not the goal the goal is that you're like I'm going to go try to implement something that I've never seen before so if you're feeling like that kind of stuff is already overwhelming you can take projects like that and scale them down a dramatic amount right so if um if I said okay I want you to go build in like build an Instagram clone you'd be like Nick like I don't I've never even worked with a database I like I don't never even built a website like what do I do cool okay well what pieces do we think we need you you set database right okay well could you go build a console application that talks to a database try that right like build a piece of it and say cool I built a console app I know that I can write records into this database and read them back awesome okay go build another part of this it has a has a web user interface you never built that before cool go make the most basic web user interface follow the you know the weather tutorial for asp.net core get that up and running make some changes to it like just get familiar with the stuff it's not about the technology necessarily but it's just getting familiar using these pieces so that's I'm sorry I'm kind of all over the place with my recommendation here but um it's it's a little bit challenging to know exactly where you're at in terms of where you're feeling stuck um tried to cover few pieces there so just to quickly reiterate um in terms of Skilling up I do think building projects is the best way to do it leverage tutorials videos and things like that to unstick yourself the reason that projects are very valuable is that you get to control what you're learning right you get to build your resume and you get to practice all of those are critical the practice part especially this is this is why I don't like lead code you're not practicing building real things you're practicing very trive scenarios you could layer on lead code onto that if you're like hey I'm having I don't feel like I can creatively problem solve cool practice some of those right so if it's a skill thing and a practice thing I think those are my suggestions when it comes to um you know trying to trying to get a job to start if it's not internships uh I would I would say you may statistically have better luck applying to smaller companies strictly because the volume of people applying is less and small companies are not bad not all of them are good just like not every big company is good but just by being smaller doesn't make a company bad you will I can almost guarantee at a very small company you're going to have a lot more exposure a lot more impact relative to what's going on around you so like you'll have incredible experiences and if the company's very small you're going to have experiences that a lot of people will never get in their big Tech Career because they never have to interface with sales and marketing people right they don't have to see how the business is going you get some really cool experiences that way um oh message was retracted uh cool okay uh yeah I think bit over an hour here I hope that was oh yeah I should I'm terrible at advertising things uh I don't do mentorships currently um that is something I want to do I am not I'm not able to at the moment I'll put it that way um I I do mentorships for people and stuff at work um so I do a lot of that I do have a Discord um what's a good way to do this I want to I'm going to see if I can I'll put it in the chat um as soon as I'm done with this actually there's a better way to do this sorry give me one sec like I said I haven't really practiced like being a streamer and trying to like do multiple things at the same time so this is good practice for me um on my site I have a hidden page and it is I think here so if I have this working so heads up this is a paid for Discord there is a public Channel it is rate limited I will respond when I can but what I need to to clarify for people is as you might imagine I get a lot of messages that come in and it's people that want they want help and I want to be able to help them it's just not scalable I literally cannot spend time responding to people unfortunately as much as I would like to so the reason that I'm doing a Discord group is so that it incentivizes people who are serious about trying to grow to come and join like I said there's a public Channel there's a I think a weeklong trial too so if your if your credit card and stuff's there and you're like I'll try it if you don't like it you're like this sucks like Nick sucks whatever that's fine you can you can you know it's a free trial but in the community as well there's other people that can jump in and offer their perspective and you're around other people so I'm just going to drop it in the chat here um that should work and there should be a link and stuff so that's there like I said I'm not trying to mislead you and trick you into like a paid for Community um this is something that I've set up to be able to volunteer my time into and like I said it's five bucks a month um if that's you know if that's too steep for people like I you know sorry I it's at some point I have to be able to kind of compensate for the time that goes into it and um you know there is a public channel it's just rate limited so you can leverage that if you're like hey I just really need help that's a spot to do it because DMS unfortunately it's like I just can't I can't sustain that um I hope that's okay I hope that helps thank you for asking about that because like I said I'm terrible for for advertising things like I didn't even I did a little bit of mentioning my Dome train courses but like I didn't put up the screen and go through it I'm bad at it um hey Andreas good morning from Greece uh awesome yeah if you thanks for thanks for chiming in I hope that advice was helpful um yeah I think I don't see any other questions waiting so uh I'm going to log off um I should probably like mention Twitter and stuff too um so if you want um like I said I'm trying to practice not being so slow with this kind of stuff uh I don't know who uses what these days like I'm on LinkedIn a lot this is Twitter um so if you want to tweet at me and stuff I post there as well so um I hope that you found this helpful next week same time I'm going to do the sort of the third and final phase which is you did all of your um you know exposure stuff for for getting an interview you acce the interview now you're working and I want to talk about this is where I get to shine a little bit as an engineering manager like what what would be expected of you now that you've started your job because I can promise you I'm not going to be sitting there and say please submit 100 lead code questions in your first week that's not what's going to happen so um thanks for all of your support I hope you found this helpful like I said reach out to me on social media um if you still have questions and stuff you can uh you can submit them I can try to answer them on video and stuff as well so um yeah please don't hesitate to reach out I'm I'm happy to try and help if I can thank you everyone and uh like I said I'll try to get better at streaming cuz I'm still pretty clunky with it but that'll take time take care have a a good morning if you're just starting your day there in Greece uh for other folks enjoy the rest of your day and if you're like me you're going to bed

Frequently Asked Questions

What are the three major components of a software engineering interview?

The three major components of most software engineering interviews are coding problems, system design or architectural questions, and behavioral questions. Each of these components serves a different purpose in assessing your skills and fit for the role.

How should I prepare for coding questions in interviews?

I recommend practicing on platforms like LeetCode, starting with easier problems and gradually working your way up. It's important to not just memorize answers but to understand the concepts behind them, so practice talking through your thought process as you solve problems.

What should I focus on during behavioral interview questions?

For behavioral questions, focus on real experiences from your past, whether from school projects or previous jobs. Use the STAR method to structure your answers, emphasizing the Situation, Task, Action, and Result. This helps interviewers see how you navigate challenges and learn from your experiences.

These FAQs were generated by AI from the video transcript.
An error has occurred. This application may no longer respond until reloaded. Reload