My Primer Internship

I spent the last few months interning at Primer as part of the engineering team. This was definitely the best internship I've had and I wanted to write about Primer, what I worked on, and some thoughts about the internship.

#Primer and Feedback Loops

Watching how Ryan and Maksim are running Primer, how everyone is taking kids seriously, and shipping features with Bojan was a ton of learning from both getting a perspective on how teams build great products and the technical side.

For some context, Primer is building tools for kids to learn together and be more curious. While that this seems simple, I think the time that kids will spend on Primer can be one of the most important in their lives. To explain why, Daniel Gross has an interesting idea that's so related to Primer, he said:

Looking into people that are hyper-successful it wasn’t what they do or how they started, it’s much deeper than that. It was a catalyzing moment that leads to the positive feedback loop that leads to where they’re today. There was a thing that kicked of that feedback loop in people that get them to be curious, willing, excited and, motivated.

I found this message from one of the kids on primer so related to the idea that Daniel mentioned:

Normally those positive feedback loops are left to chance and the fact that these positive feedback loops aren't engineered in the current educational system is so frustrating. But finally, at a place like Primer, these positive feedback loops are happening intentionally and enabling every kid to create their non-traditional educational experience by making them more curious.

#The Internship

The engineering team at Primer is structured in a great way. The places I spent time in, it was either slow with high-quality code or fast with low-quality code. But at Primer had the right balance between both, shipping fast while maintaining good quality. One of the reasons I think that's is because everyone is full-stack but there is one team member per stack who is so deep into it and sets the basic shape of how new features should be implemented. And learning those things I think was so important.

I mainly worked on social features, implemented new kid's profiles, poll posts, gamification badges, high fiving aka poking, implemented interests-based onboarding, and some other small stuff for live audio chat spaces.

I finally wrote SQL queries and did some CSS that is without Tailwind or Bootstrap, became better at working with GraphQl, learned how to work with react state managers, mst-gql, how to build live audio chat experiences. I also now have a better intuition on which technical tradeoffs to take and which not and a ton of best practices.

I feel I got a better idea on how to listen to users, seeing Elizabeth kicking off features and, deciding what to build was a lot of learning. It was also so interesting to see how Maksim and Ryan created a very product-focused team by making everyone so obsessed with the mission. And it was the first time I see how you optimize things in the product for growth. 100% I don't know how to do these things yet but I have a much better idea of what to optimize for and what the high standards look like when I have to.

Also, some fast notes:

  • Learning how to build products only happens by practicing with real users and real problems. It's also one of the things that a big part of it is the mindset, thinking for a long time, and being so curious.
  • Shipping product features on high standards isn't magic, it's simply having an obsession with the little details, applying what everyone is just talking about, and creating systems to iterate.
  • I found I am much more productive working on big features, mainly I found that I switch back and forth a lot when I am working on small ones. Something helpful I am thinking of is to block one day for small things.
  • The first step to become better at generating ideas is to share the ideas you have.

#What Could've Been Better?

I think I was so much into the hacker mindset, and while that was great at the beginning. There was a point where I should've slowed down and spent time to understand things at a deeper level and that would enable me to get more responsibility and autonomy. Probably this is one of the things that makes great builders is the ability to switch between the hacker and engineer mode.

I also should've rented and settled before starting the internship doing these things while working was distracting. And I think I could've pushed myself more in the last part of the internship, at the beginning I was afraid to not do well and I was pushing myself, but then when I seemed to do well, I feel slowed down.

In general, this was so much fun. Now I have much more data on A+ founders, engineers and, designers and definitely changed the way I look into startups, products, and teams!

I want to thank everyone at Primer for this opportunity. Everyone was so smart and kind and I learned a ton of stuff from everyone. I also want to give a huge shoutout to Bojan for the pair programming sessions, PR notes, and all the guidance. The internship definitely wouldn't be the same without all the time he spent with me.

If you want to keep up to date with what I am doing, you can follow me on Twitter @shawkisukkar.