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