11/20/2024 | News release | Distributed by Public on 11/20/2024 09:37
Andrew Whitaker is a Staff Engineer at MongoDB. His previous experience spans tiny startups to enormous organizations like AWS, where he held several different roles focusing on databases. Before joining MongoDB, he worked at a startup building optimized machine learning models in the cloud. Read on to learn more about why Andrew decided to join MongoDB in a senior-level engineering role and how his work is driving improvement within our engineering organization.
I have long been a fan of MongoDB's products and services. MongoDB the database has always been a pleasure to work with - the system "brings joy" to quote a phrase. As a Python developer, I appreciate how the Python driver feels "Pythonic" in a completely natural way. The programmer interacts with the database using Python constructs: dictionaries, lists, and primitive types. By contrast, SQL databases force me to change my mental model, and the query language feels like an add-on that does not blend with the core language.
As an engineer, I am always looking to expand my knowledge and grow my skills. The scope of challenges engineers face at MongoDB is what triggered my interest in the company. We obviously have people working on core databases and distributed systems. But, we also have teams dedicated to machine learning, streaming data, analytics, networking, developer tooling, drivers, and many more areas. It is very hard to get bored working at MongoDB.
Finally, I would be remiss if I did not mention the people. Overall, MongoDB's engineering culture prioritizes intelligence, low ego, and an ability to get stuff done.
Working at MongoDB has provided me with opportunities for continued learning and growth. Though I do not program as much as I did earlier in my career, I have recently been exploring the Rust language. I'm excited by Rust because it avoids the tradeoffs between predictable performance and safety. My work in the search space has given me exposure to the fast moving world of AI: vector embeddings, RAG, etc. For various reasons, I think MongoDB is uniquely positioned to do well in this area.
On top of this, I'm working on some initiatives that are not fully public. I can say that one focus area is improving the sharding experience for our customers. We believe MongoDB sharding is best-in-breed. Still, the process requires more manual configuration than we think is ideal: customers select the shard key, cluster type, shard count, etc. We give guidance here, but I think we can raise the bar in terms of offering a seamless experience with less "futz". I'm also working with the search team. We believe there is a natural affinity between MongoDB's document model and AI/ML workloads. We have some features in the works that extend this integration in new and interesting ways.
I also spend a fair bit of time driving quality improvements across our suite of products. Our CTO Jim Scharf frequently refers to our "big 4" goals: security, durability, availability, and performance. These goals are more important than any feature we build. I've been working across the company to help teams define their availability SLO/SLAs. It turns out that measuring availability is a subtle topic. For example, a naive approach of counting the percentage of failed requests can underestimate downtime because customers make fewer requests when a service is unavailable. So, the first step is to clarify the definition of availability.
Finally, as a lapsed academic (in a distant life, I was a graduate student at the University of Washington Department of Computer Science and Engineering), I'm always interested in finding ways to bridge theory and practice. I've been collaborating with some folks in our research team to drive improvements to our replication protocols. There are theoretical results that suggest it is impossible to simultaneously achieve low latency and strong consistency ("linearizability" in the technical jargon). However, we believe there are intermediate points in the consistency/latency spectrum that have not been fully explored. This work hasn't been made into a product yet, but stay tuned.
MongoDB is a hybrid company. Like many of our engineers, I work outside the company headquarters in New York City (I live in Seattle). I appreciate MongoDB's approach to hybrid working and that company leadership, starting with Dev, cares about the well-being of their employees. It seems there are companies that don't seem to trust their employees to make decisions, such as which days to come into the office, so I'm thankful for the autonomy I receive at MongoDB to work in a way that's best for me. Remote work has its challenges, but I would say that the benefit for my work/life balance has been transformative.
I have found MongoDB engineers demonstrate a strong mix of technical depth, pragmatism, and empathy. I have yet to find the "smart jerk" prototype that seems to exist throughout the tech industry. Overall, I have found MongoDB is open to change and growth at both the team level and the individual level. There is a willingness to evolve and improve that aligns with the company's values and leadership principles and enables the success of our technology and people.
Find out more about MongoDB culture and career opportunities by joining our talent community.