Why did you choose to intern at a startup, and one I’ve never heard of?
My answer would be that startups afford an intern the chance to make an impact on the company. As a member of an intimate, though expanding, engineering team, TellApart could not afford to push me into a corner to work on an intern project that may or may not be useful. I did not have a single intern project at TellApart. I had real projects that were manageable given my lack of experience. In the process of building useful applications for TellApart, I gained invaluable engineering experience that I believe I could not have received at a larger company.
Impact through hands on experience
Before the end of my first week, I had pushed live code. Admittedly coding was slow going at first: I was unfamiliar with the code base, had never programmed in Python, and had little experience working with large scale web applications. However, I had the best help available at my fingertips. With a lean engineering team, consisting of many engineers who have been here for multiple years, I could talk face-to-face with the engineer that built the system I was working with. It is unlikely that an intern at a large company could say they knew, let alone regularly conversed with, the authors of a significant portion of the code base.
By pushing live code regularly, I gained experience unattainable at either school, or by interns at larger companies. There is something to be said for the Facebook sign that was put on my desk: “Move fast and break things”. Only through trial, failure, and ultimately success do I learn to be a better engineer. If I had never pushed code, I would not have had the opportunity to fix the many small issues that arise when your code runs on live data. There are some things that unit tests cannot catch, and I am grateful that the engineering team trusted me enough to own up to my mistakes, fix them, learn from them, and move on.
Massive benefits from ownership
With trust to push code regularly came a trust that I could be responsible for a section of the code base. When I would launch an experiment, my work was not done once the experiment went live. I would monitor the data daily, and contribute to the final analysis of the experiment’s results. If I had not been responsible for managing the experiment I designed, I would have lost insight into how the code I wrote impacts real users. I found it much more rewarding, engaging, and thought-provoking to manage and understand my code’s impact outside of the lines I contributed to the code base.
Cross department learning and impact
As the owner of a section of the code base, people came to me for questions and requests related to the code I wrote. As the leader of an experiment, I interacted with many different people at TellApart that engineers at other companies may not normally directly converse with. I became good friends with an Account Manager on the business side of TellApart as a result of working closely with him to analyze the results from an experiment. I am happy to say that I did not just leave TellApart as a better coder. I also learned a lot about product management and data analysis, two fields that interest me but are not necessarily part of a normal software engineering internship. I leave TellApart a better engineer not just because I learned how to implement a product. I also have skills to analyze the performance, communicate the results, and iterate while being mindful of the overarching goal of a product.
As a rising junior at Stanford University, I was a relatively inexperienced engineer. However, lack of experience did not preclude me from leaving a mark on TellApart. Startups provide the opportunity to both have a direct impact, and learn a lot in a very short span of time. For these reasons, I would strongly consider, and suggest, working at a startup.
Jocelyn Neff is a Software Engineering Intern at TellApart.