As Senior Director of Engineering for Uber’s Product Platform, Jennifer Anderson leads the teams responsible for building and operating the underlying business platforms that help power Uber’s portfolio of products such as rideshare and Uber Eats food delivery. Jennifer’s responsibilities also include the engineering tools and platforms for data analytics, machine learning, customer care, marketing, and business communications.
Jennifer’s education and experience with high-tech companies in the San Francisco Bay Area made her a great fit for Uber when she joined in 2016. Along with a Ph.D. in Computer Science from Stanford, she gained experience at early computing giant Digital Equipment Corporation (DEC), where she worked as a research scientist, and at the cloud infrastructure company VMWare.
We sat down with Jennifer to talk about her early days, work, and technical milestones at Uber:
What is your role at Uber?
I’m the engineering leader for Uber’s Product Platform organization. You can think of Product Platform as being Uber’s business infrastructure. We provide many of the tools, platforms, and services upon which our suite of products are built.
We think of Product Platform as having three pillars. Our marketing and communications platforms comprise the first pillar. As an example, the AdTech team from my organization focuses on tools to optimize ad campaigns run on external platforms by Uber’s marketing team. This pillar also includes our internal communications platform, our business automation platform, as well as our customer identity platform, which is responsible for user sign-up, login, and authentication.
A second pillar of Product Platform centers around customer obsession and building a quality customer care experience from end to end. The team’s responsibilities include building automation to streamline support, providing support across a range of different channels (such as in-app, phone, and chat), and building the tools used by our customer support agents to successfully resolve customer issues.
The final pillar covers our data systems and core services, and is the largest pillar in the team in terms of the number of engineers. This pillar includes our core data analytics infrastructure and platforms as well as our machine learning platform, experimentation platform, and visualization capabilities. Uber is a heavily data-driven company, and these teams support a wide range of stakeholders, from data science to city operations teams, as well as other engineering teams that build on top of these services.
Given the scope and breadth of your organization, how do you strike a balance between collaboration and autonomy across your teams?
We must be mindful of the fact that we have people working in other time zones, from San Francisco, Palo Alto, and Seattle to Bangalore and Amsterdam. We need to schedule meetings at times that are friendly to those time zones, even when that means an early or late meeting here. We want to make sure that all of our teams play a key role in the conversations relating to the work they are doing, and that they participate equally in terms of strategic planning and execution.
Having a clearly defined charter is key to the success of any remote team. But we also need to take care that the team doesn’t become isolated if their work doesn’t intersect at all with other teams. We want to strike a balance between giving teams ownership of their charters and autonomy to execute, while having them participate in strategic planning in conjunction with the larger organization.
How do you keep these disparate teams aligned with overall strategy?
We have company and tech-wide initiatives that all teams participate in as part of our overall planning process.
At the Product Platform level, we provide overall guidance on the themes our teams should focus on, which are aligned with the overall company priorities. We also define a set of high-priority projects within the themes that allow us to move the needle for the company. At the same time, I want individual teams to maintain the autonomy to come up with their own projects as well. I try to balance between a good mix of top-down initiatives versus allowing space for the bottom-up initiatives as well.
Why did you decide to join Uber?
I was a big fan of the product from very early on and was impressed by how seamlessly it worked. It’s also important to me to work at a company that is making a significant impact. At Uber, we are fundamentally changing how people and things move and opening up earnings opportunities for many people around the world. A number of people that I highly respect had come to Uber, and it made me want to take a look at the company. Everyone I met here was friendly, dedicated, and incredibly talented. I thought it was a fantastic opportunity for me.
What were your first impressions of the company?
I was amazed at how quickly the company had grown and how the engineering team was able to keep pace to scale with the business while continuing to innovate. That’s one of the things I enjoy the most about Uber; it’s a dynamic, fast-paced environment with interesting projects happening all around the company.
Since I joined Uber in mid-2016, we’ve put a great deal of focus on continuing to make our systems more scalable and reliable. As Uber has evolved into a more mature company, there’s also been a shift towards longer term initiatives. At the time I joined, most engineering projects were focusing on a one to two quarter time-frame since the company was growing and changing so quickly. Now we have a good balance of short-term as well as longer-term efforts, with increased collaboration between teams and greater reuse of existing components.
What lessons from your earlier career do you bring to Uber?
When building software, ideally you want to build it the right way up-front with sound architectural and well-thought out design. Deviations from such best practices should be made as conscious decisions. It’s valuable to have the flexibility to make trade-offs, for example, building something quickly in order to learn from it. However, it’s important to have the discipline to put time into schedules to go back and ensure that the software gets built properly before it’s considered complete.
What are some recent big achievements in your organization?
There are so many, it’s hard to know where to begin! Across Product Platform, we’ve been focused on building out the functionality of our platforms in order to drive efficiency and improve products for our customers. In the area of customer care, we’ve made a number of improvements to the overall customer experience and in turn significantly reduced the number of support tickets. The team has also invested in building out the tooling used by customer service agents to help address issues more quickly and accurately.
The AdTech team has developed new algorithms for the automation and optimization of media-buying campaigns and recently won the AdExchanger Awards in the category of Best In-House Media Operation. In the Customer Identity area, the team has rolled out additional two-step verification options for riders to give them more visibility and control over their account security. The Data team has made major improvements to the efficiency and performance of our data systems while also launched a new GPU-based real-time analytics system called AresDB. Our Data Visualization team recently open-sourced the Autonomous Vehicle Standard (AVS) as an open standard for visualizing the data from autonomous vehicles.
Interested in helping us enhance and develop Uber’s transportation platform? Check out open roles in our engineering organization!