After a long recruitment season, I have finally signed an offer for a SWE internship with Pinterest. This year, I am truly blessed to have received SWE internship offers from Lyft, Pinterest, Bytedance (TikTok), and Program Manager internship with Microsoft, although I only started to prepare for SWE roles in late September. I am writing this article not to brag, but to give honest reflections about strategies that worked and mistakes that I wish were avoided. Hopefully, this can help other job-seeking students make fewer detours along the way. Free feel to choose the sections that might help you.
Why SWE? And why did I start preparing quite late?
I enjoyed coding but never saw myself as a software engineer. I was attracted to learning about the tech industry but envisioned roles in investments and consulting. Though I interviewed and attended several Superdays for top finance and consulting firms last year, due to the shrinking demands for such interns and changes in visa sponsorship policies, I received very few interviews this year. I started preparing for product management interviews last summer, learned about how technical skills were valued at some firms even for PM roles, so started to prepare for SWE positions after receiving an interview invitation from Facebook in late September.
What was the application timeline like?
I wrote my first version of my tech resume in sophomore fall and kept perfecting it with new experiences. Most companies rejected me over the early versions that I submitted but was lucky to join Pinterest’s lowerclassmen program. (More on resume improvements in a later section) With Pinterest’s name on my resume and several engaging and concurrent projects in the summer, I started to receive emails from recruiters with my newly updated resume
I started applying in August and the process continued until Christmas, and started to hear back in late September on moving to the interview stage. I interviewed for ~10 companies and received final interviews for 6 companies. I really appreciate my Lyft recruiter for giving me my first offer right before the Christmas holiday for me to spend it relieved!
My application season this year was really extended compared to what I have heard from alumni. Due to the uncertainty in the COVID-19 season, many companies continued their recruitment after Christmas and sometimes into at least February/March to have a more exact number of the intern class headcount. Typically the recruitment season ends in the Fall semester, so my experiences here might not be representative of a normal cycle.
What was my application strategy?
From my experiences in my sophomore year, I realize how time-consuming and mentally taxing it is during a recruitment season. It made me less efficient and more prone to breakdowns and frustrations. In my junior fall, I made this my first priority after academics and devoted much time to prepare. I advise against taking a heavy course load as it is likely to take away the motivation to apply and the time to polish up materials.
Also, apply to as many roles as possible. Several friends who had at least one offer have application numbers in the 60–100 range (number of roles, not companies). I tracked my applications using a Google spreadsheet template and have applied to 80+ roles in SWE as well and slightly fewer numbers in PMs.
Job Application Tracker Template from theMuse (https://www.themuse.com/advice/job-search-spreadsheet-track-application)
Lastly, I got a referral whenever I could. While applying for a role in tech, I felt more comfortable reaching out to people and asking for a referral through or in one of our first conversations. I even found contacts of a tech YouTuber I admired and reached out immediately to start conversations. In general, after many applications, I have become much bolder to introduce myself and ask for a referral, and as I applied to more and more jobs, the drive to gain referrals has hugely outweighed the fear of being rejected and I just did it without overthinking.
Two tips for people thinking about referrals: 1. to find out if referrals matter for one company. If it does not weigh too much or the company is too huge, applying earlier might be better than waiting until you secure one referral. 2. Break down the action to ask into steps if you are too scared and set numerical goals to set you in a better position. For example, in the first stage, mass reach out to 20 people, strangers, alumni, recent graduates, or recruiters via LinkedIn or email. Feel better now because you have done the first step! Then, for those who reply, do a short introduction of your experiences and why you like their companies, and ask for a call/type a few questions. If they do reply and show interest in or friendliness to you, send resumes or ask for a referral then. In other words, break down the terrifying act of ‘asking for a referral’ into smaller steps. After you contact a certain number, just wait for a reply until you need to think about your next move! This will hopefully make you feel more at ease and prevent procrastination in finding referrals.
What preparation did I do?
After learning about the recruitment process, I learned that the success of a resume would be the only key pass to the next stage (besides possibly getting a referral), before when success solely depends on your face-to-face interview performances. Though in the past I often fretted over not having enough experiences, I took months to realize that resume quality is all about how to present experiences and make the writings fully reflect your skills and achievements as much as possible, and make the best combination of past experiences. Though I did not have legitimate working experience at first, I tried to formalize my side projects, hackathons, etc., as much as possible by quantifying the results and describing the tech stacks and project details. I asked alumni for their resumes to study the phrasing, the use of the STAR methods, and the selection of experiences. When I felt my resume was 70% likely to be qualified, I made up for the rest 30% by asking different people (current JHU students, alumni, mentors from companies, etc.) for opinions. It was the time when they all mentioned that it was good, despite sometimes picking out different details, that I knew I would probably get a ‘pass’ the selection threshold for most people, probably including recruiters. At the recruiting season, I genuinely feel there is no need to further engage in a number of continuing projects unless that will make a huge outcome/difference, but time could be more wisely spent on the presentation of experiences.
Upon reaching the interview stage, almost all the rest is Leetcode work. Knowing that I have practiced sufficiently gave me confidence and calmness. I asked a friend who interned at a FAANG company how many LC questions he practiced before landing on his first offer. After hitting the 100 threshold as he did, and knowing that I attempted them seriously, I thought I was ready. This was also about the time when I had my first offer.
From the information I gathered, I also do not see Leetcode style questions as completing simulating the work environments, and some of my friends who made mistakes at interviews are actually very talented and more experienced programmers. But since Leetcode is taken as the best proxy for measuring programming skills in the industry, it is crucial not to overlook it.
What was my biggest takeaway from the application season?
Confidence really matters. I cannot stress how important it is. At the start, I was extremely nervous and could not think straight in one or two interviews. In one interview with a company that offered me a position, the interviewer asked an extension question on the spot. I told her that I could not figure out a method to fulfill both the time complexity and the task. She gave me an example, and I had the courage to follow up and ask “I thought the motivation of having an alternative strategy is to a case we discussed earlier but this did not seem to have worked for that, though it does for a lot more edge cases…” She nodded and realized it as well. I felt relieved and happy afterward since in the past I probably would have just accepted the information without questioning. Around the time when I received my first offer and things started to be smooth, and I started feeling comfortable treating it like a 2-way conversation. I could type fast and can talk at the same time, but could manage to calm down and express myself clearly too.
I have also helped my friends prepare for interviews, not restricted to tech or SWE roles. Though companies might emphasize the need to engage in a real conversation sent along with interview logistics, some of my friends treat it not as a conversation but still as a test. Two realizations regarding the purpose of conducting an interview helped me change my mindset and gain confidence. First, I started to look at interviews as a two-way information exchange channel. You are interviewing the company when they are interviewing you as well. This will shift your attention on your performances to observing how the engineering communicate, and asking questions you are genuinely interested in, and follow-up questions based on their responses. This keeps the conversation flow, rather than just focusing on regurgitation of things you memorized on past experiences and question lists you prepared. Secondly, adjust your focus. Performers will probably be less stressed if they focus on expressing their music rather than thinking about audience response. Similarly, in an interview, it helps to focus on the content and figuring out the problems, and ‘getting the points out’ rather than on how interviewers might think of you. (Are you going to judge someone on a small grammatical mistake or accent if they make a speech with great content in real life?)
Knowing the source of your confidence might help as well. Your source of confidence may come from knowing that you have done enough research and Leetcode practice, which is fantastic (I had such when I knew I practiced roughly equal amount of questions as my friends who were successful). This is ideal, but not always fulfilled when interviews kick off. I constantly worried about my coding abilities at first. To conceal my nervousness, I convinced myself that there is something I can bring to the table. SWE job involves comprehensive skills like writing design documents and other aspects. I told myself that even if coding fails, I could still demonstrate communication skills by articulating the solution and dissecting the problem well.
What would I have done differently?
Apply EARLY. I still procrastinated during the first few weeks to network with people, fill in online application forms, and starting Leetcode practice because I did not think that I would be accepted anywhere. I started serious preparation after realizing that I had no alternative choices or shortcuts anyway. In fact, more preparation earlier on could have helped save my time with an early offer.
Also, I have done mostly PM preparation during the summer but reviewed very casually before one APM interview, which did not yield good results. Finding out more about the availability of opportunities in the market (which companies and positions hire more) matters. And either prepare whole-heartedly or do not apply is a lesson I have learned.
What were your deciding factors between firms?
The top characteristics for me at an ideal workplace are the learning curve and the impacts I can create, the work environment and being able to enjoy mentorship and friendship with colleagues and peers, salary, and my belief in the company’s products.
All companies I have are great ones and fulfill all criteria! I spent a really really long time deciding between them and actually felt bad for the lost opportunities. Eventually, I chose Pinterest as I had prior experiences there. I was selected as a Pinterest Engage Scholar in my sophomore year and have benefitted from the career preparation program, built relationships with mentors inside the company, and learnt more about its culture.
Pinterest Engage Scholars 2020
Though choosing between companies is deeply rooted in personal preferences, the decision procedure that helped a perfectionist, striving too hard to maximize the outcome of each opportunity and stressing over opportunity cost, like myself, might help you too. I talked to people working in, having interned or worked at the companies, and other senior engineers I trust from third companies to compare by pairs. When options seem too close, I asked myself about which products I believed in more, and asked someone I trusted or knew to think like myself to break the tie. Honestly, thinking too hard over choices might not help that much too because maximizing ‘local utility’ might not equate to global maxima in life, and every opportunity is a great one if you seize it well.
Any other advice for prospective applicants?
Start early! I wish I knew that I could apply for PM roles and underclassmen internships in my freshman and sophomore summer. I really hope that I have entered the industry earlier to be able to have more exposure and decide if I liked PM, SWE, or other roles more. So do not ever feel unqualified, and just ask around to know more of the potential opportunities.
Secondly, control what you can. I felt very anxious last year for not being able to go home and having to let go of an internship at a top international finance firm in my country, and only doing a few side-projects over the summer. But choosing the industry/direction of internships to apply and optimizing my strategies were almost totally up to my discretion (despite the external situation pushing me to the point I was at). I decided that though I was interested in investment and consulting, tech values experiences that were not formal internships more. I also made time to talk to experienced people, gather information from multiple channels, and practice. Landing 4 internships during the low job market at COVID exceeded my expectations. I was happy to have made the choices.
Finding a community matters. With this regard, I highly recommend the Rewriting the Code group for young women in technology. It is a supportive community where I gained much of my knowledge of the applications, and also sometimes sought advice for decisions. A big shoutout to the leadership, Sue, Jade, Sammi, and others! Having a group of motivated people with similar interests drives you to move on and opens your eyes to new information and opportunities.
RTC Community for girls in STEM (https://rewritingthecode.org/)
Lastly, a huge thank you to all my family, friends, and mentors, for your support in my application process. Also, shout out to my friends from JHU and RTC who have helped proofread this article and given valuable feedback: Nancy, Khanh, and Jolie.
From the Scholarship Track Team:
If you found this article helpful, and would like to see more of Ariel’s content – do feel free to follow Ariel on medium HERE!
Thank you Ariel Bao for sharing your experience with us 🙂