Launching your career as an apprentice engineer at Pinterest

Pinterest Engineering
Pinterest Engineering Blog
4 min readMar 13, 2020

Alberto Carreras Carrasco | Core Product

In 2018, after more than a decade focused on environmental sustainability, I decided to start a new career as a software engineer. I enrolled in an immersive software development course in NYC, and a year later I was headed to a software engineering apprenticeship at Pinterest. This was to be my first professional experience as a software engineer, but I was prepared, excited to keep learning, and ready to move to San Francisco.

Through apprenticeships, engineers from non-traditional tech backgrounds can work alongside engineers with the opportunity to convert to a full-time engineer. Because apprentices often come from different fields or areas of study, they bring unique and valued perspectives to teams.

My Pinterest experience inspired me every day (one example is Pinterest’s company values, which include acting with integrity and putting Pinners first), provided many growth opportunities, and ultimately took me from apprentice to full time software engineer. Here I’ll summarize my apprenticeship within the framework of two of Pinterest’s core values: Win or learn and be an owner.

Win or learn

Based on the preferences I’d provided during the interview process, I was hired onto the Core Platform Web team, which is responsible for maintaining Pinterest’s web infrastructure. My individual work focused on enabling Pinterest engineers to do more efficient, higher-quality web development.

Most of my projects were large, critical, team efforts. When I started, one of the highest priorities was to complete a migration of the web servers from Python to Node.js. Many of my initial tasks supported this cross-team effort and helped me gain familiarity with our file-based routing system and the reusable solutions implemented in each of the route controllers.

As part of the onboarding process, I also worked on bugs related to Flow issues. These smaller tasks introduced me to Flow , a static type checker for JavaScript, which prepared me for working on improving Flow coverage throughout our source code.

As in any new job, the first days felt pretty overwhelming, in no small part due to my teammates’ seniority and obvious expertise. However, my impostor syndrome soon faded thanks to the support of my colleagues and mentor. A memorable moment came early on after I pushed code that failed our internal integration tests. My mentor helped me revert the commit and communicate with everyone involved to fix the issue. Instead of getting negative feedback from my team (or having to worry about being silently judged), my mentor shared the full details on our team channel in Slack, and everyone celebrated my opportunity to learn! It was a Win or Learn moment where an encountered problem turned into a great learning opportunity.

Pinterest also provides plenty of resources for actively learning on the job. For instance, all web engineers can attend weekly Hangout & Refactor sessions. During these sessions, we discuss best practices and pair-program to clean up technical debt. Pinterest also organizes an annual Make-A-Thon — a multi-day hackathon where engineers can team up, develop an idea or project outside of their regular responsibilities, and work with other engineers from around the company. The Make-A-Thon allows everyone to get exposure to different parts of Pinterest’s tech stack, products, and features.

Be an owner

After my warm-up tasks, I started working on two high-impact projects. The first was to remove features deprecated in the upcoming React versions (e.g., all legacy context, unsafe lifecycle methods, defaultProps in function components, and “Javascript:” URLs) and upgrade all React dependencies currently using those features.

The second project is an ongoing effort to improve and extend Gestalt, Pinterest’s open-source set of React UI components used across our sites for UX & accessibility consistency. Contributing to Gestalt allowed me to work in collaboration with other teams and designers on an open-source project in a layer closer to what Pinners actually see.

Both of my main projects required me to practice one of Pinterest’s core values: Be an owner. In order to make Pinterest succeed, I extended my work beyond coding by doing project planning, writing documentation, reviewing lots of code, and giving internal technical presentations (and even writing this blog post!).

The key factors for success as an apprentice engineer were taking active ownership over projects and tasks, bringing high visibility to my work, and embracing Pinterest’s values. It was a great experience overall and helped me launch my software engineering career.

Pinterest’s apprenticeship program was a unique opportunity to start my career as a software engineer. I had the support of a dedicated mentor and an extraordinary community of talented engineers sharing the excitement of building the world’s first visual discovery engine to bring everyone the inspiration to create a life they love.

--

--