My friend Julian Dai wrote his thoughts on his first week at Ramp this summer, and I'm going to do the same for my first two weeks interning at Netflix.
First Impressions
This is my first internship, so I have no other reference point for working in a tech company other than building ATA and personal projects from high school.
There is a lot of complexity
The first thing that struck me was how much stuff Netflix has built and the resulting complexity in producing new stuff. Netflix might be somewhat of an outlier for its size (ex. they have their own CDN), but there are tools and services built by Netflix engineers for everything: authentication, routing, server frameworks, development tools, internal Google Drive, multiple specialized FEs and BEs to test one part of the product. The tiny project that I'm working on has required me to read code in ~8 repos so far, and read docs on another half-dozen tools/dependencies.
I'm undecided how much of this complexity is necessary, or whether a good chunk is over-engineering. When I was beginning to ramp up, I was leaning towards it being too much, but after a week I'm already getting a workable understanding of many of the pieces, so I'm not sure yet. Perhaps in equilibrium (when an engineer has ramped up on initial shared context), all of this complexity is worth it when a company is at the scale where they want to control and optimize everything. 1
Another thing I noticed is that many development practices—such as how well documentation is maintained2—are team-specific. I suppose this comes from the high autonomy given to engineers.
A typical engineer's project-load is niche
Due to Netflix having ~2k engineers, coupled with the increased complexity & development cost, the scope of any one person's work is much smaller than I'm used to. Even taking this into account, the amount of output expected from interns is quite low. I'll have to see in the coming weeks how much of this can be attributed to being an intern.
Despite the small scope of projects, I haven't had trouble so far maintaining excitement and enjoying the work. I think the technical complexity and all the new stuff I'm learning is intrinsically motivating, but I also feel motivated to contribute my part to the team and bring their vision of the project to life.
Autonomy
Netflix is famous for its culture of high autonomy ("Context over Control", "People over Process"), and I've largely been left to work on my own with minimal distractions or oversight. This happens to be how I work best.
Communication
While engineers are given a lot of autonomy, there's also a lot of communication. There are formal processes for candid feedback, as well as a culture of frequent informal feedback (I'm told). I'm curious to experience this myself in more time.
I'm not able to articulate it well yet, but I was also struck by how explicit / intentional people are with what they say in meetings. This is especially true for my manager, and I suppose this is a big part of a manager's job.
There was one particular meeting with another team where my mentor gave context on the project that I'm working on and the articulation/delivery was perfect. I hope to emulate this.
Going Forward
I've largely been going with the flow for these two weeks, and I want to be more intentional about improving as an engineer through the internship and learning from others going forward.
1:1s
I'm reaching out to more teammates and others to set up 1:1s for the coming week. Importantly (and something that I haven't done so far), I'm going to spend some time to prep rough agendas and questions so that our time is spent well. This is a whole skill in itself.
Communication
While the autonomy is great, I've been prone to digging in to problems for longer than I should have before reaching out to someone with more context. This judgement call is still one that I need to figure out, as well as getting over the resistance to interrupting others' work to get help.
In general, I should bias myself more towards the reach out early/be very explicit/give lots of context side of communication.
Digging in on more of the engineering
This is a great chance to look at how engineers at Netflix build and what the main design decisions are. I also want to satisfy my technical curiosity on how the complex machine that is Netflix works.
I'm going to try spending some time each day poking around the different internal systems (not just the ones related to my project) and thinking about why they're architected the way they are. Hopefully this will also give me good fodder/prompts for future 1:1s with engineers.