Top 10 Takeaways from an Engineering Masterclass
by Jason Costa
A “Masterclass” was a dinner program focused on a functional discipline (Engineering, Growth, Marketing, etc.), in which we’ll bring in domain experts who can share learnings, lessons, and best practices with members of the community.
Recently I had the pleasure of hosting Yash Nelapati and Marty Weiner for a technical discussion on how they scaled Pinterest from zero to over 150 million monthly active users, and the engineering challenges they faced along the way. Yash and Marty were engineers #1 and #2 at Pinterest, respectively, and have seen a lot during their time at the company.
We took an opportunity to invite several CTOs and VPs of Engineering from GGV’s portfolio companies to join Yash and Marty for an evening. The two of them shared a great deal of knowledge and best practices for building and scaling systems, and how to create culturally healthy engineering teams. Additionally, they pointed out how early engineers have to learn how to do things on their own; how it’s OK to make mistakes fast as long as those mistakes are corrected even faster. It was a great night, and in the spirit of sharing we wanted to highlight the top 10 learnings we at GGV took away from their talk.
The Top 10 Takeaways:
1) Scaling a technical system to accommodate a large user base is hard and takes a great deal of time, so work hard at it and be patient. It’s not going to happen in a quarter.
2) Make good technical investments, such as sharding, early on. This may be a painful process but don’t wait, even if it requires a full feature freeze. You’ll reap dividends later.
3) Pick a proven tech stack based on what actually scales, and is also simple to build with. Don’t do the complex, fancy stuff — in fact avoid it.
4) Look for unique ways to hire engineers like developer meetups or even Craigslist. Don’t be scared to explore contracting early on, but not as a long term solution. And hire the first ~100 engineers as generalists; the specialists can come later on.
5) Don’t compromise culture fit to hire fast. Your early engineers will be a fundamental piece of the company, and these folks will define the culture for years to come. Choose wisely.
6) Build a “disagree and commit” culture to best settle intense technical debates. Have the debate in the open, and once the decision is made everyone must move forward together.
7) Don’t be afraid to seek out a “marriage counselor” figure. A founder relationship is an equal sharing of power, and if the team can’t decide then bring in a neutral third party.
8) Take your time in adopting new technologies: let them mature first, and then build with it. If you go in early on a new technology, especially if you’re the first heavy user, expect to go alone on monumental challenges.
9) Managers will drive the direction and motivation of your team, so invest aggressively in training them: especially your first time managers.
10) Take a “sand, pebbles, big rocks” build approach. Don’t fill a jar with sand first, as then the big rocks won’t fit. Tackle the big rocks first, then the pebbles and lastly the sand.