# Design Coderpad

#### Watch someone solve the design coderpad problem in an interview with a FAANG engineer and see the feedback their interviewer left them. Explore this problem and others in our library of interview replays.

Design CoderPad: System Design Interview with a Senior FAANG Engineer - YouTube

[Design CoderPad: System Design Interview with a Senior FAANG Engineer](https://www.youtube.com/watch?v=f8V76K0MGQ8)

### Interview Summary

**Problem type**  
Design Coderpad  
**Interview question**  
Design Coderpad an online collaborative code editor. It should have the following functionality:  
- text changes should be synced  
- code can be executed  
- code interviews (2-3 participants)  
- (final) content should be retained for 10 years  
- collab + execution

Read more about the questions  
- [Design LeetCode](/content/questions/design-leetcode/index.html)

### Interview Feedback

**Feedback about Secret Zebra (the interviewee)**  
**Advance this person to the next round?**  
No  
**How were their technical skills?**  
3/4  
**How was their problem solving ability?**  
3/4  
**What about their communication ability?**  
4/4

> Detailed feedback:
> 
> \+ re-iterated functional requirements  
> \+ anticipated and discussed conflict resolution  
> \+ selected "last write wins" as a reasonable strategy, but no tradeoffs discussed  
> \- no questions about scale  
> \- no questions about latency, timeouts  
> \- no back of envelope estimates for connections, QPS, storage  
> \+ discussed tradeoffs between updating keystrokes or diffs  
> \+ elected to use web sockets to connect to instances (routed by a LB)  
> \- no tradeoffs discussed against e.g. polling  
> \- no API discussion  
> \+ did a back of envelope estimate to estimate bandwidth required for keystroke updates  
> \+ discussed tradeoffs against slow updates  
> \- how we de guarantee updates arrive in order?  
> \- proposed to merge diffs in order they arrive  
> \- presumed a lot of logic will be part of the pre-existing diff/merge algorithm (like git). Shouldn't assume version control is simple enough to merge keystrokes quickly.  
> \+ proposed using timestamps to avoid out of order diffs  
> \- had to point out ignoring the diff will result in inconsistent updates  
> \+ further proposed to keep a buffer of changes  
> \- no timeout/memory limits  
> \+ pointed out security concerns  
> \+ mentioned sandboxing should be used  
> \+ reasonable solution (queue filing) for the peak load for execution question  
> \+ leading the discussion well  
> \+ good written communication & clear drawing

**Feedback about Indelible Hawk (the interviewer)**  
**Would you want to work with this person?**  
Yes  
**How excited would you be to work with them?**  
4/4  
**How good were the questions?**  
4/4  
**How helpful was your interviewer in guiding you to the solution(s)?**  
4/4

> Gave very helpful, honest feedback. Identified very clear points of improvement I could make.

### Interview Transcript

**Indelible Hawk:** Cool. Just before we begin, are you familiar with the platform? Have you had any mocks in the past?  
**Secret Zebra:** Yes. So I've done a few mock interviews. One of them was a systems design interview, and my background is mostly in tiny startups and founding. So these are some of my first interviews ever of this type. I've given interviews, but they were generally more targeted at whatever specific product we were making.  
**Indelible Hawk:** And do you know what level you're targeting?  
**Secret Zebra:** I'm targeting level five, based on what I've asked my friends and colleagues around.  
**Indelible Hawk:** Excellent. Let's get started. So you said you've done once in design mock, so I won't talk too much about the platform, just that you have a bottom left blue button to enable the whiteboard if you need to draw anything. Otherwise we can discuss in the chat later and I leave at the end for feedback.  
**Secret Zebra:** Awesome.

**[Omitted for brevity]

...

**Indelible Hawk:** What will happen if, for example, someone has a suboptimal solution and it goes in a while loop. An infinite while loop.  
**Secret Zebra:** Oh yeah, we should have a timeout. There's actually a few parameters of this container. So the container will need to have a timeout, in which case we kill and return console text up to a certain length, let's say up to like 5 console text, just in case they're printing like an essay on the console.

### Summary and Notes
- **Key points discussed:**  
  - Problem requirements  
  - Technical skills evaluation  
  - Communication skills evaluation  
  - Specific feedback on iterative processes and conflict resolution in code management  
  - Suggestions for future improvement in technical design discussions

- **Final remarks:** Considerations should be made for scalability, API discussions, back of envelope estimates, and elaborations on tradeoffs in system design.
