├── .gitignore ├── images └── A2.png ├── font ├── productSans.woff2 ├── SF-Pro-Text-Bold.otf ├── SF-Pro-Text-Heavy.otf ├── SF-Pro-Text-Light.otf ├── SF-Pro-Text-Medium.otf ├── SF-Pro-Text-Regular.otf ├── SF-Pro-Text-Semibold.otf ├── SF-Pro-Text-BoldItalic.otf ├── SF-Pro-Text-HeavyItalic.otf ├── SF-Pro-Text-LightItalic.otf ├── SF-Pro-Text-MediumItalic.otf ├── SF-Pro-Text-RegularItalic.otf └── SF-Pro-Text-SemiboldItalic.otf ├── css └── main.css ├── README.md └── index.html /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | .idea 3 | -------------------------------------------------------------------------------- /images/A2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arora-aditya/google-technical-interview-workshop/HEAD/images/A2.png -------------------------------------------------------------------------------- /font/productSans.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arora-aditya/google-technical-interview-workshop/HEAD/font/productSans.woff2 -------------------------------------------------------------------------------- /font/SF-Pro-Text-Bold.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arora-aditya/google-technical-interview-workshop/HEAD/font/SF-Pro-Text-Bold.otf -------------------------------------------------------------------------------- /font/SF-Pro-Text-Heavy.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arora-aditya/google-technical-interview-workshop/HEAD/font/SF-Pro-Text-Heavy.otf -------------------------------------------------------------------------------- /font/SF-Pro-Text-Light.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arora-aditya/google-technical-interview-workshop/HEAD/font/SF-Pro-Text-Light.otf -------------------------------------------------------------------------------- /font/SF-Pro-Text-Medium.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arora-aditya/google-technical-interview-workshop/HEAD/font/SF-Pro-Text-Medium.otf -------------------------------------------------------------------------------- /font/SF-Pro-Text-Regular.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arora-aditya/google-technical-interview-workshop/HEAD/font/SF-Pro-Text-Regular.otf -------------------------------------------------------------------------------- /font/SF-Pro-Text-Semibold.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arora-aditya/google-technical-interview-workshop/HEAD/font/SF-Pro-Text-Semibold.otf -------------------------------------------------------------------------------- /font/SF-Pro-Text-BoldItalic.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arora-aditya/google-technical-interview-workshop/HEAD/font/SF-Pro-Text-BoldItalic.otf -------------------------------------------------------------------------------- /font/SF-Pro-Text-HeavyItalic.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arora-aditya/google-technical-interview-workshop/HEAD/font/SF-Pro-Text-HeavyItalic.otf -------------------------------------------------------------------------------- /font/SF-Pro-Text-LightItalic.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arora-aditya/google-technical-interview-workshop/HEAD/font/SF-Pro-Text-LightItalic.otf -------------------------------------------------------------------------------- /font/SF-Pro-Text-MediumItalic.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arora-aditya/google-technical-interview-workshop/HEAD/font/SF-Pro-Text-MediumItalic.otf -------------------------------------------------------------------------------- /font/SF-Pro-Text-RegularItalic.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arora-aditya/google-technical-interview-workshop/HEAD/font/SF-Pro-Text-RegularItalic.otf -------------------------------------------------------------------------------- /font/SF-Pro-Text-SemiboldItalic.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arora-aditya/google-technical-interview-workshop/HEAD/font/SF-Pro-Text-SemiboldItalic.otf -------------------------------------------------------------------------------- /css/main.css: -------------------------------------------------------------------------------- 1 | .blog-heading { 2 | font-size: 3em !important; 3 | font-family: 'SF-Pro-Text-Regular', sans-serif; 4 | margin-right: 1em; 5 | overflow: hidden; 6 | } 7 | 8 | /*General --------------------------------------------------------------*/ 9 | #page-wrap { 10 | max-width: 1000px; 11 | margin: 0 auto; 12 | } 13 | 14 | 15 | /*Fonts --------------------------------------------------------------*/ 16 | @font-face { 17 | font-family: 'SF-Pro-Text-Regular'; 18 | src: url("../font/SF-Pro-Text-Regular.otf") format("opentype"); 19 | } 20 | 21 | @font-face { 22 | font-family: 'productSans'; 23 | src: url("../font/productSans.woff2") format("woff2"); 24 | } 25 | 26 | @font-face { 27 | font-family: 'SF-Pro-Text-Medium'; 28 | font-weight: bold; 29 | src: url("../font/SF-Pro-Text-Medium.otf") format("opentype"); 30 | } 31 | 32 | .body { 33 | font-family: 'SF-Pro-Text-Regular', sans-serif; 34 | font-weight: 300; 35 | font-size: 15px; 36 | line-height:30px; 37 | margin-top: 1%; 38 | } 39 | 40 | .header { 41 | font-family: 'SF-Pro-Text-Medium', sans-serif; 42 | font-size: 30px; 43 | } 44 | 45 | .header2 { 46 | font-family: 'SF-Pro-Text-Medium', sans-serif; 47 | font-size: 25px; 48 | } 49 | 50 | .caption { 51 | font-family: 'SF-Pro-Text-Regular', sans-serif; 52 | text-align: center; 53 | } 54 | 55 | .fixed { 56 | position: fixed; 57 | font-size: 24px!important; 58 | z-index: 100; 59 | padding-top: 20px; 60 | padding-left: 20px; 61 | } 62 | 63 | .fixed:hover { 64 | color: #ff9683!important; 65 | } 66 | 67 | .fa { 68 | color: #999; 69 | } 70 | 71 | .underline { 72 | border-bottom: 1px solid #ff9683; 73 | padding-bottom: 2px; 74 | } 75 | 76 | a.underline:hover { 77 | color: #ff9683 !important; 78 | } 79 | 80 | a { 81 | text-decoration:none !important; 82 | color: inherit !important; 83 | -webkit-transition: color 0.5s; 84 | transition: color 0.5s; 85 | } 86 | 87 | a:hover { 88 | color: #ff9683; 89 | } 90 | 91 | a.highlight { 92 | position:relative; 93 | text-decoration: none; 94 | color: #333; 95 | } 96 | 97 | .highlight:before{ 98 | width:100%; 99 | height:10px; 100 | position:absolute; 101 | left:0px; 102 | bottom:-4px; 103 | content:""; 104 | display:block; 105 | background-color: #ff9683; 106 | z-index:-1; 107 | opacity: 1; 108 | -webkit-transition: height 0.5s; 109 | transition: height 0.5s; 110 | } 111 | 112 | a.highlight:hover{ 113 | color: inherit !important; 114 | } 115 | 116 | a.highlight:hover:before { 117 | color: #ff9683; 118 | background-color: #ff9683; 119 | height:25px; 120 | } 121 | 122 | a:visited { 123 | color: inherit!important; 124 | } 125 | 126 | /*Padding --------------------------------------------------------------*/ 127 | 128 | .pad-s { 129 | margin-bottom: 25px; 130 | } 131 | 132 | .fa { 133 | margin-right: 15px; 134 | } 135 | 136 | 137 | div.item { 138 | vertical-align: top; 139 | display: inline-block; 140 | text-align: center; 141 | width: 100%; 142 | } 143 | img { 144 | width: 100%; 145 | background-color: grey; 146 | } 147 | 148 | 149 | /*Footer --------------------------------------------------------------*/ 150 | .footer { 151 | text-align: center; 152 | padding-top: 20px; 153 | padding-bottom: : 20px; 154 | padding-left: 0px; 155 | padding-right: 0px; 156 | } 157 | 158 | .footer-bg { 159 | background-color: #FFFFFF; 160 | height: 70px; 161 | } 162 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Google Technical Interview Workshop 2 | @GoogleStudents 3 | 4 | If you wanna skip reading a first year freaking out about seeing google employees for the first time in his life skip to [here](https://github.com/arora-aditya/google-technical-interview-workshop#googlers-from-mountain-view) 5 | ## Pre Pre Workshop 6 | Just spoke to one of the people presenting and I asked him to give me some feedback on my resume. He gave me his personal email id and told me that he was 200 emails behind....He told me to remind him if he does not respond within a week. Aaaaaaaaaaaaaa I'm going crazy by the hype 7 | 8 | ## Pre Workshop 9 | It's 6:50 pm and the room is fairly very empty. At this time we have one pizza box per person. 10 | 11 | We just saw the shit ton of google stickers, socks and diaries that we're gonna get. Tons of Pizza and drinks. It's gonna be a good night 12 | 13 | 6:55pm: 5 minutes later, people are starting to pour in and it's gonna be hype 14 | 15 | It's 6:57 I am gonna help them layout some swag 16 | ## Workshop.... 17 | 18 | It's 7:04 a shit ton of people turned up, I missed out on coke and some pizza but it's alright since I helped people from GOOGLE at laying out their swag 19 | Got some recognition y'all!! Whoop Whoop 20 | 21 | Got some pre workshop swag....just a sticker and an android keychain!! But it's enough to raise the hype to extreme! 22 | 23 | It's started now, 24 | 25 | [Caitlin McDonough](https://www.linkedin.com/in/caitlin-mcdonough-b82b9213/): Google Waterloo, ON, Canada, University Specialist; gets to come to Uni often. 26 | 27 | ## GOOGLERS: from Mountain View 28 | 29 | [Rosanne Borja](https://www.linkedin.com/in/rosanneborja): Analytics team, Front End graduated four years ago from Software Engineering UWaterloo in 2013 30 | 31 | [James Kunz](https://www.linkedin.com/in/jameskunz/): Software Engineer at Google Computer Engineering graduate from UWaterloo, Deep Learning Team in Search 32 | 33 | ### Resume 34 | - GPA: Not everything but an indication of success at Google 35 | - Apply to both WaterlooWorks and Google website also 36 | - Talk about end result over how you did it 37 | 38 | #### Designed, Implemented, Configured 39 | Accomplished X by doing Y using Z. Assign metric and it improves your story 40 | 41 | - Demonstrate how used techincal skills to solve real world problems and improve your efficiency 42 | - Leadership and team-work skills are key 43 | 44 | # Interview 45 | 46 | ## Steps for applying: 47 | 1. Apply at google students 48 | 2. Coding sample(unlimited tries for trial of the software) and Snapshot survey (90 minutes for coding sample and 15 minutes Snapshot Survey) 49 | 3. 2 - 3 phone screens: Shared google doc as interview white board 50 | 4. Engineering Review and Host Match 51 | 5. Hiring Committee Review 52 | 6. Offer 53 | 54 | ## Course Syllabus? 55 | 1. Data Structures 56 | 2. Algorithms 57 | 3. Analysis of your code (time/space complexities) 58 | 59 | ## Preparing for technical interviews 60 | Practice makes perfect and is never enough 61 | 62 | Do your homework, be willing to do it upfront 63 | 64 | The interviewer is just checking if you did it (it being your homework) 65 | Do not use pseudo code for the actual interview 66 | 67 | Moving the cursor on the shared google doc (Courier New font - best for code) when someone is staring down on it is scary af, even the whiteboard is scary af. So prepare by practicing, practice under time pressure, it shouldn't kill you 68 | 69 | Tell them about the Internship you want to take(if it's ML/AI) tell them, be sure to tell them 70 | 71 | Information is not shared between interviewers to ensure transparency and avoid any biases 72 | 73 | Charge phone for the phone interview, get a headset if possible, get pen and paper ready, think out loud so that the interviewer knows that you haven't just gone blank 74 | 75 | ## The interview 76 | - Tell them the shitty brute force solution that you come up with. 77 | - Leave extra space on the whiteboard 78 | - Keep track of the time in the interview 79 | 80 | Most interviews are: Standard CS algorithms question hidden away in a dark corner, so don't be afraid 81 | 82 | ## Common Mistakes 83 | 1. Immediately jumping into code is bad, we want to know how you came up to it and not just what the solution is 84 | a. Can help if you are going down the wrong path that will waste your time 85 | 2. Not testing 86 | a. Discuss testing verbally 87 | 88 | b. Edge case think 89 | 90 | c. Simple case 91 | 92 | d. Analyze complexity (Time and Space) 93 | 94 | e. Don't waste too much time running a lot of examples 95 | 96 | 3. Writing in pure pseudocode 97 | a. I am using this helper function, do I implement here? or is it ok 98 | 4. Force fitting a solution 99 | a. Listen to the fuckin interviewer, he's helping you 100 | 5. Premature optimization 101 | a. Get your brute force solution up and working before worrying about 102 | b. Sometimes brute force may be the only solution, so don't be afraid to say it 103 | 6. Not asking what is to be optimized for before actually coding 104 | 105 | # Know about Hash Map: Needs to be known to do anything in CS 106 | 107 | Are you thinking about your ideas clearly/CRISPLY and are you able to unfold it and explain it to the interviewer 108 | 109 | Communicate with the interviewer when thinking, don't just stare, tell me what you're thinking. I don't know is a valid response it shows that you didn't get it but are still not afraid to ask questions. The GOOGLE engineer interviewing you is not flawless, they're your helper and you want to guide them through how you are thinking about the problem. 110 | 111 | Whenever they speak to you, think....Are they giving you a hint?, are they pointing you towards an edge case? Don't just blankly ignore them 112 | 113 | They might help with you the initial hurdle and maybe even help you calm down so that you can perform better. 114 | 115 | # PRACTICE PROBLEM: WIGGLE SORT 116 | 117 | Sort an array of number u = [u1, u2, ..... uN] so that the sorted version is [s1, s2, .....sN] 118 | the following wiggly inequalities apply s1 <= s2 >= s3 <= s4 ...... 119 | If you get this solution really quickly the interviewer might impose these challenges on you: 120 | - Huge upper bound on size of array 121 | - The array elements are doubles 122 | - Can you prove that there is not a better way to do it? 123 | - Can you parallelize it, and does it improve the efficiency? AS IN DO YOU OPTIMIZE THE BOTTLENECK 124 | 125 | Express your optimization in a way that helps bring out the factors you want to optimize 126 | 127 | You're not looking for that perfect solution, we want to know if you can structure your code in some sane way. Syntax is secondary, closing brackets, semi colons are secondary. 128 | 129 | Other than Leetcode, Hackkerank, pramp.com is another great website that offers mock whiteboard interviews and is highly recommended. 130 | 131 | # Closing: 132 | Holy shit did I get tons of Google merch. Stickers, Notebooks, keychains, socks...you name it 133 | I also got to speak to Caitlin, and I asked her on resume tips after which she informed me of a follow up email coming up soon, that would include an article from Google's former SVP of People Operation, whose name she didn't mention but I prompted and confirmed that is was none other than Lazlo Bock. Coming back to the email, she said it would include the link to an article of his on how to structure your resume bullets for the best result. 134 | 135 |  136 | 137 | Here are the links from the email: 138 | - [Techinal Resume Tips with Google Recruiters](https://www.youtube.com/watch?v=ZjeXxLnnH5I) 139 | - [How to show 'Project Work' on a resume](https://www.youtube.com/watch?v=HcNr23p-92U) 140 | - [Personal Formula for a Winning Resume](https://www.linkedin.com/pulse/20140929001534-24454816-my-personal-formula-for-a-better-resume/) 141 | - [Google's Updated Tech Dev Guide](https://g.co/techdevguide) 142 | - [Former Google interview questions](https://techdevguide.withgoogle.com/resources/?types=coding-interview-question) 143 | -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 | 5 | 6 | 7 | 12 | 13 | 22 | 23 | 24 | 25 |
45 | Back
46 |
56 |
57 | If you wanna skip reading a first year freaking out about seeing google employees for the first time in his life skip to here
58 |
Pre Pre Worksop
60 | 61 |62 | Just spoke to one of the people presenting and I asked him to give me some feedback on my resume. He gave me his personal email id and told me that he was 200 emails behind....He told me to remind him if he does not respond within a week. Aaaaaaaaaaaaaa I'm going crazy by the hype 63 |
64 |65 | Pre-Workshop 66 |
67 |
68 | It's 6:50 pm and the room is fairly very empty. At this time we have one pizza box per person.
69 |
70 | We just saw the shit ton of google stickers, socks and diaries that we're gonna get. Tons of Pizza and drinks. It's gonna be a good night
71 |
72 | 6:55pm: 5 minutes later, people are starting to pour in and it's gonna be hype
73 |
74 | It's 6:57 I am gonna help them layout some swag
75 |
77 | Workshop.... 78 |
79 |
80 | It's 7:04 a shit ton of people turned up, I missed out on coke and some pizza but it's alright since I helped people from GOOGLE at laying out their swag
81 | Got some recognition y'all!! Whoop Whoop
82 |
83 | Got some pre workshop swag....just a sticker and an android keychain!! But it's enough to raise the hype to extreme!
84 |
85 | It's started now,
86 |
87 | Caitlin McDonough: Google Waterloo, ON, Canada, University Specialist; gets to come to Uni often.
88 |
90 | GOOGLERS: from Mountain View 91 |
92 |
93 | Rosanne Borja
94 | : Analytics team, Front End graduated four years ago from Software Engineering UWaterloo in 2013
95 | James Kunz
96 | : Software Engineer at Google Computer Engineering graduate from UWaterloo, Deep Learning Team in Search
97 |
99 | Resume 100 |
101 |
102 | - GPA: Not everything but an indication of success at Google
103 | - Apply to both WaterlooWorks and Google website also
104 | - Talk about end result over how you did it
105 |
107 | Designed, Implemented, Configured 108 |
109 |
110 | - Demonstrate how used techincal skills to solve real world problems and improve your efficiency
111 | - Leadership and team-work skills are key
112 |
114 | Interview 115 |
116 |117 | Steps for applying: 118 |
119 |
120 | 1. Apply at google students
121 | 2. Coding sample(unlimited tries for trial of the software) and Snapshot survey (90 minutes for coding sample and 15 minutes Snapshot Survey)
122 | 3. 2 - 3 phone screens: Shared google doc as interview white board
123 | 4. Engineering Review and Host Match
124 | 5. Hiring Committee Review
125 | 6. Offer
126 |
128 | Course Syllabus? 129 |
130 |
131 | 1. Data Structures
132 | 2. Algorithms
133 | 3. Analysis of your code (time/space complexities)
134 |
136 | Preparing for technical interviews 137 |
138 |
139 | - Practice makes perfect and is never enough
140 |
141 | - Do your homework, be willing to do it upfront
142 |
143 | - The interviewer is just checking if you did it (it being your homework)
144 | - Do not use pseudo code for the actual interview
145 |
146 | - Moving the cursor on the shared google doc (Courier New font - best for code) when someone is staring down on it is scary af, even the whiteboard is scary af. So prepare by practicing, practice under time pressure, it shouldn't kill you
147 |
148 | - Tell them about the Internship you want to take(if it's ML/AI) tell them, be sure to tell them
149 |
150 | - Information is not shared between interviewers to ensure transparency and avoid any biases
151 |
152 | - Charge phone for the phone interview, get a headset if possible, get pen and paper ready, think out loud so that the interviewer knows that you haven't just gone blank
153 |
155 | The interview 156 |
157 |
158 | - Tell them the shitty brute force solution that you come up with.
159 | - Leave extra space on the whiteboard
160 | - Keep track of the time in the interview
161 |
162 | Most interviews are: Standard CS algorithms question hidden away in a dark corner, so don't be afraid
163 |
165 | Common Mistakes 166 |
167 |
168 | "we" in the following paragraph refers to the interviewers from google
169 | 1. Immediately jumping into code is bad, we want to know how you came up to it and not just what the solution is
170 | - Can help if you are going down the wrong path that will waste your time
171 | 2. Not testing
172 |
173 | - Discuss testing verbally
174 |
175 | - Edge case think
176 |
177 | - Simple case
178 |
179 | - Analyze complexity (Time and Space)
180 |
181 | - Don't waste too much time running a lot of examples
182 |
183 | 3. Writing in pure pseudocode
184 | - I am using this helper function, do I implement here? or is it ok
185 | 4. Force fitting a solution
186 | - Listen to the damn interviewer, he's helping you
187 | 5. Premature optimization
188 | - Get your brute force solution up and working before worrying about
189 | - Sometimes brute force may be the only solution, so don't be afraid to say it
190 | 6. Not asking what is to be optimized for before actually coding
191 |
193 |
Know about Hash Map: Needs to be known to do anything in CS194 | 195 |
196 | What are the interviewers actually trying to see? 197 |
198 |
199 | Are you thinking about your ideas clearly/CRISPLY and are you able to unfold it and explain it to the interviewer
200 |
201 | Communicate with the interviewer when thinking, don't just stare, tell me what you're thinking. I don't know is a valid response it shows that you didn't get it but are still not afraid to ask questions. The GOOGLE engineer interviewing you is not flawless, they're your helper and you want to guide them through how you are thinking about the problem.
202 |
203 | Whenever they speak to you, think....Are they giving you a hint? are they pointing you towards an edge case? Don't just blankly ignore them
204 |
205 | They might help with you the initial hurdle and maybe even help you calm down so that you can perform better.
206 |
208 | PRACTICE PROBLEM: WIGGLE SORT 209 |
210 |211 |
Sort an array of number u = [u1, u2, ..... uN] so that the sorted version is [s1, s2, .....sN] the following wiggly inequalities apply s1 <= s2 >= s3 <= s4 ...... 212 |213 | 214 |
215 | If you get this solution really quickly the interviewer might impose these challenges on you:
216 | - Huge upper bound on size of array
217 | - The array elements are doubles
218 | - Can you prove that there is not a better way to do it?
219 | - Can you parallelize it, and does it improve the efficiency?
AS IN DO YOU OPTIMIZE THE BOTTLENECK?220 | 221 |
222 | Express your optimization in a way that helps bring out the factors you want to optimize
223 |
224 | You're not looking for that perfect solution, we want to know if you can structure your code in some sane way. Syntax is secondary, closing brackets, semi colons are secondary.
225 |
226 | Other than LeetCode , HackkeRank,Pramp.com is another great website that offers mock whiteboard interviews and is highly recommended.
227 |
229 | 230 |
231 |232 | Closing 233 |
234 |235 | Holy shit did I get tons of Google merch. Stickers, Notebooks, keychains, socks...you name it 236 | I also got to speak to Caitlin, and I asked her on resume tips after which she informed me of a follow up email coming up soon, that would include an article from Google's former SVP of People Operation, whose name she didn't mention but I prompted and confirmed that is was none other than Lazlo Bock. Coming back to the email, she said it would include the link to an article of his on how to structure your resume bullets for the best result. 237 |
239 | Here's the email
240 | 243 | Here are the links from the email: 244 |
245 |
246 | - Techinal Resume Tips with Google Recruiters
247 | - How to show 'Project Work' on a resume
248 | - Personal Formula for a Winning Resume
249 | - Google's Updated Tech Dev Guide
250 | - Former Google interview questions
251 |