Working at a startup vs. a big-tech company has always been a huge dilemma for me throughout my college career. As both have pros and cons, it’s difficult to find the right answer without experiencing both worlds and deciding what works the best for me.
Hi! My name is Vivek and I am an undergraduate student at Drexel University, majoring in Computer Science and minoring in Mathematics and Data Science. This spring and summer, I have the privilege of being part of two internships that allows me to explore startup and big-tech company experiences. I just finished up at r2c and then at Meta (previously, Facebook)!
It wasn’t an easy feat to whittle down a list of potential startups to interview at, so the first step was to put together my criteria for selecting the type of startup I wanted to join. r2c checked the boxes being the early stage, fast-paced startup, and with Semgrep being open-source, I had a chance to explore its applications and dig deeper into the codebase. I was super intrigued to learn about building a business on top of an open-source project. After learning about the company’s mission, values, and culture during the interview process, I was even more pumped to join the team. With all this in mind, I decided to accept their offer and join the team as a Software Engineer intern for Spring 2022.
r2c’s interview process was highly streamlined for the role requirements and truly one of the best recruiting experiences! The team accommodated my competing offers and did a great job scheduling the interviews quickly and sending out the decision. The interview consisted of the recruiter screens, take-home coding projects, live technical challenges, hiring manager screen, and informal calls with the CTO and other team members. Everyone I talked to was super friendly, polite, and highly passionate about their work. I felt comfortable asking questions and sensed a great company culture throughout the process. Unlike my other interview processes, my manager did a great job explaining the type of projects I was expected to work on. Ultimately, I was excited about the company goals, the team, and the product and felt extremely confident signing the offer.
After signing my offer in December last year, I finally joined r2c in person at the SF office in March 2022. Notably, the company encourages a remote-first policy, so I could have worked remotely from Philadelphia. However, I was also looking forward to meeting my co-workers and experiencing living in the Bay Area! My internship was planned for 12 weeks. I started as a full-stack engineer on the team responsible for building and maintaining the Semgrep App. As I was interested in working on the backend, I had a chance to work on various projects using the Flask (Python), Postgres, OpenAPI, and React tech stack.
First Day at the Office
The best part about working on the team was the flexibility of working on a large project while contributing to various ongoing projects on the side. Usually, I’ve heard about interns going through a boot camp or some onboarding classes to understand the codebase. Instead, r2c followed a hands-on approach for onboarding and I was basically pushing code from the very first day! For example, I started by extending the internal and customer-facing APIs in my first week which helped me to thoroughly understand the codebase.
Later, I picked up my primary project, which was building a Semgrep Slack integration that can send finding notifications to a customer’s Slack workspace and allow them to triage those findings in the future. I was excited to work on this project because customers had heavily requested this feature and I had no experience building a Slack integration which made it even more interesting. As the project required a lot of reading and refactoring over time, I also kept working on miscellaneous issues. I explored some cross-team projects on the side, which helped me gain a deeper understanding of the infrastructure.
Towards the end of my internship, I completed, deployed, and rolled out my primary project, i.e., the Semgrep Slack integration. At the same time, I ended up contributing to multiple customer-facing, cross-team projects, some of which were integral for closing the sales deals. I was genuinely grateful to be able to contribute to such impactful projects despite being an intern. I was encouraged to take ownership of crucial projects. I was invited to contribute to all the bug squashing sprints and support issues and also got to roll out my project to prospective customers.
I’ve always been attracted to startups because of the fast-paced environment and the opportunities to create an impact. Like every other startup, r2c was growing fast and there was always work to be done. The philosophy was to build fast and not be hesitant to dispose or rewrite the code. It was amazing to see how an engineer’s time was extremely valuable and every project was heavily evaluated based on the customer requirements and company goals. Because the company was growing quickly, I had an opportunity to work on multiple projects and understand the infrastructure well.
Moreover, the work I was assigned felt important, and seeing everything go into production was a great motivation to work on more projects. As I worked on a relatively small team, I had various opportunities to directly work and interact with the senior engineers throughout the internship. One of the best takeaways was to see them scoping the project, writing the design docs, and fulfilling the customer requirements on a tight deadline.
As a developer, it’s natural to feel attached to the code or project over time. However, I learned the importance of customer-driven development at r2c and felt much more comfortable disposing of code based on the feedback received from the customers. No matter how fancy, beautiful, or complex the code is, it’s not meaningful unless it provides significant value to the company and customers.
As much as I’m satisfied with everyone I’ve met and worked with in the past few months, I’m sad about leaving such an incredible team. It’s truly a fantastic experience to be around an extremely passionate, hard-working, yet humble group of people. In addition to Semgrep, it’s the culture that makes r2c an amazing company to be a part of. Alongside my projects and growth as an engineer, there were a ton of moments, events, and fun experiences that would make this internship a truly memorable one. Of course, I’m bummed about not being called an official r2cer over the summer. Yet, I’m looking forward to staying in touch with the team and hanging around the office (especially the ping pong tables!) while I’m still in the Bay Area!
Team r2c! <3
Semgrep is a fast, open-source, code scanning tool for finding bugs, detecting dependency vulnerabilities, and enforcing code standards.