Here's what we're reading at MongoDB:
Intern Spotlight: Jason Hu
This year, MongoDB welcomed 33 university students to our intern program in Engineering, Marketing, and Education. In this series, we'll introduce you to the talented students who are helping us transform development and operations for how we run applications today. I had the chance to sit down with Jason Hu who spent the summer in our Palo Alto office working with the CAP team! Where do you go to school, what is your major, and what year are you in? I'm a rising senior at Brown University, where I study computer science. What is your role at MongoDB? I’m a software engineering intern on the CAP team. How did you find out about the internship program at MongoDB? Why did you choose to come to MongoDB? I actually started computer science a year late, so I didn’t really know about tech companies, let alone MongoDB until late in college. As I did more CS I learned from upperclassmen and recent graduates about the company, and it seemed like a cool mix of technical challenges that thought big. What’s your hometown? I actually grew up in the Silicon Valley—I’m from Los Altos, California. My friends and I would walk by Facebook when it was still a small startup in Palo Alto. Did you have previous experience using MongoDB before you arrived? If so, how are things different now that you work at MongoDB? If not, how did you learn MongoDB and how was the education process? I had no experience whatsoever. To be honest, databases had been a huge, intimidating block of computer science and software engineering that I haven’t really touched before. I figured throwing myself in the deep end would be the best way to learn, and after one week of orientation I definitely learned more than an entire semester. All the on-boarding staff and mentors were terrific—they should consider becoming professors, after they retire. Working on actual projects has also taught me loads about databases—not just how to use them, but how to think about them in the larger picture of an enterprise or business. Bike or public transportation to work? I drive, actually. One of the perks of being at home, I suppose, is having my old car. What’s a typical day (or week) for you? Well, it’s really hard to say since every week I’ve had has been so different. Some days will be very focused, where I can put on some ear-buds and crank out code. Other days will be back-to-back meetings or presentations, where I’ll be learning about MongoDB’s history or theoretical concepts about databases or road mapping my project for the next week. And I can’t forget the fun! A typical week always has a bunch of great events, from smaller game nights to larger company outings, such as to indoor skydiving, Giants games, or go-karting. The intern coordinators really out-do themselves. What do you love most about MongoDB? Definitely how much I’ve learned. I can say without exaggeration that I learned more about databases during onboarding than an entire semester of the class. But it’s more than just coding chops: Watching the ins-and-outs of a startup has been fascinating. For me, it’s easy at school to be stuck in a narrow path of problem solving—improving runtimes, cleaning code, etc.—but the challenges outside of code are usually not so neat and controlled. Hearing about the problems of marketing, finance, design, and HR has been incredibly illuminating for so much work we take for granted. What’s the most challenging aspect of your job? Adapting and learning on the fly is definitely something I need to work on more. In school, we have a general sense that a right answer exists, and what it should look like. In engineering in the real world, however, there aren’t necessarily the right answers in the back of the book. Now as an engineering intern, my main challenge isn’t finding the right answer, but rather figuring out whether a problem is feasible, what the solution looks like, and whether it’s worth my time. And this isn’t an easy process. During the course of the summer, as I learned and tested different languages and programs, my project had to change and sometimes backtrack as I adapted. What’s do you hope to accomplish while you’re here? The cool thing about Cluster Bingo was that I got the start it from scratch—decisions for structuring the code, as well as library and language decisions, were all mine. So my goal wasn’t necessarily to rush out a fully functional version. Instead I wanted to think about what are its long-term goals, and how to design it in such away that enabled the growth and continuation of the project after I leave. What’s your favorite Seamless lunch order? Definitely any sandwich from the Ace of Sandwiches. Name one secret skill you have, unrelated to work. I’m a really mean baker. Literally. Apparently I get really bossy, but my cakes also are fantastic. Where do you want to be in five years? I picked this question because, well, as a rising college senior it’s kind of on my mind a lot. The honest answer is “I don’t know,” but I can say that one way or another I know I’ll be programming. Which isn’t necessarily to say I’ll be a software engineer: The past few months, I’ve realized that I can use code within any of my interests—advocating social and economic justice, product design and user interfaces, and even my original major of biology and bioengineering. Given how much my interests and skills have changed in the past five years, it’s impossible for me to really know where I’ll be in the upcoming five. All I hope is to somehow find a way to combine some or all of my interests through coding, whether that’s through a software company, start-up, or NGO. Kindle or book? What’s your favorite book? I haven’t read anything on Kindle yet, so I’m going to have to say books. However, the moment Amazon figures out how to give Kindles that old-book smell, I might have to give it a shot. It’s really hard for me to pick a favorite book, but the one that I always find myself rereading is the graphic novel Blankets by Craig Thompson. His illustrations and paneling are gorgeously done, and he has a great ability of capturing little, human interactions in his characters. Every time I read it I find something new. Describe your perfect weekend. Wake up Saturday morning and start off with hiking or the gym. Then I like going up to a museum in San Francisco: The Academy of Sciences in Golden Gate Park never gets old. Afterward, catching up with friends over dinner, before going out for the night or hanging out at their apartments. The next morning usually entails people watching in the park, and finally settling into a book on the train ride home.
Splitit & MongoDB Atlas: Racing to Capture a Global Opportunity
Splitit is a global payment solution that allows businesses to offer installment plans for their customers. Unlike with other buy now, pay later (BNPL) solutions, Splitit shoppers can split their online purchases into monthly installments by using their existing credit, without the need for registration, application, or approval. “We have a very different proposition than others in this space,” says Splitit’s CTO, Ran Landau. “We’re not a financing company. We utilize the customer’s existing credit card arrangement, which allows us to accommodate smaller average deal values and a broader range of installment schedules.” Splitit works with online retailers across all market sectors and diverse price points, and recently raised $71.5 million in investment to fund global expansion. Following its IPO in January 2019, the business had seen strong growth as more consumers moved from brick and mortar to ecommerce. Then COVID-19 hit, and online shopping boomed. Landau recognized that the company needed to quickly scale its infrastructure in order to capture this large opportunity. The Need for Speed Landau joined Splitit in May 2019 and worked to modernize the company’s infrastructure. At the time, the team was using a traditional relational database. “As tech leaders, we need to make the right decision,” he says. “When I came to Splitit, I knew I needed a powerful NoSQL server so that my developers could develop faster and so that we could scale – both things that our relational databases were failing to deliver.” In the interest of getting up and running quickly, Ran’s team thought that they could move faster using a cloud-provider database that mimicked MongoDB functionality. He had used MongoDB before and saw that this solution offered the same drivers he was familiar with and claimed compatibility with MongoDB 3.6. Initially, the new solution seemed fine. But as the team started to migrate more data into the database, however, Landau noticed a few missing features. Scripts for moving documents from one collection to another were failing, and overall performance was deteriorating. The application became slow and unresponsive even though the load on the database was normal. “We were having issues with small things, like renaming collections. I couldn’t search or navigate through documents easily,” recalls Landau. Offline Database: A Breaking Point The application was unable to communicate with the database for 20 minutes, and when the database finally came back online, something wasn’t right. Landau contacted support, but the experience was not very helpful. “We were not pleased with the response from the database vendor,” he explains. “They insisted that the issue was on our side. It wasn’t so collaborative.” Fortunately, he had taken a snapshot of the data so Splitit was able to revert back to an earlier point in time. But the incident was troubling. Other teams also had been complaining about how difficult it was to debug problems and connect to the database successfully. Landau knew he needed to find a better solution as soon as possible. MongoDB Atlas: A Reliable, Scalable Solution Landau believed that MongoDB was still the right choice for Splitit, and investigated whether the company offered a cloud solution. He discovered MongoDB Atlas and decided to give it a try. “The migration to MongoDB Atlas was so simple. I exported whatever data I had, then imported it into the new cluster. I changed the connection strings and set up VPC peering in all of my environments,” says Landau. “It was incredibly easy.” Not only was MongoDB Atlas built on actual MongoDB database software, but it was also secure, easy to use, and offered valuable features such as Performance Advisor . “It can tell you which indexes need to be built to increase speed. It’s such a powerful tool — you don’t need to think; it analyzes everything for you,” explains Landau. Another great feature was auto-scaling. “My biggest concern as I scale is that things keep working. I don’t have to stop, evaluate, and maintain the components in my system,” says Landau. “If we go back to doing database operations, we can’t build new features to grow the business.” Auto-archival Made Easy with Online Archive As a business in the financial services industry, Splitit needs to comply with various regulations, including PCI DSS . A key requirement is logging every transaction and storing it for auditing purposes. For Splitit, that adds up to millions of logs per day. Landau knew that storing this data in the operational database was not a cost-effective, long-term solution, so he initially used an AWS Lambda function to move batches of logs older than 30 days from one collection to another periodically. A few months ago, he discovered Online Archive , a new feature released at MongoDB.live in June 2020. With it, Landau was able to define a simple rule for archiving data from a cluster into a more cost-effective storage layer and let Atlas automatically handle the data movement. “The gem of our transition to Atlas was finding Online Archive,” says Landau. “There’s no scripting involved and I don’t have to worry about my aging data. I can store years of logs and know that it’s always available if I need it.” Online Archive gives me the flexibility to store all of my data without incurring high costs, and feel safe that I won't lose it. It's the perfect solution. Ran Landau, CTO, Splitit With federated queries, the team can also easily analyze the data stored in both the cluster and the Online Archive for a variety of use cases. Ready for Hypergrowth and Beyond Looking back, Landau admits that he learned his lesson. In trying to move quickly, he selected a solution that appeared to work like MongoDB, but ultimately paid the price in reliability, features, and scalability. You wouldn't buy a fake shirt. You wouldn't buy fake shoes. Why buy a fake database? MongoDB Atlas is the real thing. Ran Landau, CTO, Splitit Landau is confident that his investment in MongoDB puts in place a core building block for the business’ continued success. With a fully managed solution, his team can focus on building features that differentiate Splitit from competitors to capture more of the market. “We saw our growth triple in March due to COVID-19, but the sector as a whole is expanding,” he says. “Our technology is patent protected. Everything we build moving forward will be on MongoDB. As a company that’s scaling rapidly, the most important thing is not having to worry about my scaling. MongoDB Atlas takes care of everything.”