The Case For Interning at Tech Startups
You’ve probably seen a multitude of articles and tech how-to videos that detail the tips and tricks to landing an internship at Big Tech companies such as Google and Microsoft. As a software engineering student at the University of Waterloo, I found this veneration of working at big FAANG companies especially hard to ignore. A huge portion of students are vying exclusively for high-profile companies (hence the “Cali or bust” catchphrase), contributing to a culture that overlooks smaller companies. However, my past summer interning at Fractal showed me that there’s a ton of value in working at small, high growth startups, especially for students trying to explore and improve their skill-set and network.
In this article, I’ll share the benefits and takeaways I learned from my past 5 months, which hopefully might convince you to consider interning at a startup. Whether or not you are a software/computer science student, I hope you’ll find some aspect of this post useful!
Side note: If you haven’t heard of Fractal, it’s a company based in the NYC area that’s building tech that let you to stream your favorite applications (games, Blender, AutoCAD, etc) to any device, anywhere, through the cloud. It’s all powered by their own proprietary streaming protocol (9ms latency!), which is really neat.
1. You can do big things
I joined Fractal as a full-stack software engineering intern in April early this year. What immediately struck out to me was the company’s level of trust in their interns. Everyone is allowed to and encouraged to work on mission-critical software. The company consisted of 5 people when I joined, meaning that my work mattered a lot more, proportion wise, than if I were at Amazon.
Here are some things I was entrusted with as a freshman intern:
- Build a resource management server that automatically monitors, creates, and deletes our production Azure virtual machines and disks - by myself
- Revamp the backend webserver (the backbone that ties everything Fractal together) and most of its endpoints
- Redesign the schema for our main Postgresql database (and I was trusted with admin privileges)
- Set up a Heroku continuous integration pipeline, which contains our production and staging servers
- Design and build parts of our landing page, admin dashboard, and mail system
So I was definitely given an insane amount of autonomy to do what I liked. I got to take ownership over code that truly matters, and I had the leeway to own projects and work on user-facing, production code. That also means that I got to make an impact during the window when the company is still in its infancy. I learned a lot when I had to make decisions, while carrying them out with the support of the team.
2. You can broaden your skillset
At startups, it’s a necessity for people to be proficient in a diverse skill set. When the team is limited, companies must use fewer employees to build a product. Full-stack positions are in especially high demand, because of how these companies prize flexibility and lowers headcounts. So if there’s a new language, framework or piece of tech you want to pick up, one of the best ways to do it is by taking on tasks that you find interesting at a startup.
Fractal was super accommodating and flexible when it came to this. All of our issues are outlined in GitHub, and I was allowed to take on almost any of them. We had a system where you work on a main project of your choosing, and pick a small project to work on whenever you are waiting for a blocker or want a break on the main project. For example, my “pet project” when I was migrating the backend webserver was the construction of the careers page of our website.
Because of this, I was allowed to work all across the stack, which taught me a ton of useful technologies for the first time, such as Redux, GraphQL, Electron and Heroku CI. I also got to work in a team with mentor support and documentation, which helped me pick up these skills a lot more quickly. I definitely don’t think that I would have had this level of autonomy when working at a large subteam at a bigger company.
3. You’re in the loop
For Fractal in particular, the engineering team is always included in the important company activities. Outside of the weekly standup, where each person demoes their work for the past week, we have tri-weekly strategy meetings. We get briefed on both the short term sprints and long term focus of the company, and we are always the first to know about company developments and milestones. I found this helpful, because I get to see how my work fits into the bigger picture.
We also have weekly meetings for sales, recruiting, and marketing, which I found to be a really unique experience. I was given the opportunity to contribute towards the sales and marketing efforts. For example, I helped to reach out to find alpha users, and manage our social media handles. In our recruiting calls, we looked at applicant resumes, and outlined our medium term hiring strategies for the upcoming two terms. These meetings gave me a really cool insight into the inner workings of the company.
One of my goals in taking Waterloo’s co-op program was to learn about how companies operate and scale, in case I wanted to start my own venture someday. By being in the middle of the action, all the while watching the company double in size in 5 months, I was able to gain invaluable experience about the inner workings of a functional, high-growth company. This taught me that it’s important to look for that places that keep you engaged in what goes on outside of the engineering department.
4. The people are awesome
A highlight for my internship was the people I got to meet. No doubt, you get to meet incredibly talented and friendly people wherever you work, but I found it much easier to interact with my coworkers thanks to our small size at Fractal. The lack of bureaucracy and management made for a super tight knit team, where we all felt comfortable talking to each other. We were able to have company-wide socials at least once a week. Something I that I found was pretty awesome was how the team would get together (on Zoom) and deliver a cake to celebrate birthdays, and check in with anyone who felt under the weather.
A lot of tech startups differentiate themselves by building an innovative product or process. When working at a new and upcoming company, you also get to meet interesting personalities who are also passionate about new and exciting things. I quickly learned that everyone is super approachable, and almost always down to talk. As a personal challenge, I had a chat with someone new every month, which yielded some fruitful and engaging conversations, and helped me overcome imposter syndrome. Overall, these natural human interactions were a huge plus during my internship, and definitely helped make remote work more bearable.
A few things I learned
The importance of reaching out to chat
My biggest takeaway: you’ll never know what can happen from just a single conversation. My employment from Waterlooworks got cancelled last minute due to covid, but I was lucky to join Fractal through a happy chance of events. I took part in Neo Hack Month, and simply reached out to a startup that had an interesting post in the general chat:
That lead to me helping out the team for a month, and then joining full-time for the summer. This experience taught me that only good things can happen when you reach out!
Outside of this, the co-founders were approachable enough that I was able to have some quality chats about our lives during the weekly check-ins. From these calls I was able to get a lot of life advice and mentorship (and book recommendations) from people whom I really appreciate and respect.
Proactively take on tasks you’re interested in
I definitely would not have been able to learn as much as I did, had I not offered to take on projects I wanted to work on. Startups (especially Fractal) are super flexible about what you can work on, especially when everything is constantly changing. Here, full-stack means full-stack. I took on issues in 8 separate GitHub repositories, and worked continuous integration, analytics, frontend, databases, backend APIs, testing, and cron job software.
Use non-traditional mediums to find places to work
If you’re consider working at a small startup, I would recommend applying in direct ways outside of traditional job boards. Many early stage companies don’t have the bandwidth or desire to post publicly on Indeed or even Angelist. Early on, Fractal hired almost exclusively out of Harvard, simply because the cofounders hired out of their personal network. My suggestion for finding about these hidden gems is to look local. Check your university innovation hub and local incubator, where you’ll have a higher chance of scouting cool companies before they publicly launch and get overwhelmed with applications. A lot of companies are in pre-launch phase, or have products that aren’t affected by covid, so there’s plenty of opportunity in this space right now.
If you’ve made it this far, thank you for reading this article. If you are looking for an internship, hopefully I have convinced you consider working at a startup. If you’re interested in working at Fractal in particular, the founders told me that they’re hiring full-time systems/full-stack engineers and interns right now. You can apply by emailing them at email@example.com, or hit them up on Twitter @tryfractal.
I’m always down for a chat, and you can reach me on Twitter if you’re interested in chatting about Fractal, want more tips on finding cool internships as a student, or anything at all!
Note: I’ve moved all my writing to https://jonathanxu.com/blog for the future!