Book Review: The Little Mongo DB Schema Design Book

I mentioned in a previous post on Schema Design I mentioned a book on the subject and that I hadn’t, at the time, read it. After hearing The Little Mongo DB Schema Design Book by Christian Kvalheim mentioned elsewhere I thought I would see what it was all about. The book was published in May of 2015. Even though it is a bit old, the coverage of schema design is still relevant.

The Little Mongo DB Schema Design Book

MongoDB Overview

Kvalheim starts off the book with a quick introduction to MongoDB and some basic principles of schema design before moving into some examples of data modeling patterns. I thought his discussion of One-To-One, One-To-Many, and Many-To-Many data models was well done. He used some good examples of blogs and users to explain the concepts in an easy to follow fashion.

Kvalheim moves on from there to cover an overview of storage engines available in MongoDB. Specifically the MMAP and WiredTiger storage engines. This provides nice coverage for those using older, pre version 3.2 instances of MongoDB, as well as those who have opted to upgrade to more recent versions. At the time of this writing, version 3.6 is the most current.

After the discussion on storage engines, we are provided with information indexes and sharding concepts before diving into specifics about schema design itself.

Schema Design Patterns

Once we move into the design pattern section of the book, Kvalheim does a nice job of breaking each design option down. He follows a consistent format for each pattern discussing the unique aspects of typical data modeling patterns. He showcases their operations and provides recommendations for indexing, scaling, and performance implications.

The examples are done very well and provide some great coverage of a wide variety of use cases for data storage. Some example schema designs covered are:

  • Time Series
  • Account Transactions
  • Internationalization
  • Shopping Carts
  • Reservations

In total eleven distinct design concepts are explored.


One of the downsides to print books about technology topics is the speed in which the information changes. There are indeed a lot of installations of MongoDB using versions before version 3.2. Being a user of MongoDB after 3.2 I found the discussions of the MMAP storage engine to be less relevant than they were in 2015.

There were a few type-setting issues in this schema design book but I didn’t find those to be too troubling. They generally just required rereading the sentence a time or two to grasp the meaning of the sentence.

Wrap Up on the Schema Design Book

Overall, I found this book to be a great resource for schema design. Definitely an excellent addition to one’s library for application development when using MongoDB as a database. There are some features in post-2015 releases of MongoDB that assist developers and database administrators in schema management as well. Document validation was introduced in version 3.2. Version 3.6 extended the validation process with schema validation.

Follow me on Twitter @kenwalger to get the latest updates on my postings. Or better yet, sign up for the email list to get updates in your mailbox!

There are a few MongoDB specific terms in this post. I created a MongoDB Dictionary skill for the Amazon Echo line of products. Check it out and you can say “Alexa, ask MongoDB for the definition of a document?” and get a helpful response.


Book Review: The Complete Software Developer’s Career Guide

I started my blog here in part to help advance my personal career. While speaking at Boise Code Camp 2017 I was fortunate to hear the keynote speech of John Sonmez of After reading many of his posts, I have been a fan of his. He offers some excellent career guide type of information on his site and in his books.

He recently released a new book, The Complete Software Developer’s Career Guide. I grabbed the Kindle version of the book shortly after release, the physical book arrived a few days later, and I wanted to share some thoughts.

This is the second book by Sonmez that I have read, the first being Soft Skills: The software developer’s life manual and they are both, in my opinion, must haves (not just reads) for software developers. I say must haves because I find myself continually returning to them for information. Let’s have a look at what is in the Career Guide.

Career Guide

The Complete Software Developer's Career Guide

I am generally hesitant to jump on anything that claims to be a complete guide to something. However, Sonmez has included so much information in this book that I really can’t think of anything he left out. To start with, the book is big. Almost 800 pages big. Over 3.5 pounds big. Okay, not the Kindle version, but the physical book is a beast. In comparison, the book Cracking the Coding Interview is over a hundred pages shorter.

Topics Covered

Sonmez breaks his book into a few different sections which really helps to make it a quick reference. The sections and included chapters include a wide range of topics and information that is useful for those starting out to those who are veteran developers. The topics covered are:

  • Getting Started as a Software Developer
  • Getting a Job
  • What You Need to Know About Software Development
  • Working as a Developer
  • Advancing Your Career

Deeper Look

There are many nuggets of information in this book. There is coverage for the beginning questions of the types of development available or which language to choose (Hint: it doesn’t really matter, choose one!) and how to quickly develop your skills. Sonmez covers where to pick up your programming education… teach yourself, go to college, a boot camp? The pros and cons are covered here in nice detail.

He also covers in great detail about things to think about while working as a developer. How do you deal with people who may be great developers but lack an understanding of the human interaction side of things? He covers that. How about dealing with and understanding management? He covers that as well. I really like a line in Chapter 37.

A good boss is measured on how well the people under him perform and how he is able to manage and report on their activities.

I know I have had a variety of managers in my career, some good, others not so much so. That line sums things up pretty well.

Sonmez wraps up his book with a great section on how to advance your career. Some might think that this section is only applicable to industry veterans. But really, in my opinion, people just starting out can use these techniques while trying to find their first job as well. Things, like starting a blog and keeping your skills up to date, are something everyone can (and should) be doing.

 Physical Book versus Kindle

I am typically a paper book person. There is just something for me about having a physical piece of paper to turn. That being said, one of the things about the Kindle edition that I find very useful is the links to additional resources that Sonmez scatters throughout the book. While he does do a considerable amount of self-promotion in these links (can’t blame him for that) he also includes some great external resources as well.

Wrap Up

Mr. Sonmez has a great deal to offer the developer community. He has inspired me to keep a pace of writing blog posts and to share my knowledge as a speaker at events, such as Boise Code Camp and local meetups like the Willamette Valley Software Engineers.

His latest work is another excellent offering with some timeless guidance. I would highly encourage you to pick up a copy today. It could make all the difference in you obtaining your next job, so what’s stopping you?

Follow me on Twitter @kenwalger to get the latest updates on my postings.