Before writing this post, I re-read my previous “Interview Highlights” posts and was amazed at how chill and naïve I was during previous terms’ interviews. I cringed a bit when rereading some of my past conversations with interviewers, pondering to myself what the interviewers must have thought during those conversations. I was also amazed by the amount of overt disrespect some interviewers showed, and by my lack of response. Maybe the proportion of rude : non-rude interviewers are higher for co-op interviews compared to full-time interviews?
There were several differences between this terms’ interviews compared to previous terms’. First, I rarely joked and acted more seriously. After all, the purpose of interviews is not to have fun or to chitchat; the purpose is to secure a job. It’s still good to have fun and joke so long as they don’t interfere with getting the job. I also asked more in-depth questions and was more aware of not only how I conducted myself during the interview, but also how interviewers conducted themselves. In the past, I didn’t have much expectations about how the interview process should go, but now, I do. I expect:
- the job position contains meaningful work, not ad-hoc work that a first-year student can do. The position should also match the job title. Eg, if the job title is Embedded Engineering, I expect to work with embedded software, not web development.
- to be asked non-trivial technical questions. Let’s avoid asking generic questions intended for beginners like “What’s polymorphism?” without following up with more complex questions (eg, “how does polymorphism affect runtime performance?”). Also, please don’t mechanically scroll down my resume, asking bullet point after bullet point just to kill time or to test me. A pet peeve, please don’t just give me two sheets of paper filled with a dozen questions and have me write my answers on them. I’m applying for a job, not writing a test.
- respectful interviewer(s) who have already read my resume. (Yes, believe it or not, there are interviewers who didn’t even read candidates’ resumes! You can tell based on the type of questions they ask. People, we students have midterms to cram for – every minute counts – please don’t waste our time like this. In my experience, most interviewers are respectful, but every once in a while, you meet interviewers who are so full of themselves that they don’t even bother greeting the candidate after the candidate greets them and shake hands. Rarely, interviewers are downright rude: interrupting candidates with questions the candidate literally just answered or is in the process of answering, blindly reading questions off a list, showing no interest in the candidate at all, and even checking their phone or yawning. It’s easy to be respectful: just don’t be a jerk and don’t waste time).
- interviewers to have much more technical experience than me. Generally, if the sole interviewer is a recent grad with only 1-2 yrs of experience, or a product manager without technical experience, then that raises red flags about the technical requirements of the position.
In previous terms, I applied to many US-based companies, especially those with strong brand names. This term, I applied mostly to embedded/firmware positions, largely ignoring the company’s location and brand (unless it had a hostile brand, such as one commonly used ride-sharing company). I’m grateful that although I haven’t worked much with embedded systems in past co-op terms, employers still interviewed me for their positions. Here are some interesting highlights, both positive and negative:
- Having six interviews and a midterm on the same day. It was a tough day
- One interviewer arriving 40mins late for an interview. It turned out this was a black swan event (don’t worry, nobody got hurt!). Needless to say, we re-scheduled the interview to a later time. Everything worked out well
- Interviewer (paraphrasing): “It seems like you have a strategy for doing well on co-op evaluations. What’s your strategy?”
Me: “That’s a trade secret.”
- One interviewer literally rocking back and forth on his chair and shaking his leg vigorously while I was answering the other interviewer’s question. Sure, my response was poorly organized and they likely rejected me because of that. Likewise, they also made it easier for me to reject them.
- One interviewer was unusually rude. Among his rude behaviours, the highlight was when he asked me to write down the outcome of a function. I tried several times and each time he told me to “look closer”. Finally, I realized there was a mistake in his function. Upon telling him this, he looked at me smugly, “I never said the function was correct”. I later asked him what project the successful candidate would work on. He said he didn’t know. I then asked him what previous co-ops learned working at the company. He laughed, “I don’t know, I hope they learned something.”
- Having a phone interview in which the interviewer was likely walking outside (could hear wind in the background) and me verbally telling him the code for implementing an algorithm. Interesting experience
Since the start of university, I’ve had 70+ interviews, but I still feel nervous every time I walk into the interview room. There’s always uncertainty about whether the interviewer would like you, how well you stack against your competition, and that a short 1-hour performance could determine where you work next term. Here are some tips based on my interview experience, some of which were learned the hard way:
- Previous work experience in the industry and prior knowledge matters a lot
- First impressions matter a lot
- For application development, practice algorithms (BFS/DFS, LCA, DP, Graph, etc.). For embedded development, practice C, bit manipulations, and memory layouts. If you’re stuck on a technical question, feel free to ask for tips
- Some interviewers have superiority complexes. If they start acting rude, feel free to tell them that you’re no longer interested in the position. Thank them for their time and leave. If you’re really upset, you can straight-up tell them that their behaviour is unacceptable and then leave
- Some interviewers are very nice and compassionate. You can tell that they want you to succeed at their interview. In these cases, you will likely get an offer
- Always write cover letters. Unless the position explicitly says there’s no need to write cover letters, ALWAYS write one.
- Don’t listen to the advice that resumes must be 1 page max. Most people don’t know what they’re talking about. If you can fill 2 pages with meaningful content, do so. Do expect that the interviewer may skip the second page so place the important information on the first page. If your second page is filler content, it’s better to go with 1 page
I’ve been asked quite a number of technical questions. Some were easy, some were hard, some I failed epically to solve. In any case, these are the most memorable ones. In no particular order:
- Implementing polymorphism in C
- Implementing memcpy but for bits
- Given coordinates of the vertices of two rectangles, find their overlapping area. TBH, I’m not sure how someone could come up with a full implementation in 25mins without having known this problem beforehand. UPDATE: After some googling, it turns out the solution was literally just a couple lines of code. I feel silly now
- Implementing linked list, stacks, and traversals, and standard functions like atoi and strcpy in C
- Given two extremely large numbers that don’t fit into any primitive number types, find their product
Overall, this was an informative interview cycle. I learned more about the industry, gained more experience interviewing, and learned more about embedded development. After this co-op term, we would have one more co-op opportunity left, after which comes graduation and full-time work. Time passes by so quickly.