SWE Internship @Uber

September 1st, 2023 marked the end of an incredible chapter in my life โ€“ my first summer internship as a software engineer with Uber and Growth Platform/DOCTOM Team. As I reflect on this unforgettable journey, I'm overwhelmed with gratitude. ๐Ÿ™โ˜€๏ธ

Over the past few months, I had the incredible opportunity to delve into the heart of Uber's infrastructure, where I conducted server performance load testing that aimed to push the boundaries of excellence. ๐Ÿš€๐Ÿ“Š

My task was to deploy six services into Uber's infrastructure, each with varying payload sizes, utilizing a spectrum of cutting-edge web development frameworks like Next.js, QwikCity, Golang FX, Vanilla KOA Server, and Rust/Leptos. The objective? To explore the tipping point at which services began generating error responses, determine the p99 latency with an error rate below 1%, and benchmark these results against Uber's internal framework, Fusion.js. ๐Ÿ“ˆ๐Ÿ”

Our goal was clear: to unravel the secrets of Fusion.js's performance and boost its maximum throughput. We followed a structured three-step approach:

๐Ÿ‘ฃ Step 1: Establishing a consistent and repeatable method to measure and analyze web application performance at Uber.

๐Ÿงช Step 2: Creating hypotheses and rigorously testing them to identify meaningful signals.

๐Ÿ” Step 3: Evaluating these signals, devising solutions, and prioritizing them based on their potential impact and feasibility.

What sets this experience apart is that all tests were conducted in a production environment, eliminating the variables associated with local testing. ๐ŸŒ๐Ÿญ

To achieve our goals, I relied on Uber's internal performance load testing tool, Ballast, and the third-party load testing tool, Artillery. We harnessed the power of the "Four Golden Signals" for monitoring server performance: latency, traffic, errors, and saturations (CPU, Memory, and File Descriptors). ๐ŸŒŸ๐Ÿ“‰

Additionally, during my internship, I took the initiative to streamline performance load testing within Uber's infrastructure. This involved the development of a simplified method using Uber's internal load testing tool, Ballast. I'm thrilled to share that my work was not only approved but has been fully integrated into Uber's infrastructure.

My research and work will potentially save the company between $400K to $1 million overnight and optimize Fusion.js's maximum throughput by 150%โ€”our primary research focus. ๐Ÿ’ก๐Ÿ’ฐ

My journey also involved working with a wide array of tools and technologies that I have never work with before, which include TypeScript, JavaScript, JIRA ticket services, Docker, and continuous integration/continuous deployment (CI/CD). I also dedicated my efforts to comprehensive documentation, enhancing the ease of creating services, navigating Uber's infrastructure, and modernizing an outdated deployment process from start to finish. ๐Ÿ“š๐Ÿ’ป

This summer at Uber has been a remarkable experience, and I am profoundly grateful for the trust, support, and opportunities I've received. ๐Ÿค๐ŸŒ†

I would like to thank more specifically my manager Matthew Harwood from whom I have learned a lot about Server Performance, my mentor Wasif Zaman for the guidance through Web Development, Diana Suvorova for continuous collaboration on collecting the required metrics, Jessica Stubbs for the continuous support through this 12 weeks, and many more engineers within Uber that helped me and from whom I have learned a tons.

Thank you, Uber, for this unforgettable journey and for allowing me to contribute to your mission of revolutionizing transportation and logistics. ๐Ÿš—๐ŸŒ

Last updated