Growing up, Janani Narayanan had aspirations of becoming a neurosurgeon—but when she realized she couldn’t stand the sight of blood, that dream quickly vanished. Soon after, it was replaced with a passion for coding, which ended up inspiring her to become a software engineer.
“When I was in undergrad I took up coding challenges in ACM MIPT and SPOJ as a hobby and never looked back,” she says. “Practical applications of data structures and algorithms are part of a fascinating world to unravel.”
After working for Amazon DynamoDB for four years—during which time it grew from about 30 engineers to 200—Narayanan wanted to trade her job at one of the world’s biggest tech companies for one somewhere a bit smaller. That’s what led her to Uber, where she’s currently a senior software engineer.
“I was looking to change to a relatively small B2C company in order to get more responsibility,” she says. “Also, I was spoiled by the tooling and infrastructure available at a juggernaut and wanted to understand and try out open-source technology at a company that didn’t have the same kind of resources as Amazon. Uber delivered on both fronts.”
Here, Narayanan shares how she’s finding work-life balance as a new mom, what an engineering candidate at Uber can do to stand out, and the importance of finding mentors.
In addition to wanting to work for a smaller company, what inspired you to interview at Uber?
In my mind, Uber was associated with black cars at that time and one of my friends booked me an Uber to get me out of that mental block. I used the app for a month and realized that the possibilities in transportation are endless.
What are you responsible for in your role?
I work in fares and rider pricing, which is a team responsible for coming up with pricing a trip in real-time based on weather, traffic conditions, and events that can affect trip duration. The role involves working closely with ML engineers, helping them productionize the models, measuring the impact of new models, and building a platform to launch pricing strategies globally on an ongoing basis without any disruption to user experience. Our team had to adapt to COVID and figure out methodologies to keep the prices affordable even in the case of under-supply.
What types of learning and development opportunities does Uber offer for engineers?
Uber offers unlimited access to the O’Reilly Learning Platform, which has courses and books ranging from programming languages to management to finance available. I have personally benefited from getting a beginner’s understanding of machine learning from the vast collection of books available to use at our own pace. On top of this, there are partnerships with Harvard Business School on soft-skills development and employees can enroll every quarter and complete set assignments. It is also highly encouraged that engineers attend conferences relevant to their field, and folks usually share their learnings from conferences with their respective teams—which is a win-win.
What do you like best about the engineering culture at Uber?
Uber practices bottom-up planning, where engineers—regardless of level—can consistently propose a new opportunity or significant shift in how we do things. If there is data-driven rationale on why we should invest in that effort, it gets prioritized.
I have formed two teams in my stint at Uber and there is generally a lot of support around this from leadership. Uber is very scrappy in a good way. For example, we launched Tips in the app in a matter of months. There are usually calls to form tiger teams to work on a problem, and engineers can jump on the opportunity regardless of their team and work on it for a few months to launch.
What is the most exciting project you’ve worked on at Uber?
I got the opportunity to lead and work on an interesting applied machine learning (ML) problem. My team specializes in building ML models that price a trip in real time. We have millions of predictions per market based on ML models that need to be deployed to production every week across the globe, and our pipeline had a bunch of manual interventions to operationalize this end to end. The overall process took three days for every market in a successful iteration and required intensive on-call hours to debug issues with tighter service level agreements (SLAs).
I revamped the architecture to reduce the number of dependencies, standardized state management across regions and pricing strategies, automated retriable failure handling, surfaced errors to stakeholders proactively, and programmatically established clear SLAs. This constitutes 60% of our global gross bookings, and now seamlessly scales to new markets and reduces productionization time to a couple of hours.
What can an engineer applying for a job at Uber do to stand out?
For every area of technology Uber has built and uses—data, AI, ML platform, architecture revamp—one can find a sea of information in our public blog. It would be very insightful to read through these and make an opinion of what could be done differently or better. When I interviewed at Uber, one thing that stood out to me was Uber’s inclination towards using in-house infrastructure. It led to an interesting discussion during interviews around the trade-offs considered at that point in time.
What challenges have you faced as a woman in engineering, and how have you overcome them?
There are times when I have found myself being talked over in meetings. I usually pull the person aside and point out what just happened. More often than not, it was unconscious. At times, I have had allies who are part of the same meeting help interrupt the interruption.
How has Uber helped you find work-life balance as a new mom?
Uber has a phenomenal and equitable 18-week parental leave policy for both parents. During the pandemic, Uber came up with many flexible work policies, including mental wellness days and a modified work hours policy. Our nanny contracted COVID and for two weeks I was able to work flexible hours that my manager and I agreed upon. These conversations are not frowned upon, but rather encouraged. It is a super supportive environment for parents to have work-life balance and not feel constrained by set schedules or even locations.
What skills and traits have helped you succeed in your career?
Owning my career and having a plan has generally helped me. Every time I join a company I make sure that I have a plan of what skills I would like to develop and an exit criteria, whether it’s networking with folks who have an entrepreneurial mindset, working in an early-stage team where the majority of problems are yet to be solved, or building the muscle to pitch and build a new team from scratch.
When working with a team, it is important to find ways to be useful. In one of my teams I was always on call, in the sense that every time there was a high-severity alert I’d hop on the call, listen to how the on-call engineer was solving the problem, and be useful to them by doing whatever small task needed to be done. This helped me reduce ramp-up time by six months and was a very straightforward way to become a subject-matter expert.
Colleagues and relationships are more important than the job—meaning if you have been useful to your team, the next best opportunity will come through colleagues rather than the current job. Almost 80% of the new job opportunity emails that I get are from ex-colleagues.
What advice do you have for women who want to pursue a career in engineering?
I can’t stress enough the importance of finding mentors within and outside of your current job. At the end of the day, mentorship is still guidance and you have to take the initiative to act on the guidance if it resonates with you. For every dissenting voice, there are 10 more supportive voices and it is a question of which one we give more attention and energy to.
Until the pandemic, I had this habit of meeting one person I don’t work with every month for lunch. Those relationships have helped me broaden my knowledge and also identify new opportunities.