Someone recently pointed out to me, rather insightfully, that MongoDB is a good fit for archival of relational data.
I had not really considered this before, but it is a good point : flexible schemas are very helpful for archival. How do we keep an archive of data, say, 10 years or more of data history, when over that time period the schema will undergo significant changes? It is not so easy.
One approach would be to apply any schema changes from the online / operational database at the archival database too. However, there are some issues. First, the archival database may be huge, making schema migrations impractical. But more importantly, these changes may not be what we want in an archive. Imagine we decide to drop a column in the online db. It may now be deprecated and unneeded. However, a true and complete archive would still have that data. Dropping the column in the archive is not what we want.
Document-oriented databases, with their flexible schemas, provide a nice solution. We can have older documents which vary a bit from the newer ones in the archive. The lack of homogeneity over time may mean that querying the archive is a little harder. However, keeping the data is potentially much easier.
Special Price for MongoDB for Administrators Training
10gen is launching a two-day training program called MongoDB for Administrators. Anyone administering MongoDB will find this course invaluable. The comprehensive, 2-day session will be led by one of the software engineers at 10gen working on the database. The course covers everything a database administrator needs to know to successfully deploy and maintain MongoDB databases and shard clusters. In addition to deployment and maintenance, course topics will include diagnosing performance issues, importing and exporting data, and establishing the proper backup and restore routines. We'll present ideal hardware configurations and discuss common pitfalls for new deployments. The course also includes an overview of the MongoDB CRUD API, the command shell, and the drivers. The normal price of the course is $1695, but for our first sessions in San Francisco or New York City, we are offering a special introductory price of $895/person The courses are limited to 10 attendees, so register now to secure your space. New York MongoDB for Administrators Training September 16 & 17, 9:30am-5:30pm The New York City training will be conducted by Kyle Banker and held at Gilt Groupe’s offices on Park Avenue and 32nd Street. Kyle is a Software Engineer at 10gen where he maintains the MongoDB Ruby Driver and supports the Ruby developer community. He’s also the author of the forthcoming book MongoDB in Action , to be published by year’s end. Register Now San Francisco MongoDB for Administrators Training September 28 & 29, 9am-5pm The San Francisco training will be conducted by Mathias Stearn and held at ExecuTrain’s Embarcadero location, one block from BART. Mathias is a Software Engineer at 10gen where he works on the core MongoDB server and maintains the C++ language driver. Register Now Have questions? If you have additional questions about our training programs, you can speak with our sales team or one of the instructors by calling 1-866-237-8815 or emailing firstname.lastname@example.org.
How to Prepare for Your Engineering Interview at MongoDB
MongoDB’s Engineering team is full of creative individuals who play an impactful role in building our industry-leading technology. Our interview process is designed to ensure that you and MongoDB are a great match, and, no matter how many interviews you have done in the past, being prepared is the key to being successful. At MongoDB, we do our best to make sure you have a great interview experience and an opportunity to learn about our company, culture, and the people you will be working with. To help you prepare for your technical interviews, we want to share some tips. Research is key Candidates who do research and come prepared for interviews at MongoDB are able to make the most of their interview process. People sometimes think they do not need to do research because they are already familiar with our products, but that will set you up for unexpected surprises. Before beginning your interviews, you should have high-level knowledge of our company’s mission, values, and goals . The in-depth technical information you can learn about MongoDB and the role and team you are interviewing for may also help set you apart from other candidates. MongoDB has a variety of products and Engineering teams, and this information will give you a chance to learn more about what we are working on, technical stacks we use, and what you’d be contributing to if you joined. Take a look at some of the resources below, and use them to your advantage. MongoDB Blog : Our blog is updated regularly with new posts about life at MongoDB, news, products, and events. MongoDB University : This platform was created to empower developers through education. We offer completely free online courses led by Curriculum Engineers for any learner, whether you’re just getting started or already familiar with MongoDB. MongoDB Documentation : The documentation page has detailed information about our products and tools that will give you an idea of what you will be working on as an engineer. MongoDB Developer Hub : The developer hub provides articles on and resources for how to get started with MongoDB. Learn from our Developer Advocates and the MongoDB community! Types of interviews After doing some initial research, it is important to prepare for the actual interviews. Our interview process usually includes one or two virtual interviews and then an onsite interview, which we are currently conducting via Zoom. This may change in accordance with company and COVID-19 guidelines. These interviews and what they cover will vary by team, so it is important to speak with your recruiter and ask for any additional tips or insight into what to expect. Our recruiting process is primarily team-based, which means you’ll interview for a role on a specific team, and many of your interviewers will be team members, as well as your manager. In general, you can expect to receive questions about your background, interest in MongoDB, and why you are interviewing to work with that team. You’ll also have the opportunity to ask your interviewers questions about all things MongoDB. Technical Interviews Technical interviews have a variety of areas that may be covered, including concurrency, distributed systems, algorithms, system design, and language-specific coding. An important part of the technical interview that often goes under the radar is the need for effective communication when talking through your thought process or discussing the problems that are presented. Below are some of the things our engineers look for in a good technical performance. Writing code: strong understanding of the language being used, code is concurrency-safe, works in edge cases, good object-oriented design Software engineering: understanding of data structures and algorithms, considering trade-offs (e.g., run time vs. memory), testing your code Collaboration: clear and concise code that is readable and organized, responding well to suggestions or hints, effective communication about difficulties faced Systems design: design a solution to scale to high levels of concurrency, throughput, and reliability. Does it avoid common bottlenecks, how do we prove its correctness, and what are the trade-offs or alternative solutions? Behavioral Interviews Behavioral interviews focus on how you may add to the culture we continue to build at MongoDB. Reviewing our code of conduct and core values will show you how we operate as a company and what we expect from our employees. Other topics of discussion you should expect in these interviews are successes and failures, what you have learned from these experiences, and what you are looking for in your next role. We will also ask you about your experience with mentoring and learning from other engineers and leaders, your goals and aspirations for the future, and your experience with owning or leading projects. What we offer There are a few things we can promise if you decide to interview for an Engineering role at MongoDB. First, you’ll have a speedy and transparent process with a single, dedicated recruiter. We tailor each of our interview processes to fit the role’s responsibilities and seniority level, and you won’t be asked any riddle questions that aren’t related to the work you’d be doing. Our interview questions are typically sourced from real problems we have had to solve. You’ll also have the opportunity to interact with your future manager and some future teammates, and we hope you find that your interviewers are genuinely interested in you as a person and seeing you succeed at MongoDB. We believe different experiences, identities, and perspectives build a unique culture that helps us create and innovate the next generation of MongoDB. In short, following this guide will help prepare you for a successful interview at MongoDB. Ensure you have gained some knowledge about our company, mission, and goals; the role you’re interviewing for and the team you’d be working on; and the types of interview questions you may be asked. And be prepared with questions for us! We’re so glad you’re interested in joining our team, and we look forward to seeing you in the interview process. Interested in pursuing a career in engineering at MongoDB? We have several open roles on our teams across the globe and would love for you to transform your career with us!