SE Radio 704: Sriram Panyam on System Design Interviews
Sriram Panyam returns to the show to discuss the system design interview (SDI) with host Robert Blumen. This challenging part of the hiring process is included in the interview loop for many jobs across tech, including management and for all levels from entry to senior. The conversation starts with a look at what the SDI is, who will face it, and how critical this interview is for hiring and leveling. Sriram shares some common system design questions and what the interviewers are generally looking for, including stated versus unstated requirements and ambiguity in the questions. He offers recommendations on how candidates should disambiguate their designs and manage their time. He shares some personal stories of interview failures and successes, and even discusses some mistakes that interviewers make.
Brought to you by IEEE Computer Society and IEEE Software magazine.
Sriram Panyam returns to the show to discuss the system design interview (SDI) with host Robert Blumen. This challenging part of the hiring process is included in the interview loop for many jobs across tech, including management, and for all levels from entry to senior. The conversation starts with a look at what an SDI is, who will face it, and how critical this interview is for hiring and leveling. Sriram shares some common system design questions and what the interviewers are generally looking for, including stated versus unstated requirements and ambiguity in the questions. He offers recommendations on how candidates should disambiguate their designs and manage their time. Throughout, he shares personal stories of interview failures and successes, and even discusses some mistakes that interviewers make.
Brought to you by IEEE Computer Society and IEEE Software magazine.
Show Notes
Related Links
- Sriram’s SE Radio host page
Related Episodes
SE Radio 636: Sriram Panyam on SaaS Control Planes
Transcript
Transcript brought to you by IEEE Software magazine.
This transcript was automatically generated. To suggest improvements in the text, please contact [email protected] and include the episode number and URL.
Robert Blumen 00:00:19 For Software Engineering Radio, this is Robert Blumen. Today I’m joined by Sriram Panyam. Sriram is a Technical Fellow at GM in product engineering. Prior to that, he has been an engineering manager at Google and LinkedIn. Sriram has also been a guest on SE Radio Episode 636 covering SaaS Control Planes and he has become a host where he has published a number of episodes on a range of topics. Sriram, welcome back to Software Engineering, but you haven’t even been gone.
Sriram Panyam 00:00:53 Robert, thanks for having me here. One thing I can say is I can never stop big notice, but yeah, I look forward to having some fun.
Robert Blumen 00:00:59 Today we’re going to be talking about the System Design Interview. To start, what is the system design interview and what candidates are likely to have this interview?
Sriram Panyam 00:01:11 So a system design interview, it’s a pretty common module in your typical interview loop for technical candidates, right? Specifically in software engineering. And the idea of a system design interview is to really assess and measure a candidate’s experience and the ability to kind of break down complex problems at high scale and design around it, taking into account various tradeoffs, right? And it’s really the more senior you get it is a very important part of the hiring process, right? Can involve software systems, architectures and it’s used for candidates of various types. Obviously, software engineers, engineering managers, architects, DevOps. The focus might change but the overall teams are pretty consistent.
Robert Blumen 00:01:52 Yet on a few points there. I want to break down, you said pretty much everyone’s going to see this interview. Do junior software engineers see it or do you have to reach a certain level of seniority before you would have it?
Sriram Panyam 00:02:06 That’s a really good question. I want to say no one, yes. So typically, with junior engineers, at least until recently, the focus has been on coding, right? The premise being that out of college, out of university you haven’t been exposed to designing large scale systems, right? So, a lot of that would’ve been anecdotal or reading from a book. Whereas coding is a pretty big part of your college curriculum. Now obviously as you see people upleveling in general even and outside work, these rounds are used as a measure of seniority and talent and skill, even at an earlier stage sometimes. Yes, junior engineers may not see it and it won’t be a make or break for them, but unlike before, we have started to kind of see it seep in these days. And we’ll talk about why and when that is.
Robert Blumen 00:02:50 So would people in adjacent roles, data scientists, SREs managers, are they going to see this interview?
Sriram Panyam 00:02:57 So I can’t talk much to data scientists. A lot of data science, at least from my understanding, has been focused around the statistical and the mathematical aspects of design, right? You might find data scientists looking at, well how do we build models, right? Or how do we evaluate models? How do we build systems to kind of do these things in place? The ML engineers and the ML infra folks, they’re much, much more likely to see these in practice because they have to take a model or a system that is given to them or that is designed for them and actually go and build it for production, which is where you’ll start seeing scale being a big factor. How do you scale ML model across a million users when each ML model might take many, many gigabytes of high bandwidth memory to serve? Now you asked about managers, the conventional wisdom says that they wouldn’t be seeing it because managers typically are seen as people leaders and managing people budgets process and so on.
Sriram Panyam 00:03:52 Now what you’ll find in a lot of the technical organizations is managers have to actually be thorough at understanding and evaluating their engineers, both from a cultural as well as technical perspective. They also have to be able to liaise between product and launches, being developed by their teams, which means how scalable systems are, how thorough they are, how maintainable they are, how productionized they are, or these are all performance indicators that will be tied back to a manager for their own team’s performance. So, a manager who might not be aware of what good systems look like will struggle. So, a lot of the companies, what they’re doing is they’re evaluating managers for their ability to handle system design interviews fairly well, almost at a strong IC level. So, if you’re a manager, if you’re a technical manager, definitely expect this and definitely be prepared for this. And I would say rightly so.
Robert Blumen 00:04:44 We’ve been talking around this point, would you like to say anything more about what is the employer looking for in this interview?
Sriram Panyam 00:04:52 Yes. Well, TLDR is experience and having built that or handled that on a scale before. But if you think about the prep folk for it, like rewinding a bit, they also want to see that for other things like coding, people management, if you’re a manager, behavior skills to see how you are as a team player. The interesting thing about system design interviews in some ways like behavioral, there is no one right answer. There is no one right exact way of doing something. There’s no exact one way of building a system. In fact, when you’re thrown a question like design system X, a design Uber or Design X or design Stripe, they want to see if as a candidate you understand what that system actually is meant to do. Because Stripe has what, a thousand engineers working there today? I might be off by a couple of zeros, right?
[...]