 how to excel at your internship once you already have an internship. I'm going to give the phase one now, which is we are going to talk about what is an internship in the first place, why you should do one, and how to get one, and everything about internships is very basic. So there will be a bias towards overseas internships, but it doesn't really matter because almost everything I'm saying right now applies to almost all local companies and overseas companies. It doesn't really matter. So who am I? My name is Vishnu, and I'm a final year student in computer science in NUS. I've interned at these three companies, Twitter, Apple, and later I was at Uber with Chen. It's been my last summer there. And all these internships were in the San Francisco area. So let's go on to what is an internship in the first place. So an internship is usually 12 to 14 weeks long, and you're basically working with the team. And they basically treat you like a full-time employee, but you're just there temporarily. So you could treat that as temporary work, where you are given all the normal responsibilities of a full-time engineer at most companies, and you're just there for three months, like it's on trial. So you are trying out the company, and the company is trying you out, just because you're a really capable university student, and they might want to hire you in the future as a really valuable employee. You work with a team. You are never working alone. You're always attached to a team. And the team usually does real work. Like, it's usually a team that's working on something that's really exciting inside the company. That was my team at Uber. My team was called Driver. Driver went through many re-docs. I think it was, by the time I left, it was called Driver Engagement. When I joined it was Driver Experience. Then it became something else that I was doing engagement in three months. You also have a mentor and a manager. Your manager is just like your boss, and your mentor is just basically a guide that guides you through everything that you're doing. Most companies have that as well. A mentor who's just a fellow engineer in the team, and a manager who's usually the manager of the team itself. And you also usually get to do an intern project because the companies are really trying to get you to join. So the companies want you to do something that's really valuable for the company as well. So whether you can go back to school and show off a difference, and then, hey, I built this and I built that. So you usually get this really well-scoped-out project where you start the project, you scope out the project in the first two weeks, you build it, you test it, you ship it, and then by the end of your 12 weeks, they're usually done, and you get to ship out something that you can call your own. Yeah, you also get to do real work. You're doing actual real working. You're not just bringing coffee for someone. That's not how most technologies work. You're actually doing real work. You're working just like a normal full-time engineer and doing the real stuff. And at NUS, you can also get free credits for doing this. That's the thing called SIP. If you do a three-month internship in the summer, you get six MCs, and if you do a six-month internship, you can get 12 MCs, and you can apply that for overseas internships as well. So you can just get, like, free credits and graduate earlier if that's what you want. It's awesome. So, okay, so now you know what's an internship, but why should you do an internship? But why? Okay, so why should we do it? There are a few reasons. The first reason is that you get to do something impactful while in school. That's the word there, while in school. And basically, you get to, since if you're working at this, like, Silicon Valley Tech company, or even companies in Singapore, like Vicky, GrabTaxi, and Garina, these companies, they own products that are used by millions of people almost at the same time. And you get to impact these products. You get to make, like, actual technical positions on the things that they do, and you get to work on these actual products. So I'll go through a few examples on what I got to do in my free internships. Okay, I'm going to skip Twitter because I have no time. I'll just go straight to Apple. So when I said Apple, I got to work at Xcode. You don't know what Xcode is. Xcode is the app that you use to make apps. A bit confusing, yeah. So all the iPhone apps that you see in the app store are made using this thing called Xcode. And, yeah, so I was with the team for six months. I did a long 8-app internship. I skipped school for a while. At my time, while I was at Xcode, I got to work on a bunch of things. Last year, when I gave this talk, I couldn't tell anyone what I did because it's Apple and you can't tell anyone what you do because of how secretive the company is, but now I can because of the fact that my feature is released. And this is what I got to work on. So I worked on this in 2015. And in 2016, in Xcode 8, they released it. So I worked on the first prototype of Xcode Editor extensions. So in Xcode 8 now, there's a feature where they are finally bringing, like, plug-in functionality to the IDE. Previously, you could have done that legally. And I built... So my project for the first six months there was to build a prototype to show that this thing can even work. And it's shipped as a real feature now that probably millions of users can use. I think Xcode 8 is still in beta. But once it goes out of beta, anyone can edit that extension and ship it. Pretty cool stuff. I also spent my last summer at Uber working on two big features there. I was on the driver experience team. So we were in charge of basically all the drivers on the platform. There are millions of drivers that drive on Uber every single month. And we were in charge of, like, building features for them, the app, how the app works, how Uber Pool works, all those kinds of things. So one of the features that I worked on was this feature called Stop New Request. It's a simple feature, everything about it. So the problem is, imagine Uber Pool and if you're in Uber Pool right now, you could pick up passenger A, then pick up B and then drop off A, then pick up C, then drop off B and go on forever until the car runs out of gas or the driver fades and then he gets an accident, right? So the driver never gets a break because we as in the Uber, the Uber, a dispatch system, is constantly giving them trips that's, like, optimized. And the driver never gets a break, potentially. So I just built this simple feature called Stop New Request, where the driver at any time could go into the app and once the driver feels like, hey, I've had enough, I want to refill my petrol or just go for lunch, go in the app and hit Stop New Request and the Uber, like, dispatch system would stop sending them new requests. And this feature, I think by the time I left, was deployed to 200,000 drivers. By now, it should be deployed to all of Uber's drivers. So these are the kind of projects that in turn get not bringing coffee to someone. Well, the driver gets coffee now, and I built this here to help them get coffee. Yeah, so those are the kind of projects that you get to do. It's, like, real old stuff that actually that project hasn't shipped yet because when you're working on such a high-level project, you want to test it a lot. So I'm sure they're going to test it for at least a year or so before they ship something like that because you need to make sure that the driver doesn't say something and then the action doesn't happen, that he gets into a real accident. So these kinds of features you really have to test them. You also get to learn a lot at these internships. You're extremely smart, right? Like, people who work at Facebook, Google, all these companies are extremely smart. And just by being in the same environment and talking to them and interacting with them and just seeing how they write code, you learn a lot. Like, you get a lot of perspective of what you're doing in school and you get to apply that in your real life. You become more attractive to future employers as well just because in your resume, when you say, like, if a company is trying to hire you and they realize that you have passed the engineering bar to work at Google, that's a pretty good sign for the company to hire you because Google has already done the work for that company by saying that, hey, this guy has worked for us. And you also bring a lot of context back to what you're learning in school because when you're in school, it's a really, really good thing to do in internships because you spend, like, one year in school, I think about nine months in school and then three months in internship. You get to really apply what you're learning in school so the next time you have more context on what you're doing and you understand what you're doing and what you're doing in school. Okay, you also get to discover what you like. I mean, most people in university, they only get to work once they've graduated. And the thing is, if you do internships, you get to, like, it's a three-month trial, right? It's a two-way trial. You get to try the company, the company gets to try you. So is software engineering really what you want? So you get to try that out. Are you interested in mobile stuff? Do you want to make apps? Are you interested in infrastructure, front-end design, all these things, right? If you start in your freshman year, you get almost three internship slots by the time you graduate and you get to try out all these kinds of things and build your interests. You basically get to work even before your peers have graduated and try out what you like. It's a really good thing. Do you even like working in a tech company and things like that? I'll just go through some examples of what happened in each company. So when I was on Twitter, like, this really interesting thing they had was, they were just a very transparent company internally. Like, they were okay with every employee. I think they're 3,000-something employees when I worked there. They were okay with all employees knowing everything about the company. So every Thursday, they had this thing called t-time, where the CEO would sit there and every one of the companies invited to watch and attend this event. And they'll basically talk about everything that went good and bad the last week. Good press, bad press, and it's fine because this is a confine space. Like, everyone works here, cares about the company, and it's fine to talk about confidential stuff here. And that was really interesting. Like, the company's so big and I was really surprised that they're still so open. Completely different from how Apple works, by the way. Just because of how secret the company is. No one knows anything. Half the employees, yeah, bookmarks is like magrumas.com because even they need to read and find out what their own company's doing. Because they don't know what's happening outside their own team. That's how the company works. That's the best way to keep secrets, right? You only expose your secrets to exactly who you need to know. But that's just how Apple works and they're successful in their own way. Next. Oh, yeah, this was something else that Twitter encouraged while I was there. My manager, this was a group stack, by the way. This is like their lunch area inside the building. The anchorage, like my manager at least, encouraged me to have lunch with someone new every day. Just approach someone. You can use our internal chat system to chat up with anyone. Just say, hey, can I have one for you? And it's not someone I even know and it's something that I just did. And just to meet these people and just to have them in the contact list, it's a really, really cool, cool, cool, cool, like a cool and powerful thing to do. What's next? Oh, yeah. Interest is also fun. This is away from the technical side. If you're doing an overseas internship, it can be anywhere, like there are people in this room who have done internships in Australia, in London, in Switzerland, in the US, East Coast, West Coast, it doesn't matter. People have done internships anywhere. As long as you're doing it outside of Singapore, you're going to travel a lot. The good thing about internships is, and I found this really valuable, after Friday at 5 p.m., the company doesn't own your time. Friday at 5 p.m. to Monday, whenever you start your work, you have no homeworks, you have no assignments, you have nothing to care about except your own enjoyment. You have nothing to care about. Especially when you're an intern, you have no responsibility, so it's fine. You won't be set on-call, you won't be the on-call engineer. The weekends were extremely fun because every weekend, I could do something for fun. Like fly around, go meet for events, go for tech events, go for hackathons, and things like that. It's very different from school life where you're always worried about the next test or assignment. Unless you're me, who doesn't care about anything. You also get to meet people from other colleges, which is important as well. So some examples of the things that I got to do that were fun. I was at Twitter during the 2014 World Cup. I think I gave the story last year as well. So when the World Cup was happening, they do make sure that Twitter works during the World Cup because when someone scores a goal, everyone in Brazil, I think it was Brazil's World Cup, would send like, Goal! The treats would go up by like, spike up by 50% for that second, for the few seconds. The treats send in that second would go up by a 50% for the second after that. So the really cool thing is, these are like engineers, and they're watching the World Cup to make sure that Twitter is alive during the World Cup. Because we have to, because when there's like a penalty shootout, that's when the most excitement happens. Everyone's like, Oh, the referee is cheating, blah, blah, blah, all these kinds of things, right? So the really cool thing that we found out here is, like ESPN, when you're watching ESPN to watch the World Cup, it takes about four seconds to transfer from the feed from Brazil to the US. But Twitter's real-time, it happens in many seconds. So we saw goals happening before we saw it at ESPN. So we could watch the charts that showed live tweets per second, and then like, we could see it spiking up, and then we knew, okay, this is either a goal or a referee or someone kicked someone or someone got a red card, and then we'll see it on screen, like three seconds later, we'll see it on screen. That's because like, Twitter's just so real-time and TV's slow. Nothing I got myself involved in is this, when Twitter, when they launch a new product, they have this thing called a War Room, and I got to sit in the War Room. This is basically a room where when they launch a new feature, they just want all hands on deck. They want everyone who's involved in the product to be in one room. The PR people, the engineers, the designers, the data scientists, and everyone just so that when we launch it, we make sure that something is wrong. Because when you launch something, this is the first time your product's going to be used by millions of people. Right? So they want to make sure that everything's going to be done on time. There are like stats on the screen and stuff like that. This is like really interesting stuff that I wasn't exposed to. I'm somewhere in the middle. Yeah, I'm also going to travel a lot. This is one of the random trips that I took in a random video that I took. The US is very big. So even the US specifically, there's a lot of things to do in the US. You could be there forever and always be traveling and seeing something new every single weekend. Oh, my next one. Yeah, when I said Apple, I also called it, I turned WMDC. So when I said Apple, I was an Apple engineer, they gave me the rare opportunity to attend the conference representing the company itself. So that was really an awesome experience. Yeah, so these are the kinds of like, you get to go to a conference as well. If your company's hosting a conference, you should be able to attend that. At least give you a chance to attend and see how it's going. Because as I said, internship is always a two-way thing. You are trying to convince the company that you should work for the company. I mean, the company should hire you and the company is trying to convince you that you should work for us. And the selling is happening both ways. You would see when we go to the books section later on. Another thing, this is, that's Tim Cook on the left. We had internal concerts at Apple. They happen every month. Because they own iTunes, the biggest music store in the world, so they have contracts with every single musician I had. So I think we had Pharrell come down, Adam Lambert, they basically come in and give private concerts to Apple employees only. And that's Tim Cook. I have a video of him dancing, but I can't show that in case you guys record it and it goes somewhere in the end. Yeah. Yeah, folks. Like for US internships, they pay really well just because of competitively, competitively, like when one company needs to pay in some rate, like every company tries to match that figure and you end up getting like a really good rate. And like other folks are really all awesome as well. Like some companies, like Facebook for example, they give you free housing. That's on top of the really good pay-in-aid pay-in that you get. Laptops are before. I shouldn't have shown the number first, right? Like everyone, you get a laptop because of like data, privacy issues, they want to make sure that all the company work is done on a property that's not yours so that when you leave the company, like you don't get still anything for yourself. You get a bunch of free shirts, you also get discounts. Let's see Apple Watch. How was it Apple on the Apple Watch Launcher? When the Apple Watch launched, they gave it to everyone for 50% discount, which is quite significant. One more slide is this guy, who works at Berkeley, he made this, so basically he did this random survey of all the interns in the Bay Area and this is the, this is how much they're paying for this summer. So for like, from the summer, from May to August this year, this is what they're paying right now. And most companies are like in this ballpark. And the reason why they do it is just because it's really competitive and it's really hard to get this job and they just want to make sure that you have an awesome time and you will join the company afterwards. Like the best ones, they even give you free housing. So, ah yeah, that's how it is to do an internship in Silicon Valley. All right, next slide. Oh yeah, Uber credits. Yeah, Uber ride, Uber credit, I suppose, all my rights are free. Oh, food, yeah. Food is actually important to me. Because I care a lot about food and free food in almost all the companies, except Apple, because they don't have a culture of free food, but everywhere else is free food. And the food is awesome, right, because the way these companies work is we want to make sure our engineers are as productive as possible. So anything that helps with productivity or anything that helps to make sure you stay in office for that extra minute is good for you and it will give it to you for free. Because when you don't have free food, you always have like at 11 o'clock you would leave the office, go out for lunch, pick up your friends, and then by the time you're back, it's like 12, 30, and you're wasting 90 minutes doing nothing. But when you offer them free food, they just go out for lunch in the fifth floor. They have lunch for 10 minutes and they're back. So from a company point of view, it makes their engineers more productive. So that's like a two-way thing. But the food is really good as well, so you never want to leave. And they give you all three meals, so why leave? So you may think, if you have all three meals, you could also basically live there, right? You can, because of the shower. This is Twitter. They had a really good shower. And they don't encourage you to live there, but the main point of it is like after your gym, you could gym somewhere, like Twitter has its own gym. Then after the gym, you can just go there and have a good shower and then go back to the office. Everything's provided, towels, so on you to bring yourself. Yeah, rooftop garden, I already talked about that. The rooftop garden. Okay, so the whole point of that was to sell you to tell you why you should do an internship and why it's important to do one in your summers and not raise your summers doing like nothing else. So how can I get an internship? Let's go to the next step, one. We have done the why and what. Let's go how. Zero to one internship. So this is the process to get an internship, right? You have to apply the most important step. And when you apply, you should use your resume. And if they like your resume and what your resume can say is they would contact back to you. And then once they contact you, you would have some phone screens. This is I'll go on to some details about what a phone screen is. And then optionally, you would have an onsite. An onsite is basically when they fly you into the office. Or in Singapore, you go to the office and you actually have an onsite interview. For internships, that doesn't really happen. For full-time, you always get an onsite, but rarely for an internship. And then you get an offer. And then you get to choose to accept the offer or not accept it. So step one, most people don't even reach a step one. Like if you do a random survey of most people in like an SOC and you ask them why have you done an internship? Then you ask them like have you done step one? They just say no. Like I've not even got the applying stage because I'm afraid that I'll get rejected. And that's the most important thing, right? You need to go through that fear of rejection and just tell yourself that I'm ready. If you think you're ready and you must be ready and just apply. And just see what happens, what happens, right? These are the common reasons why people say they're not ready. My resume is not ready. I'm not ready. I need more time to study for my interview. I don't know when. I really want to work. It's coming. What if I screw up? I applied to a company already just waiting for a sponsor. I mean, all these things are valid excuses, but they're also invalid at the same time, right? Because if you want to get what you want, you just have to try hard for it. And you can always get something you can try hard enough. I'll just go through some of these examples. My resume is not ready. It's not a valid excuse going. The thing about, I'm not ready for interviews. That's valid. And we'll go through some tips about how to become ready for this whole interviews and how you can practice. There are a bunch of resources online. There are thousands of questions online. You can practice yourself. And I don't really know I really want to work at a company whatever I screw up. That is a semi-valid excuse. But what I want to tell you is most of these interviews, they are tweaked in a way where they want to make sure that they are reading out false positives. Whatever the one is where you get the wrong person in. False positives, right? False positives. False positives. False positives. False positives. So the interviews are tweaked in a way where even if you make a single mistake that is enough reason for them to not offer you like not offer you an offer to join the company. That's because the fact that if a bad team member joins their team and usually these teams are very small you could really affect the company in a really, really bad way. So they want to make sure that everyone joins the team in super high quality and the engineers they know that their hiring boards they know that you reject more people than we accept. And because of that they think okay with you trying again. Almost all these companies if you get rejected once they completely they're completely fine if you try again because they know that there is like like our system of accepting people is not foolproof. We reject a lot of people that we think are competent just because they made once tiny mistake. And we just want to make sure that they're always competent. So it's fine to try again. I think that Google internally they allow you to try you that you can try at Google three times before they like how about you for everything. Yeah. No. Try to go by the snow. Next slide. Oh. I think that no meant that those are not valid reasons. So how do you apply? Right. So there are many ways to apply the most basic way is every single company has a job site and once you know this fact like every company has a job site if you go to google.com slash job I think we'll end up there. Every company has a job site and in every job site you can go online and apply and submit your resume. They might ask for a cover letter. You usually don't need to fill that in. Usually your resume should be enough to explain who you are. Other than the job site there are career fairs. This is something that Singapore like annuals is getting much better. Like recently the last two years I've seen many more like big name tech companies representing themselves in Singapore like in the career fair that we just had and Google was there and Google was there Facebook was there and they're all hiring for the Silicon Valley positions actually. They're not hiring for local positions and that's a good way to get recognized because when you go to the job sites there are hundreds of applicants are going when you go to the career fair the chances of you getting your resume are recognized are slightly higher. There are also like info sessions and tech talks usually when a company is coming to NUS to give a talk it's usually a recruiting event they don't try to do it that way but it usually is. I'm sure I didn't attend the Google talk but I'm pretty sure that was a recruiting event as well because they're opening a Google and engineering campus in Singapore and they're trying to get people to join them and if you go for these sessions they might be like a recruiting pitch at the end you could talk to the engineers and see how you can get a job there and the last one is referral usually that guarantees you the highest chance and that X and that person can like really knows you as a good person like you're really quite close to that person and that person can watch for you and that person would be able to tell company X that hey this is someone that I think we should bring in he's strong enough and I think he's competent to be nothing why don't we interview him and the reason why that's really well recognized is from a company's point of view if person A has passed my interview and he's an awesome employee in my company if A says that B is good obviously B should have some value there and that's a really good like positive signal there because person A works for me and A told me that B is good and you should try to interview B so usually when you refer someone you're almost definitely guaranteed an interview at least you're not guaranteed to offer you still have to go through the same interview process you don't get any special treatment but you usually at least guaranteed an interview if you get a strong referral oh yeah so when should I apply this is something that most people get wrong so this is very dependent on where you're trying to apply so if you're looking for a Singapore internship grab taxi wiki carousel any of those companies you could apply like next year and that's perfectly fine you could apply like in February, March for summer internship but that's fine but the problem is and most people don't know this which is why they miss out for a US internship specific to a certain value internship they start their application process very early this is because of how many people are applying the moment summer ends they've already started filling in their positions for the next summer and the timeline is usually sent in a way where by December or January they have filled up all these spots and then when you realize that hey in February I realize I want to do an internship for everybody by thanks to you because in Apple for example I know for a fact that by December they close on all these lots and I think Google should be like January or something like that so this is a most important thing to know right now the fact that you should be applying now basically the company if you're interested alright so step 2 once you do apply what happens after that so you get a challenge I think you're going to go through that afterwards so I'll just quickly go through the slides yeah there's nothing much step 3 is you get a technical phone interview I'm not going to go through this because Chiranu is going to go through this in the next section of this talk and yeah soon there might be multiple rounds of technical interviews most companies for an internship role they have 2 2 to 3 that's what usually is some like I've had to do like 3 or 4 rounds before that's completely fine it's very different from a full-time interview for a full-time interview you usually have like between 4 to 6 like interviews yeah what is an example except for the offer we're not going to talk about the offer here because you're just going to accept it so we'll have to talk about it next slide okay so now we're going to talk about what actually happens for the technical interviews and I'm going to pass on to Chiranu that's fine are they okay to stay? yeah awesome so our event is supposed to be schedule 8 and I want to respect all your time so you've got to go right go ahead if not we after this section additional continuous sharing about some tips and then we would want to have a Q&A in case you have any questions so if you want I can go through like how to do technical interviews or otherwise if you have any questions you want to ask do we want to open it up for you can continue continue okay so if you have to go you want to make it as quick as I can and then if you have to leave just feel free because it's a game very okay so technical interviews what happens to technical interviews usually it's about 45 minutes to one hour and then it starts off with a very soft introduction the interviewer will kind of introduce yourself talk about the role maybe talk a bit about the company the culture and then after that there will be the actual technical interview the actual technical question it could be more than one depends on the how well you do how quickly you do it depends on the the scope of the question and so and then after that you will most likely have time for Q&A with the interviewers you could ask questions about the company or the role or whatever you want so technical interviews can happen either in person or over the phone so for my experience it has almost always been over the phone call with a shared like Google Doc instance except for Stripe so Stripe is pretty special one phone call when I was in Singapore and they were in SF and then they decided who are flying me over for an on-site interview on-site we have three rounds of technical interviews white boarding and stuff and one did a lunch with a manager so for internships most likely they will not fly you so just which are which is really nice so these are kind of questions at the beginning of the technical interview where the interviewer would ask so these are very soft tell me about yourself kind of questions tell me about blah blah blah where blah blah blah is something that they find in your resume for example if you say that oh I worked on this school project where I used certain programming language or I used a certain framework I used rails then they might okay what do you like or sometimes they like to ask about they like to ask about like any what's your biggest challenge is the mic open I reduce the volume okay so I'm too loud yeah it's very subtle so like they they like to ask about what's the biggest challenge you have faced in a certain project or assignment how sweet how sweet software is that is it too soft now it's too soft now it's very hard to please Vishnu um yeah so other kind of questions this usually happens in the HR phone call so from my experience right first when you apply they accept you the recruiter would call you first and then ask you about like you know what kind of roles are you interested in what kind of passion do you have do you know the culture of the company do you know about the companies call products things like that so to make sure that there's like a little culture fit so yeah these are these are questions that you should be prepared you should know the answers to if you are even interested in the company so questions like you know do you even know about the company if I apply for Twitter I better know that Twitter what's Twitter's mission what's their goal what's their core product what kind of other products they have be very confident why you want to join the company and then after the soft introduction right when you ask you what tell me about yourself will be the actual technical questions so these are simple these are very easy you might be laughing like oh this guy going to do grow because he can add this warming up right you know the first question they don't want to scare the hell of you right they ask you a very easy quick like no 5-10 minutes kind of warm up question get you started right cause you might be you know just wake up cause of time time zone difference so some simple question it's like you know they explain very simple concepts like what is a deadlock you know you should be able to kind of explain in your own words what a deadlock is and this is where my earlier point about paying attention in school comes in very handy so a simple like you know what is this you know this keyword is a very special thing in JavaScript depending on the calling context it could be different thing so why mention this is because if you put in your resume that you know JavaScript then make sure you know JavaScript right don't put in Java because you took this module that taught you Java for like one week and then you're like oh you use like Haskell you went through the tutorial and like oh I know Haskell and then the interviewer whatever you put in your resume better have evidence to support your claim and some other kind of like technical questions that doesn't involve much coding what requires a bit more explanation would be things like you know tell me what happens after you type Google.com into the address bar this is a very very very interesting question because you could take this in so many directions based on your interest okay let's see your interest is in networks okay you can talk all the way from okay the video will go from HTTP you can talk about HTTP how the protocol works and how HTTP is like layer 5 or 7 of the networking OCPI whatever shit protocol and then like you can talk about HTTP whatever and then how the bitchy internet protocol works and then you can go all this how NIMS servozo DNS all this you know you can talk about how the browser interprets this you know you can pass this to whatever send to this network call then there's this event loop that runs to the background and like you know VAMG and you could like compile and just just that combination you know whatever you want to talk about so this is a great chance to showcase your talent and fashion I probably render a lot and none of you understand what I say but like this is a mean of the interview which would take out like a good 20 to 30 minutes depending on your ability to solve this kind of questions so look at the first question it's a very simple find an element in a software pivotal array and here is where it gets interesting right you know so the first thing is you want to find an element like what's the easiest way you know you always want to think about the most simple solution to the problem first you know what's the simplest problem to find an element in a software pivotal array and then check if your element is a quite element but then what is the complexity O N O N right cause you have to iterate through N elements so this is where like you know school actually matters you are expected to know your big O notation you're expected to be able to quickly find out if a certain algorithm is of a certain complexity both in terms of time and also space okay so this is where you explore the question a bit more why does the question say there is a pivotal array okay if I give you a sorted array what is the fastest algorithm you can find a certain element binary search all of you are going to go Google already but so it's good for you during an interview to like oh okay if I have a sorted array I can use binary search and then there is O of log N right but what if it's pivotal what is the difference between a pivotal and a non pivotal array and then like you okay maybe I need a binary search that's kind of modified because now I cannot assume that I have to kind of like figure out if I'm in the pivot and if I'm in the pivot I've got to go a certain way because now it's pivoted so these are the tricky questions not say tricky but like they won't give you very obvious direct questions that you have done in school they will add a little bit of twist to it and you are kind of expected to still be able to do it these are more rare questions I got this at strike so questions like design a certain system like you want to design a system that can collect metrics right you want to collect metrics from all your instances you have like thousands of instances running on AWS and you want metrics you want health status checks on all these systems how would you do that and then you might think like oh it could be a simple you know it should be quest polling but then how do you make it scalable what if you have tens of thousands of instances where you're going to solve this how often do you want a query say every second archive it there's a lot of things to think about that's why you should explore more breadth right you all look very confused sorry is this me oh okay so now you kind of have an idea what happens during a technical interview how do you prepare for the interview right the interview is really a test okay the interview is a test where you showcase to the interviewer that you have what it takes and like being in Singapore right all of you all study in Singapore you have taken countless of tests right from the day you were in kindergarten you took a test until now you are still taking a test every three months or more than one test every three months so practice you know test how you prepare for your old levels new levels you do pass your paper same thing algorithm question data pressure questions go online find questions do it practice get comfortable with it so the next time someone asks you what level right simple right once you know it it's very easy once they give you another question that is kind of similar you can like oh I know how to do this so maybe I can modify it so that I can get the correct solution the other points are kind of like relevant for any kind of interviews that you go for you have to be fresh be prepared even though it's a phone call they don't see your face they don't see that you haven't brushed your teeth or washed your face in the morning you want to feel fresh and sharp when you dress sharp when you feel sharp confidently you will perform better also in general you have time for questions for the interviewer so prepare things to ask the interviewer questions that are generic maybe like can you describe to me how your day to day life is like find out a little bit more about what they spend and really do so these are some resources where you can go to practice pop coder leak code Hackerang they are already good leak code is super good cause they have a lot of questions and they also have a lot of solutions to many different ways of solving the same question and Hackerang is really good cause it's like an in-browser editor and a compiler so you can actually write a code and make sure that your stuff actually works correctly and they have test cases for you to check your results so there's this book that's really really really good called Cracking the Coding Interview if you go to the NUS Library portal and you look for this book it's actually available but it's usually unloaded by someone hey this book is really good it goes through how to prepare for interviews basically like this presentation but expanded into like hundreds of pages and it gives you a lot of sample questions from all the different kinds of topics and a lot of those questions are actual questions that companies have asked so it's all very anecdotal it's all very real so if you read that book you are you are a few more prepared and you are more confident about things this last point may or may not be relevant but it's still pretty important for you to be comfortable writing code on paper because if you get an interview where your white boarding meets your writing code on your whiteboard it's a very strange thing for you to do you always write code in an ID or on your computer and then like if there's an error it's an undefined variable you get a rate squeaky lines screaming at you but if you run a whiteboard and you get something that's like bad syntaxically you're just going to get an interview mocking you this guy doesn't really know this stuff well so it's important to write code on paper write code on whiteboard practice the medium that you are doing so if you know that it's going to be a full interview then you should go and try to have a mock full interview with a friend or someone who has done it so that you can try and see how it feels so at a very high level the technical interviews achieve certain goals besides assessing whether you have the technical abilities it's also a way for the interviewer to see if you kind of like fit in if you are in general a nice person to work with you would be cause they don't like weird crazy people are kind of strange everyone is kind of strange in a way but not too strange okay yeah so in general they want to see if you are nice enough for them to want to sit beside you and work with you and this is about during the actual interview whether you're on a phone call or on-site think before you speak don't be like me usually I speak before I think so you want to process a question let's say the interviewer tells you a question not think about put a question in your head for a while think about it look at all the keywords okay we both are excited but the example on the binary the sorter-pivoted array so it's very important that you saw the word sorter and you saw the word pivoted because if you miss either of these keywords your solution will turn out to be either completely wrong or too slow or yeah if you are not very sure what it means by pivot is it right pivot is it a complete mirror image pivot what kind of pivot is it clarify ask questions ask your interviewer questions site like examples oh if my array is 1, 2, 3, 4, 5 if I pivoted at the fourth element is it 5, 1, 2, 3, 4 or is it 5, 1, 2, 3, 4 there's only one option for that but clarify the main thing is clarify articulate your thoughts especially during phone interviews because like I said they don't see your face right facial expression is a super important part of your communication body language is like 60% of the communication so when they don't see what your body language is they don't see your facial expression they have no idea whether you are furiously thinking you know or are you just completely dumb founded because to them you appear at the same thing silence on the other end of the line so try to articulate your thoughts right if you are thinking about again the binary search you will be like oh okay if I have a sorted array I can use a binary search and that's like log n that's really quick but then now I have a pivoted sorted array so it kind of seems like I can still use the binary search because a portion of the array is sorted but not the entire array so maybe I need to modify this in some way that's exactly how I would go on with the interview I would think out loud whatever is going on in your head think out loud interviewer this is like a sample question that you might get and then like you can go through how you would do this so question is write a function that removes duplicates from a list simple right and then you start typing JavaScript function parentheses list curly praise close curly praise and then like what's next before even type any code what's your first step clarify right is this question ambiguous not ambiguous okay so write a function it's like it's not ambiguous write a function okay removes duplicates okay what does it mean to be duplicates maybe me and you have different ideas of duplicates maybe I think that if I have a list of one one one and I remove duplicates one is the duplicate so I remove all the ones and then my result is an empty list but maybe the interviewer was thinking remove the duplicates but keep one of it remove any duplicates so if I get a list of one one one and I remove duplicates the list of just one element which is the number one and these are completely different results right one is wrong and one is right and it depends on what the interviewer want this is very important in this case to clarify what do they mean by remove duplicates and actually even more fundamentally a list okay you know it's one list right but what's in the list is it strings you know is it int is it more list can the list be arbitrarily nested is it certain classes what is it you know if you don't know what is it what is how do you check for duplicates like there's no equality right if your list if your list is like JavaScript you can contain int strings objects other lists then what is the notion of equality so these are things that you would want to clarify with your interviewer and once you clarify then and you're clear what happens you can sort of like kind of ask like okay so let me confirm if I have a list of ints okay that's what you want and I have the integers one one one is it one or there are no elements and then once the interviewer tell you that okay the correction is this that you have like a base case to work with and then you can start like writing your function okay so obviously your code should come out better it's in the editor you know Google Doc on the whiteboard you should be pretty OCD about your code you should treat it as like you know all the skill that you learn in all your CS mods that has to do with like proper software engineering techniques which includes proper variable names you know don't go crazy with like VAR, IJKL you know proper meta names comments if you need them one very good tip is start with serial code right in that then you learn you might have learned that you know sometimes you write comments, serial code and then you start to like flash things out replace them with actual running code so that's actually a very good technique to help you like build the skeleton of your solution and then slowly fill in bit by bit and it's actually very helpful because one of my experience interviewing was I started with serial code and then I ended up not having enough time to implement so I had this line of serial code that said like oh I should do this but I never really implemented that and I ran out of time but like I knew that I had to do it so the interviewer knew that I knew that I had to do it but I didn't have time to write the solution so to the interviewer it might be like I just don't know what it's doing but you just didn't have time because if you for five more minutes you'll be able to do it so it creates kind of like a little false illusion that you know how to do it you know it's a little trickery there don't do it too often but like it's a good set because going from no code to running code is very difficult if you have a step in between that has like not running code but has the actual logic or algorithm it's a lot easier to move from step A to that kind and then testing so once you write your code and you're like oh okay this code should work I think try it try your head be your own compiler or interpreter you know run through your code give sample inputs and like try to list out the state of the variables at each step so if you actually have an array and then you are iterating through the array so you have an index I or you have an element N that represents the element in the array so you'll be like okay on my first step the element N is the integer 1 and I want to say next step the element N is integer 2 and like keep doing this working on your head write it as command and it can be useful for test cases and it shows the interviewer that you are pretty serious about this and like you know how the code works you don't even know how to write code but you actually know how the whole thing is running okay so now visual alright so I'm going to quickly close out this talk um okay let's go on to my quick tips yeah the first tip is grades don't matter as much as you think so you guys know I've worked at these three companies the real question is my GPA 4.9 or is it 4.98 actually none of them have even asked me for my transcript none of these companies have ever asked me for my transcript some companies still ask but like so for the companies I have proof that I'm an NUS student they just believe my resume uh and that's fine because what they're looking for is someone who's capable and someone who is working on things that's outside things outside outside of school that proves that you are a competent person grades don't really show that because getting an A plus there are many people in this school that get an A plus and graduate with a really high GPA but what is it actually proved that you're smart the person who works at Google and yeah so no one is going to graduate that's exactly the point I wanted to bring across here school is still important though because what you learn in school is the most important thing to learn in school is how to learn and that's a really really important skill and the most important skill to have is to learn stuff well and fast to give an example here when you're working when you are going through the Facebook interview Facebook doesn't expect you to know everything in the world Facebook is a really really complex company there are so many things happening in fact when you join Facebook as a full-time engineer it takes you three months to even learn how Facebook works they have this boot camp that lasts three months and it takes three months to even learn how the technology works so you only get to pick your team after three months that's how complex the company is and when you go over an interview they aren't expecting someone that knows everything the interviews are optimized to find out someone who can learn quickly like these kind of really like somewhat hard questions but that you've never seen in your life before but the whole point of that is to see and test you when you're given a problem that you've never faced before how are you going to think and solve on a spot because when you work at a company like Facebook you're always seeing problems that no one else has seen before because Facebook 1.7 billion users they're going to hit like 2 billion users they're going to like hit problems that they've never seen before and that's what they are actually looking for hack on site projects so one thing that I always get is my resume is empty I mean I've done like some school projects and stuff how can I improve my resume this is the first thing I tell them work on stuff that's outside of school just for fun there are so many things that you can work you can make an iOS app to fix this problem you can make a website to do this just do a random site project just for fun whatever interests you if you're interested in picking up a new language other things that you can add on your resume just to show that hey I'm someone who's interested in all these things and I'm a really cool person as well and also if you publish them like open source on GitHub that's also a way for recruiters to see that you are someone who's awesome right if you have a GitHub profile with lots of projects and all these projects and lots of stars that's an awesome good signal to show that it's comfortable and they can just see your code right there itself keep improving so it's really hard to it's somewhat hard to get an internship especially an overseas internship if you are in your freshman year most companies they only try to take in people in the second and third year but you should still try as I've always been saying but if you don't get an internship it's fine you can always try for a local internship and even if you don't get that it's fine because you should tell yourself that I can always get better because I just had an interview and I filled the interview and I'm going to get better for my next interview making sure that next summer you will have an internship and you can always be improving that way and if that's what you want you can always get that and you can also do stuff like read articles I'm sure you've heard of Hacker News right like Hacker News is an awesome way to just be up to date on what's happening and the tech world out there what's the latest technologies out there what's the new JavaScript framework of this hour there's a new JavaScript framework like every hour so what's the latest one for this time and all this kind of stuff yeah and so make your summers next year's application in case you don't get one this summer and that's fine don't accept no for an answer like I said these companies they're optimizing to make sure we don't get any false negatives so they do reject people who are really really competent just because they made a small mistake and that's fine you should just try again and apply to more companies and just try your best for my first internship at Twitter when I was looking for internship at the time applied to 17 companies and 15 of them ignored me and only two of them replied and only one of them gave an interview so I basically had only one chance and that chance like luckily worked out another story I have is like I really wanted to work at Apple so Apple is the company that I wanted to work for almost nine years now and I've always wanted to work for them just to see how it's like to work at the company in the last years applied like four times always I get completely ignored and I don't know because I'm not from Stanford or MIT and my resume just gets ignored but it didn't really stop giving up and I was always looking for do I know someone who works at Apple can I get in through someone and this is what I actually did so this is the story of how I got into Apple one day I used Twitter a lot and I saw this treat this random guy he's actually an engineering manager in the Xcode team and he treated saying the Xcode team is hiring like apply here if you want to work at Apple and then I saw the treat and I just sent him saying he's actually looking for internship and because of the reply he found out my email address through my Twitter bio he sent me an email saying hey sure why didn't he send me a resume and just because the fact that my resume was sent to an actual engineer he referred me through their internal or a raffle system and I was confirmed an interview and through the interview I got into the company so there are many ways to get in you can hack your life in many ways and this is a hack as well trying to get into a company to get what you want this slide I'm just going to show it one more time just because of how important it is if you're interested in Silicon Valley the best time to apply is now right September October November December then by the time is December most of the company will stop taking it out again so best time to apply is right now and I think that is Chen Yang yeah do you want to talk Chen Yang he worked at Google Zurich which is in Switzerland and he's going to talk about what it's like to do an internship in