The month before my first internship, I read Alexey MK’s A Brief Guide to Tech Internships. In it, Alexey talks about his internships at Facebook and 2bkco, and what he learned from both.
I used Alexey’s experiences as reference all the time as I interned. So I wanted to pay it forward by sharing my own personal experiences.
Here goes :)
I’m Rishi, and I’m a Computer Science graduate from UC San Diego. I started this blog to write more for my friends.
I’ve also done my time on the internship circuit. 5 internships now, which is as many as those pesky Waterloo kids do!
I have interned at Qualcomm, Apple, Google, Zenreach and Flexport.
I was pretty fortunate to get a head start. I took AP Computer Science and attended multiple hackathons in high school.
My first internship, what I lacked in experience, I made up for in enthusiasm. I came to work the first day in a dress shirt and tie at 8am. I took pictures of the free drinks and my new cubicle. In a couple weeks, I was peeing La Croix.
Unfortunately, my enthusiasm waned over the course of the internship. I was isolated in a cubicle, away from my manager and assigned mentor. I had no team, no standup, and vague direction.
Towards the end, I got the sense the Android app I had been building was not important. I started coming in later, and taking longer lunches, because no one seemed to notice.
I started to feel insecure about my programming abilities, and also, my work ethic. I was paranoid I’d be caught slacking off, because I indeed was slacking off. I could have handled the situation better, but I was also only 18.
Overall, I left Qualcomm feeling useless and lazy. In hindsight, I was too harsh on myself. As a beginner programmer, it’s tough to feel useful and productive. It’s also not unheard of for your project to be thrown away, which mine was.
Despite this negative self-talk, I got much better at programming after Qualcomm. Coding full-time will do that, even if you slack off.
I also had tons of fun with my freshman intern cohort :)
Me at Apple:
At the time, I didn’t deserve this internship. I had gotten it just because I got good at interviewing the previous recruiting season. But hey, fake it till you make it, right?
In any case, I learned the most during this internship. This was thanks to my mentor John, who had been around the block, and I was so freaking lucky to have.
Things my mentor told me:
• John told me about working at Ning, a breakout company from the 2000s.
He told me about how much he learned, and how talented his coworkers were. He planted the idea in my head of going to smaller companies first to start my career.
• John talked about being a generalist.
He said, when recruiters ask if you’re interested in frontend or backend, don’t let them pigeonhole you. Say you’ve done lots of frontend in the past, but now I’m doing backend.
That may or may not be what you tell recruiters. But my takeaway was that it’s OK to be be a generalist and like everything :)
• He taught me about software engineering, here are some of my notes:
Code should be self-documenting. Use comments only to call out unusual code. Tests are good documentation, use them to understand new parts of the code base. Use git blame/annotate to find code samples to base your code off of. Timebox tasks, because Parkinson’s law. Do other tasks in parallel when the build is running. Grand rewrites are often bad. And keep it SOLID.
• He taught me to underpromise and overdeliver.
This may or may not apply generally. But definitely applies to software engineering estimates.
During sprint planning meetings, I always feel pressure to give an optimistic estimate. But tasks always take longer than I think, and I’ve missed a lot of my estimates. I believe, be pessimistic about your estimate. Or at least, do the research to inform your estimate, then add some padding, and you’ll thank yourself.
I also apply this when I’m late to social engagements… if you’re running 15 minutes late, say you’ll be 30 minutes late, then overdeliver :)
Back at Apple, I was a bit of a shitty intern. I didn’t know stuff, and I was slow, and then because I didn’t know stuff / was slow, I got discouraged, and I didn’t give a great performance to my team.
I did not get a return offer.
Regardless, I got so much out of this internship. I’m so grateful to John and the team for taking the time to teach me.
Read on to see my adventures at Google, Zenreach and Flexport!
Spoiler: It gets better :)