System Design: 2 Courses & 2 Books to Improve your Product Management Practice

Eleanor Stribling
productized
Published in
5 min readNov 15, 2020

Great materials on concepts every PM should understand, all available online

After almost nine years in Product Management, I’m finding that training specific to PMs doesn’t teach me much that’s new or useful, so I’ve needed to expand my horizons and delve into different subjects.

In this post, I’ll take a look at learning about System Design: what it is, why it’s useful for PMs, and introduce a few resources from which I’ve derived a lot of value.

Photo by Andrew Neel on Unsplash

What is System Design?

System design is about defining requirements to produce outcomes you want. It also includes defining and designing the components needed, how those pieces are constructed, what inputs the system will accept, and how they interact to produce the desired outputs. There’s also an element of designing, or at least vetting, processes that go through the system to ensure they’re working as intended and to maximum efficiency.

In software, we often refer to this as “architecture,” but System Design isn’t exclusively a software thing. For example, in my previous career in the Ontario Public Service, the bureaucracy was a large, complex system where I worked on processes: preparing briefing notes for Ministers and getting approvals for a new mentorship program.

While Systems Design isn’t usually called out as a core skill for Product Managers like other concepts like Design Thinking, I think it’s an excellent complement to the usual trifecta of business, design, and technology. It encourages downstream and upstream thinking and, while it’s traditionally applied in engineering, can be extended in the hands of a skilled PM to help them work across disciplines.

Resource #1 — Educative.io’s “Grokking the System Design Interview”

This is an interview prep course aimed at engineers that I found via a Quora post about a year ago. While PMs aren’t the intended audience, the material is incredibly relevant, and it’s much more about critical thinking and systematic evaluation than writing any actual code.

The course is very accessible regardless of your background because it teaches the concepts by deconstructing parts of applications you already know, like Instagram, YouTube, and Uber. It also goes through a standardized list of steps for each example, providing an implicit starting framework for your projects; even though you as the PM might not own every step, it’s a great refresher on engineering considerations that will at minimum help you to ask the right questions of your dev team.

If there’s a con, it’s the repetition and lack of variety. It’s useful for interview prep, and as a starting resource, it’s not a clear path to mastery, and it doesn’t really push you to think beyond the limited framework.

As of this writing in November 2020, it’s $79 USD for the course or $29.99 USD a month for access to everything on the site. While I didn’t track how long it took me to work through it, the author’s estimate of 20 hours seems about right.

So if you’re looking for a lightweight, flexible, low-cost option to dip your toe into the field or prep for an interview, this is a great choice.

Resource #2 — eCornell’s System Design Certificate

Cornell University’s online school offers this credential earned by completing seven two-week courses, each introducing a different concept or tool. The program is taught by a professor and a “TA” (usually an adjunct with a Ph.D.) who answers questions, moderates discussions, and evaluates assignments. This makes it much more in-depth than the evaluative.io course. However, the program is still very practical, and students interrogate the concepts with real-world examples.

Systems Design Page Screenshot

Before I committed to the program, I tried to find resources on the concepts outlined in the descriptions and didn’t have much luck finding good explanations, certainly nothing structured. Despite the broad applicability, the examples are engineering-centric but more mechanical engineering than any other field, which was refreshing for me coming from a software background.

While the material was well-organized and well-taught, I’m still thinking about how to apply them best. Some of the tools are very complex, aren’t well known in software, and would be especially difficult to use as a group remotely. That said, there are about half a dozen really excellent concepts and templates that I’ll be adapting and implementing in the next couple of months, so I think it was very worthwhile.

If you want to build some knowledge casually, this isn’t the best choice. While the timelines are very flexible, if you pay the whole tuition upfront, the courses are labor-intensive, short, and cover challenging material. Because they begin on Wednesday mornings and I was working full-time, I often didn’t get to the coursework until Saturday morning and constantly felt like I was playing catch up.

All of that said, it was a fun set of courses with material I doubt I could have found anywhere else, and I got a certificate from Cornell at the end, which is a nice perk! The cost will be a barrier to some folks, though: as of this writing in November 2020, the program will run you $4,200 USD or seven payments of $650 USD. When I enrolled near the beginning of the pandemic, there was a 30% discount on the program, so keep an eye on their website for promotions.

Resource #3 — Books!

If you want to chart your own course, there are many great books out there. These are my two favorites, both great but very different:

“Thinking in Systems” Book Cover

Thinking in Systems: A Primer by Donella Meadows
This is such a great book, and I often reach for it when I’m thinking through a tough problem. It’s a primer for systems thinking, so it’s not as tool- or software- oriented as the eCornell program, but the concepts are foundational.

Designing Data-Intensive Applications by Martin Kaufman
This book isn’t labeled “system design,” but if you’re in software, it might as well be. While the focus is on data, it covers many of the same themes around scalability and complexity that the educative.io course does, but in much more detail.

If you’re looking to level up your PM practice, I hope you got some value from this post and the recommendations. Add your favorite resources in the comments below — I’m always looking to learn something new!

--

--

Eleanor Stribling
productized

Product & people manager, writer. Group PM @ Google, frmr TubeMogul (now Adobe), Microsoft, & Zendesk. MIT MBA. Building productmavens.io.