DEV Community

Cover image for FAANG or Bust: My experience doing 4 software engineering internships at big tech companies
Alexander Shih
Alexander Shih

Posted on

FAANG or Bust: My experience doing 4 software engineering internships at big tech companies

Introduction
Like many other students studying computer science, when I was in my first year of undergraduate studies at the University of Toronto, one of my biggest dreams was to work at a FAANG company. FAANG is an acronym for Facebook, Amazon, Apple, Netflix, and Google and represents the big technology companies renowned for their technological prowess. Disclaimer before readers get mad at me: I have never interned at FAANG (Facebook, Amazon, Apple, Netflix, Google) before. In 2021-2022, I took a year off of my undergraduate studies to intern as a software engineer at four big technology companies: Lyft, Palantir, Stripe, and Citadel. I believe my experiences at many of these companies align with what other interns working at FAANG companies experience.

Background
I currently attend the University of Toronto as an undergraduate studying computer science. Like every other computer science student surrounding me, I was fascinated by big tech in my first two years of undergraduate studies. In my third year, I managed to secure offers for software engineering internship positions at Lyft, Amazon, and Palantir. After talking to many upper-year students who have interned at FAANG, they recommended I accept the Lyft offer for Summer 2022 and ask Palantir if I could push their offer to Fall 2022 or vice versa. At the same time, they recommended I take the entire next year off to find two more internships to work at rather than rushing to finish my degree. I took their advice and worked at Lyft in the Summer and at Palantir in the Fall. I applied for jobs while I was working at Palantir in the Fall and accepted software engineering intern offers from Stripe for the Spring of 2023 and Citadel for the Summer of 2023.

My Experience
Lyft was my first big tech internship. Before then, I worked as a software engineer intern at smaller companies. This internship was remote due to Covid, as this took place in the Summer of 2022. During my internship, I created a driver onboarding flow for livery drivers, drivers that drive on behalf of other companies. This was done by creating server-side forms powered by Flask. I also created a Flask API endpoint to automatically onboard new driving companies with Lyft.

Of the four internships, I believe Lyft is my closest internship experience to "FAANG". Lyft is a large company with thousands of employees. Coming into this internship, I was scared of underperforming relative to other interns. I had a large case of imposter syndrome and feared that I would not be able to successfully work on my project independently and ultimately not get a return offer. I think Lyft was a great place for my first big-tech internship. Lyft's internship program was set up very well and provided a lot of mentorship and resources for their interns. Lyft had many great programs set to reach out and connect with other software engineers and have coffee chats with them. My project was not technically difficult, but it involved writing several technical documents, which I had never done before.

My second internship was in the Fall of 2022 at Palantir. This was my first internship that was fully in-person and I was able to travel to London, UK for my entire internship. I was a software developer in the resource-management team for Foundry whose goal was to calculate the cloud usage for computing and storage across other teams. My project was to create a Java pipeline powered by Apache Spark to calculate this information for Ontology, a separate digital asset.

The biggest difference between this internship and my internship at Lyft was the difference in autonomy as a software engineer. As mentioned previously, Lyft had a great intern program that was focused on mentorship. I was one of five interns due to being an off-season internship and there was less focus on the internship program and more focus on working at Palantir as a full-time software engineer. As a result, my mentor gave me more responsibility and freedom to experiment as a software engineer during my internship. It resulted in an internship that was more technically difficult, but one that I learned more from. Although office presence was not mandatory, I went to the office every day as I enjoyed the presence of working in person with my team and other teams surrounding me. As a result, I appreciated working in person versus working remotely and the collaborative efforts that came along with it. I was pleasantly surprised at Palantir's friendly culture. People took their lunch breaks off to talk, spent their dinners together, and even spent Friday nights at the open bar in the office singing karaoke and playing board games until midnight. Palantir's London speakeasy will always hold a special place in my heart.

In the Spring of 2023, I worked at Stripe, a financial services unicorn. This was an in-person internship in Seattle. I worked on the Banking Platform team, responsible for the migration of billions of dollars each day between client Stripe accounts and bank accounts. This internship consisted of a short spin-up project to get familiar with the codebase, writing technical documentation for my project, and the rest of my internship to complete the project. My project was to redesign and implement the service responsible for generating reconciliation records documenting the daily money movement that our team's service handles from Ruby to Java.

Compared to my previous two internships, this internship involved the most amount of technical documentation. I spent nearly two weeks writing the documentation for my project and went back to revise it several times during my internship. I was able to recognize the importance of high-quality planning regarding design decisions and technical implementation for a large-scale project and being able to iterate on feedback. I originally thought the difficult part of the project was having to learn Ruby. However, scoping out my project was far more challenging. There were several times when I wrote a piece of code and realized that what I was trying to do was not feasible after consulting a domain expert. I also did not believe the city was an important decision prior to this internship when choosing a full-time position. After facing the constant grey weather and light rain, lack of nightlife, and steep inclines, I realized that Seattle was the last on my list of cities I wanted to live in (lots of nature though, for nature lovers!).

My final internship was in the Summer of 2022 at Citadel, a hedge fund. I worked on the Treasury team, responsible for acquiring funds on behalf of Citadel and Citadel Securities so they can trade. My project was to create a Java pipeline powered by Apache Kafka to enable the trading of 20 billion USD equivalent per day with a new electronic securities trading platform.

Citadel is notorious for high compensation due to their long hours for software engineers. Coming into my internship, I have heard of previous interns at Citadel working 60+ hours a week. Although I had told myself that I would not work more than 40 hours a week, I found myself working 50 hours a week as my project was more ambitious than any other projects I have done at my previous internships. I was fueled by wanting to learn and the motivation of completing my project. The problem space I was in was more difficult than previous problem spaces I faced and found myself learning about the domain around me, more than I had at previous internships. Being in New York gave me a "work-hard-play-hard" mentality, where I would work from 9 AM-7 PM during the day and go out with friends afterward, which I was perfectly fine with.

My Takeaways

  1. If you can take a semester off to do an internship, I would strongly recommend doing it. It might sound cheesy, but I made some of my closest friends in my internships from different schools across Canada and United States. Similar to dating, if you only work at one company, how do you know others aren't right for you? Each of my four internships had distinct benefits that drew me to each company. Lyft has great work-life balance. Palantir has strong, friendly company culture. Stripe is currently pre-IPO and the domain space of financial technology is fascinating to me. Citadel has very high compensation and brilliant engineers.
  2. People saying you learn much more at internships than at school is BS (or at least for me it was). After my 4 internships, I felt that I had not learned much. Sure I learned how to write good technical documents, a couple of new languages, and how to hold a 30-minute coffee chat with a staff engineer, but these skills didn't feel important to me. I think studying computer science in my undergraduate degree was imperative to my performance at these companies. From my university courses, I learned strong programming fundamentals, how to tackle complicated challenges, and having a good work ethic in general. The most valuable thing I learned from my internship experience was how to be adaptable and how to grep (searching for code that you need) very well. My mentor at Palantir said, "One of the biggest parts of being a strong software engineer is learning to grep very well".
  3. FAANG does not matter that much. Yes, it's a cliche statement and you've probably heard it a million times, but it's true. It is true that you will get a lot of clout from telling family and friends who aren't in software that you work at Facebook. However, there are many other factors when it comes to choosing a place to work besides the brand name. If you prefer having more autonomy as a software developer where you get to make more decisions early in your career, you might prefer a smaller company. If you appreciate the work-life balance there are plenty of "rest and vest" companies. Location is a very important decision in choosing a place to work at. I ultimately chose Lyft over Amazon for my first internship due to the prospect of having more impact at a smaller company, a more consumer-facing product, and because I liked their logo. Before accepting any offers, I would recommend speaking to people working at the companies to get a better perspective of what it's like working there. Or better yet, intern there if that's a possibility :)

Conclusion
After receiving return offers from all 4 internships I worked at, I decided to return to Citadel as a software engineer for my new grad offer. Some of my friends call me a sellout, but do other people's opinions of your job decision really matter? I enjoyed my time working there. I get to be in New York City, the best city in the world. I believe the culture is conducive to my learning and growth as a software engineer. In the end, tackling interesting and difficult problems and having a decent salary is all a software engineer can ask for, so I am content with my decision.

Thanks for reading my rant! Feel free to reach out to me via LinkedIn or email, if you have any other questions!

Top comments (0)