software engineering

Onboarding as a Web Engineer @ Pinterest | by Pinterest Engineering | Pinterest Engineering Blog | Aug, 2024

Pinterest Engineering Blog

Jordan Cutler; Sr. Sofware Engineer | Rebecca Yi; Sr. Sofware Engineer |

Hi there! 👋 We’re Rebecca and Jordan, two Senior engineers who onboarded to Pinterest the same day as Web Engineers. We’ll share with you what onboarding at Pinterest is like, from the learning-packed first week to launching our first project two months later. Plus, we promise to include a healthy dose of our favorite Pinterest puns 😃

Rebecca here 👋

My first week at Pinterest was a rich blend of conventional onboarding information with a nice touch of social aspects to help me feel onboarded.

We kicked off orientation with “Pintro” sessions (we warned you that there would be puns!), which informed us not only about what we would be working towards, but also the “why.” Pintro included sessions like “Three Year Vision” and “Your Life at Pinterest.”

One session that stood out to me was “Pinner Stories,” which shared stories created by Product Research of how Pinners (what we internally call Pinterest users) across the world were using Pinterest. There were so many inspirational stories, but one clear recurring theme was how Pinterest was a place people went to for themselves, not for anyone else. It was a place they went to for inspiration. I loved what Yelitza, one of the Pinners, said, “Having a space that feels like it’s made for dreaming, helps me dream bigger.”

To be honest, I wasn’t an avid Pinner before joining, but after hearing stories about the different ways Pinterest was making a “more positive internet,” I’d be lying if I said I didn’t become more enthusiastic about working here. (Because let’s be honest, social media can be draining.)

I also prioritized getting to know my teammates during the first week by scheduling one-on-one meetings with them. One thing that stood out to me during the scheduling process was how senior leadership held recurring office hours. I hadn’t seen this in my previous companies, so it felt like a true “open door policy,” which Jordan and I took as an opportunity to introduce ourselves and start building a connection.

My first few days were off to a great start — I felt supported by my manager and onboarding buddy, who both provided me with a detailed onboarding plan. I got my environment setup and had a clear(er) vision of my team (Web Platform) and Pinterest as a whole. Plus, I genuinely enjoyed getting to know everyone. Oh, I almost forgot to mention that I also shipped my first pull request on the second day! How could the first week possibly get any better?

It could. With…magic ✨. Our team had booked an Airbnb online experience with a MAGICIAN (please excuse my use of all caps) for a team social and honestly, it really tied the week together. It was a chance to unwind, laugh, and be amazed with my teammates in a more casual setting.

And just like that, abracadabra 🪄, my first week was over.

Jordan here 👋

Week 2–4 was unique because we had three levels of curriculum:

Basecamp is Pinterest’s engineering onboarding program. In Basecamp, we learned about the broad set of tools available at Pinterest and a high level overview of how the app works. As a Web Engineer, my manager booked me for the most relevant ones:

  • Git & GitHub Setup
  • Secure code at Pinterest
  • Growth & Experimentation
  • Performant code at Pinterest
  • Automated testing at Pinterest
  • Incident Management
  • Accessibility 101

I was able to skip sessions that were less applicable to me, but was encouraged to attend any I was interested in.

On top of this, our team built a curriculum specific to Web engineers with a day-by-day breakdown. Here’s what it looks like:

Documentation page for Pinterest Web Engineer curriculum. Intro message welcoming the engineer to the codebase and company at the top, with links to each day’s instructions below

The day-by-day breakdown is:

  • Day 1: Join Slack channels and set up machine for web development
  • Day 2: WebApp architecture
  • Day 3: Gestalt, our internal design system
  • Day 4: Data fetching with Relay and GraphQL
  • Day 5: Accessibility, localization, and internationalization
  • Day 6: Metrics, context logs, and experiment results
  • Day 7: Linters, testing tools, and alerts
  • Day 8: Webpack builds and deployments
  • Day 9: Pinterest Web Server and Server Side Rendering (SSR)
  • Day 10: Analyzing and improving web performance

It was nice that Pinterest leans heavily on open-source and modern frameworks like React, Node, GraphQL, React Testing Library, Jest, Cypress, and others. Because of that, I was already familiar with our tech stack before joining, so I only had to focus on how they’re used at Pinterest.

I also loved how each day was broken into key takeaways and actionable steps to learn more.

Here’s what the Day 10 action steps look like:

Day 10 discusses the web performance team wiki, Pinner Wait time, and Core Web vitals

Day 10 covers our custom performance metric, Pinner Wait Time (PWT), Google’s Core Web Vitals, and our Performance team. To learn more about how we use PWT and track performance, check out Staff Engineer Michelle Vu’s blog post here.

Although the onboarding steps were clear, one challenge was getting everything done. I also had our broader curriculum sessions from Basecamp, along with our weekly team meetings, retros, and social events. The good news is everything was recorded and available at any time. I was able to catch up async and my manager was understanding.

Toward the end of this curriculum, I started to chat with my manager about my first project. The main project we had in mind was a performance audit on our Search surface areas, which the Search team requested from our team (Web Platform).

We thought it was a good project for multiple reasons:

  1. It was relatively short and non-urgent
  2. I’d meet people outside the team
  3. I’d have people inside the team I could lean on for support
  4. It was impactful because the opportunities we’d find could feed into H2 planning
  5. It was a good opportunity to learn about different areas of the code and internal tools

Since the upcoming project would require performance knowledge, I asked my manager if I could spend a week ramping up on performance at Pinterest, and he encouraged me to take the time I needed. I asked our performance subject matter experts to recommend the best resources for me to explore, and they curated a set of recordings to watch and documents to read. Thank you, Edar Liu!

I spent a week on:

  • Recordings of past performance analyses, wins, and regressions
  • Reading docs on our logging and metrics frameworks
  • Understanding existing performance dashboards

That preparation set me up for success in weeks 4–8 while tackling my first project.

Starting the project was a bit intimidating, but I had great support systems throughout the process. I created a kickoff document with my manager and teammates to align us on project goals. We agreed on a final artifact to deliver: an audit analysis with opportunities and recommendations to improve performance. We also set up a RACI (Responsible, Accountable, Consulted, Informed) chart to make each stakeholder’s responsibility clear.

From there, I set up a weekly sync with the key stakeholders. In each sync, we shared progress and blockers. Sharing progress iteratively allowed for fast feedback to keep us headed in the right direction.

Here’s what our Weekly sync doc looked like:

Google doc of our weekly sync. Table with name, blockers / questions / concerns, callouts / updates / accomplishments, and a final column for what’s next

This went on for four weeks until we finished the analysis and delivered the final artifact: a summary of our recommendations and analysis. These recommendations were prioritized for H2, and the whole team learned a lot about what we’re doing well and where we can improve 🎉

Rebecca’s project met the criteria we mentioned before of a good starter project. While mine was more platform-focused, hers was product-focused. She worked with product managers to improve the Pin video experience by implementing an “autoplay on hover” feature for A/B testing. It was a great opportunity for high impact, improved metrics, and learning.

Cat videos playing automatically when the user hovers over the pin

Even though the projects were different, they were a great learning experience for both of us. Working on these and succeeding made us confident contributors on the team.

Rebecca here, again 👋

We love having a growth mindset here, so we wanted to highlight some opportunities and tradeoffs, which we had a chance to share through surveys we received on the 30, 60, and 90-day marks.

Opportunities:

  1. Making Things Easier to Find: It was a bit difficult to find relevant information because information was scattered across various mediums like Google Docs, Slack, our internal tech documentation, and someone’s brain. This challenge is nothing new to larger companies, but it would be great to think about how we can streamline these resources and make it easier to find the right answer, quicker.
  2. Session Relevance: I felt that some sessions could be marked optional for folks with experience in the topic. For example, the GitHub session seemed helpful for engineers new to GitHub, but was redundant for folks already familiar with using the platform.

Trade-offs:

  1. Universal vs. Discipline-Specific Training: Although I love the idea of Basecamp sessions laying a standard foundation for all engineers, I felt it could be streamlined by having separate tracks like a Basecamp “Web” track and Basecamp “Backend” track. This would remove the need for our managers to let us know which sessions we can skip and prevent information overload by allowing us to focus on one onboarding plan. Having discipline-specific tracks would also help experienced Pinterest engineers become more “T-shaped” by allowing them to take a track that’s different from their primary discipline.

We also met with the Basecamp team to share our feedback, and it was exciting to discover that all of the points listed above were actively being addressed and worked on. We learned about new AI tooling for internal productivity meant to help get the answers we need, faster. We learned that Basecamp would be restructured to start with foundational sessions applicable to all engineers, while the following weeks would be discipline-specific content.

We were encouraged to see how teams across Engineering are actively working towards increasing developer velocity based on feedback they received from previous new hire cohorts and tenured engineers.

We hope you enjoyed a peek into our onboarding experience as web engineers at Pinterest! Jordan and I appreciated the structured process and endless support from our manager and teammates throughout our onboarding. Looking ahead, we feel confident about being impactful contributors to the team and are excited to make Pinterest better for our Pinners (last pun use, we promise!). If you’d like to join us on this journey, we would love to encourage you to apply. We’re sure the onboarding experience will be even better for you.

Reviewers: Vasa Krishnamoorthy, Jenny Steele, Tess Stairiker, Abby Wolfgang, Mark Cerqueira, Roger Wang

To learn more about engineering at Pinterest, check out the rest of our Engineering Blog and visit our Pinterest Labs site. To explore and apply to open roles, visit our Careers page.

Related Articles

Leave a Reply

Your email address will not be published. Required fields are marked *

Back to top button