I think the news that I got the internship opportunity as software engineer at Google Sydney last winter (Australia’s winter starts on June) was quite shocking. I didn’t expect that I would get it.
Let’s dedicate this paragraph for Rakina. Rakina’s posts are amazing and inspired me to make this post 😛 Check her recent post about the FAQs, they’re really great! We are in the same year at uni. She’s also someone who made me know that there are also opportunities overseas, when I heard that she interned at Square last year. That’s fair: interviews are heavily coding-oriented and she’s bright af, she was the gold medalist on the national olympiad that I also participated on (me no medal. me no skill). Tl;dr, she’s awesome. How could I get internship (esp. at SV [Silicon Valley]) if I’m not as bright as her zzz. Well, folks. That’s what I thought last year (well, still). Don’t feel bad for ourselves. I know you can do it since… I could! *ads jingle here* (Anyway, she interned as SWE too at Google MTV last summer).
Pre-Rakina, I knew about the learning opportunity from my best friend, Lisa. There was a program called Indo2SV, where you could get mentorship from amazing Indonesians who work at SV in tech industry! Unlike Rakina who got the mentoring from the previous year, I failed miserably 😛 I wasn’t ready for any interview – both technical and non-technical. But Kak Gogo (Mz Gogo happy wedding yha!!), who was introduced as my best friend’s boyfriend’s best friend (err) who’s also a mentor at Indo2SV helped me a lot! I wasn’t even his responsibility but I want to thank him a lot for what he did… He mentored me from scratch: reviewed my resume, did mock interviews, and even kindly referred me to Facebook. I also want to thank Kak Veni for helping me! 😀
Resume. Don’t ever think writing the Indonesian-style CV where you put your date of birth, gender, religion (!), kindergarten, favourite food. Keep it simple, and if you’re an undergrad, it should be around 1 page. I once saw a (real!) resume that is 10-pages long, full with tables of the details of the projects. Quiet amusing. But no? My resume currently consists (by order):
- Name, email, phone number. I did put my address at first, but turns out it’s not like they’ll send you any offer letter via post let alone Hogwarts’ owl. I think your phone number area code (don’t forget to put +62 instead of 0!) already represent your current residence.
- Education: name of school (no high school or lower!), your major, GPA (if you’re confident with your GPA), and expected graduation date (if you’re applying for internship) or your graduation date. Some people write about what courses did they take, but I currently don’t. I write about my teaching assistant job and my scholarship.
- Experience. Put down your previous internship/job experiences here, if any. It’d be nicer if you put what you’ve achieved there rather than just what your responsibilities were.
- Projects and Achievements. It might be your side projects, school projects, or any of your projects that you thought were amazing. If you won competitions, put them too here! But don’t forget to keep them relatable. I’m proud to say that I won the 2nd place on cooking competition in my faculty and also chess competition, but I don’t think both would help me to get a software engineering job 😐 Last year, I put national informatics olympiad participant there but slowly there’re more things that I achieve. There’s always a room for improvement 😀
- Languages and Technologies. My friend said that if you put “Proficient at…” they’ll ask you scary things… I don’t think so, or maybe. or not. or yes. or. -_- But I was paranoid! So I just say “by order” and list the skills.
It’s not necessary to follow the order above. If you’re still an undergrad looking for internship, I heard that putting education on top is better. Then, it’s up to you, put the one that you’re proud of first.
- Do you need to put objective (e.g: looking for internship to gather experience, blabla)? I did, at first. But I’m leaving it since if we apply via website, we usually apply for specific position (internship? full time?). And people might know that you’re looking for internship from your graduation date.
- How about summary? In the beginning, Kak Gogo showed me a stellar resume, follow it. It has a summary section. It depends on what you’d like to write there- maybe you’re joining an organization? I wrote like my strength, organization, etc, but I’m not doing it now since I want to save the space for other stuff.
Useless fact: when I visited Grace Hopper Celebration of Woman in Computing last October, my friend noticed that people from US use Letter-sized paper while here in Indonesia (or Asia?) we often use A4-sized paper. For digital resume, I use both, it depends. I even sometimes adjust the height so that it’s neither Letter nor A4… Oops 😐
Mock interview. Really. Im. Por. Tant. You got a great resume, you got called by the recruiter and they set up a technical interview. Gosh, technical? These links from the signature of my recruiter’s email (LOL) might give you some idea: Preparing for an Engineering Interview, and Example of Coding Interview. I’ll dig another recruiters’ links 😛 Usually for internship, there’ll be 2-3 technical interviews, over the phone or on-site. For Google, I did 3 interviews, I thought it was because my 2nd wasn’t that good. My 3rd interviewer was really nice! And turns out I sat on his desk *_* He was also on my then-team, but he quit 3 weeks before my start date.
I facepalm myself whenever I remember about my mock interviews with Kak Gogo. All of them are disaster… No hire. And I always cough and throw up (yes. I know someone who also threw up before the interview 😛 We did an on-site interview together and we wanted to vomit while waiting for the interviewer LOL) because I was anxious. We took some notes from the mock interviews:
- Don’t put your program on main function. Make them modular. Make them testable.
- Explain how you’d approach the problem, +bonus if you try with a sample case. Don’t rush to code, by giving the explanation, the interviewer can give you insights and might spot flaws. If you code before even explaining anything, it’d be a mess if turns out you missed something. So far, other than my good handwriting on whiteboard coding interview (yes), the (mock) interviewers said that it’s nice that I first explain and try with sample cases.
- In addition to the “dont-rush-to-code”: clarify things. You might get too anxious or too excited when the interview begin and the interviewer ask you the question, but remember to clarify things. I think I remember reading this scenario somewhere (Cracking the Coding Interview, maybe?):
- Sort a list of numbers.
- You could answer like “OK I’ll use quick sort to do that” or “I’ll use Arrays.sort for that”, but there could be something, like, what if the numbers are ages? And we know that ages are integer and we could say the range is 0 to 150. And then… you can see that things are going better in terms of complexity right? 😀
- My problem in whiteboard coding-interview: naming variables. Most of my whiteboard-based mock interviewers said that I should write more descriptive names rather than abbreviating those. But it’s not a big deal for me for computer-based coding interview since typing is much faster. My recent feedback was also to use the conventions: use capital letters to name constants, etc.
- Find edge cases. Test your code after coding. If you are doing the interview on a collaborative IDE (instead of just a Google Doc/ notepad) which has a “compile” feature, usually you’re expected to code a runnable code. But Kak Gogo said that you shouldn’t take the compile button for granted! I think clicking it, error, fix, clicking it again, error, etc is a red flag. Test for bugs and syntax errors.
Kak Gogo suggested LeetCode easy to medium difficulty. There are a lot of resources if you want to start: HackerRank, CareerCup, InterviewBit, etc. I heard people also do CodeForces but I haven’t try to learn from there yet.
For mock interview with real people, I’d love to recommend Pramp! For me, it’s like… “Scheduled Omegle for Technical Interview” (heh). There, you’ll be paired with someone, and you’ll take turn as interviewer and interviewee with them. Pramp will provide you the questions. I did 35 mock interviews there from November last year LOL. I should say it helped me a lot. I get more confident, and because there are a lot of people you interact with, you’ll get a lot of feedbacks. Yeah, we need to give and will get feedbacks too from our peer. It’s free. Kudos for the dev!
If you get someone that could help you for the mock interview, you’re very lucky! 😀 I was really lucky that Kak Gogo helped me. When I was in the conversion process to full time employee at Google (so, the interns need to do interview again to become a full time employee), there were a lot of people that helped me to do mock interviews. I did mock interviews everyday, sometimes several times a day. They also helped me to ask another person to help me for the mock interviews! I was so touched that I promise to myself that I wouldn’t let them down, since I took their precious time. One of my reviewers was also someone who I often do mock interview with, LOL. He was taking the interviewer training on the last day of my internship. Hello, I’m hoping the best for you! 😀
Cracking the Coding Interview book is also a good read. There are a lot of questions and approaches there. A friend of mine once said that “reading the book is cheating because it doesn’t show your true skill” no no no. Even recruiters recommend the book. The book will help you to approach and solve the problems, it’s not like you memorize the questions and hoping that it’d came out on the interview. You’ll still need your problem-solving skill! Don’t waste the company’s time. Don’t waste your resume by bombing the interview. By the way, if you already heard or solve a problem that the interviewer ask you, tell them that you’ve already heard/solve it. Because that’s the point of a technical interview, to test your problem solving skill. I once did this. I’ve heard the problem and the approach, but I haven’t solve that. I told the interviewer that “I’ve heard this question, but I haven’t solve it.” I was scared because it’s like “damn why does this problem come out, heard of it but haven’t solve it yet :(” But what happened? He thanked me for letting me know and changed the question! (not because I told him that I haven’t solve it, I guess. Zz) It was easier (he. he.) Honesty is number one!
I think Rakina’s post covered many non-algorithm questions. Weirdly, I rarely got that kind of questions for internship interviews. But you should prepare too!
Another thing that terrify me other than technical interview is… non-technical questions. Duh. Like, “Tell me about yourself”. Arghghghghghgh!!! Even that simple question! I used to prepare cheatsheet for those kind of questions but I started reading like a robot when answering the question. So.. practice. 😐 I’m not an expert on this, I’m too awkward 😛
How do you apply? You could check the career page of the company’s website, or if you got referral, that’s really nice! Kak Gogo referred me to Facebook (which the 2nd interview I didn’t pass. Sorry.) For Google, I applied at their career page. Currently they are opening internship opportunities for Google Singapore, Sydney, and Tokyo. Check it out! 😀
Here comes the egg and chicken problem. If I want to get a job, I should get an experience, which might be a job. (continue…) How could we start?
I started with doing projects, competitions, and internships in Indonesia.
When I was in first year, I was a part of aWPacil (read our story in Bahasa here! :-P) We developed games and Windows Phone Apps, some of them even won awards 😀 That was a good start (and fun!).
One day, there was an event called “Summer Camp” in my faculty. We could drop our CV there. I was interested in Kudo, and therefore dropped my CV there. I was contacted the next day for Android Developer internship position. OK. This is wrong. I didn’t have any Android experience before. Windows Phone, yes. Web development, yes. I was confused, but decided to give it a try. I let go my semester break for the internship, but it was totally worth it!! It made me realize that I love to work! The internship program itself was really fun, the company culture is awesome, I met and learned from a (and played board game with a) lot of great people! Becoming a Kiddo (Kudo intern) is obviously one of the best experience I’ve ever had 😀 Check out their career page here!
Thanking Kudo for giving me Android experience, I took a part time job as software engineer at a startup. I worked there for 3 months but I did a lot of Android (and web, previously) projects there, which I enjoy and good enough to put on my resume. I did that during the semester. It took my whole weekends, but it was a huge career experience for me. Android experiences in Kudo and this startup led me to become the head of mobile app development group in my faculty (I should say it’s not because I’m confident that I’m that smart but it’s because I wanted to learn along).
Last January, I interned at Tokopedia. The interview format is same- resume screening, technical interviews. I heard that now they give out online coding challenge before they decide to move on to the on-site interview. The internship was awesome! I got a lot of new experience there. Unlike the previous jobs, we, the interns in my team, also involved in the daily delivery. Things move so fast here!
So many things that I did until I eventually get the Google opportunity. There’s no easy way. I once talked to Mas Albert, CEO of Kudo about the overseas opportunity. He said as an international student, I should do much better. Perform better. Yep, it’s easier for the company to hire people from their own country (think about the visa, relocation, and stuff that they should cover!) and therefore, we need to prove them that we are worth to hire.
I remember I asked Rakina last year about tips for me. She said “rejection is usual and I shouldn’t have a hard feeling on it”. I applied to asdfghjkl numbers of companies, I got a lot of rejections. I remember my first rejection email was from Autodesk. Err, I should say that it was before my enlightenment era (a.k.a much practice, resume building). But even after the so-called enlightenment era I still got a lot of rejections. 😛 That’s totally normal!
It’s never too late too start! Well, sorry, but you could be late to apply, so apply from now on if you want to get internship for next summer! For 1st and 2nd year students, don’t hesitate to start 😀
Let me know if there’s something that I could help! This post is freaking long, but I hope you enjoy the post. Good luck! 😀