Get 1-on-1 coaching to ace your system design interview: igotanoffer.com/en/interview-coaching/type/system-design-interview?KZbin&
@jordanhasnolife5163 Жыл бұрын
Thanks a lot for having me Tom, looking forwards to the next one :)
@IGotAnOffer-Engineering Жыл бұрын
Thank you Jordan, was great to have you on!
@MrNinethsense6 ай бұрын
Big fan of you @jordanhasnolife5163. As usual, this was a great content. Keep doing.
@KShi-vq4mg Жыл бұрын
I'd love to see videos of SD interviews going wrong and feedback of the interviewer on why they failed. 99% of candidates dont know what went wrong unless we were really terrible in the interview. but more often than not, we step out of interviews feeling great but not selected without any feedback.
@ThrowAway-z7m11 ай бұрын
This was all over the place, with an unnecessary dive into an overkill algorithm for keeping price data sorted
@jacobstein8288 ай бұрын
Completely agree - I’d have definitely have stopped him pretty early on to clarify how quickly he needs to refresh the ticker data on the client device. this is partially on the interviewer for letting him spin his wheels in the wrong direction for too long.
@sonicjoy20024 ай бұрын
How did he get to the conclusion of using linked list? why not using heaps to keep the max and min prices?
@LawrenceAiello10 ай бұрын
This was a little hard to follow - for example his talking about linked lists and binary search is a little too deep for system design interviews IMO.
@AlexNL11016 ай бұрын
“Binary search the linked list” 😮 13:20
@supersonics9196 Жыл бұрын
i really admire your abilities of finding these wonderful engineers with a large spectrum of experiences to help do mock interviews. they really have brought their real life experiences into the interviews. aside from interview preparations, even from the perspective of learning software architectures, these are some really great videos.
@MrMefrix Жыл бұрын
I think a doubly linked list with a hashmap would not allow for constant time sorting and knowing what bid is the highest, I think a heap with a hashmap combination is your best strategy here.
@wanlili41066 ай бұрын
or just use a sorted map directly.
@danzhi10 ай бұрын
There are only O(8000) securities listed on all U.S stock exchanges. If in average each Robinhood user trade 50 times per year, 100M users lead to below 500 TPS (8 hours per day). The total size of pending orders is small enough to fit in the memory of a home computer. Replicas for routing server are necessary for redundance and fault-tolerance reason but it is unclear the justification to shard them by stock symbols. Also doing binary insertion on linked list is weird. Overall, the design appears confusing to me here and there.
@koeber999 ай бұрын
1) A person can have a thousand orders on 1 securities! 2) Day trades may trade 50 times in a day! 3) If Robinhood allowed algorithms trading, that number would x10!
@hazemabdelalim54327 ай бұрын
I don't understand how can we use round robin and also use websocket? Shouldn't the user directed to the same server because this server have this connection open there ?
@AmarnathRaju11 ай бұрын
How is a changed value in the Redis cache propagated to the User layer servers ? Will it be a push or pull model ?
@dosuk11 ай бұрын
13:30 it's not possible to make binary search in a linked list with log(n) complexity as this list doesn't have indexes.
@shawnjackson7568Ай бұрын
it's probably an array-backed LL implementation that allows for indexing
@allyouneedtoknow91522 Жыл бұрын
If you just need to store the best national bid/ask for all tickers from all exchanges, a normal modern machine is capable of doing so, we can still shard/replicate on the tickers. Also for the pricing part, your client is likely going to connect with your stock pricing service through a load balancer, 100 connections to different servers to drain the battery seems kinda weird to me. To avoid the client/server communication I think we can only ask for the price updates of the tickets shown on the user current screen.
@ThrowAway-z7m11 ай бұрын
This was all over the place, with an unnecessary dive into an overkill algorithm for keeping prices sorted
@leizhao21063 ай бұрын
This system design seems to be going in the wrong direction, as it focuses on the details of the exchange layer alot rather than offering a high-level overview, APIs and schema. Will the interviewer overlook this? I’m just curious
@truthprevails8997 күн бұрын
I also feel the same.
@laurentarn Жыл бұрын
Which level is this interview corresponding to? It seems a bit short for L5 or L6?
@dafivers41272 ай бұрын
since when can we binary search a linked list. And how did he pull thee middle of the linkedlist in constant time. what...
@sojithesoulja9 ай бұрын
Data wrangling / enrichment is a huge part not addressed. For instance, bucketing / continuous aggregation into different timeframes and calculating technical indicators. I don't have it all mapped out but I have a feeling redis won't work here.
@prashantkumardhotre56956 ай бұрын
Hey Jordan, how do you do binary search of data in double linked list in O ( log N ) as the list is not random access. You can only do in O (N )
@hazemabdelalim54327 ай бұрын
How would guarantee strong consistency here ?
@JakeZhang-t4z4 ай бұрын
question : if requirement is to show historical data, how would you modify?
@BenoitStPierre8 ай бұрын
This is not a good interview. The candidate (TC) spends much too long going into minute details and algorithms and the architecture proposed has several shortcomings that the candidate admitted to and then proceeded to over-engineer unnecessary systems in an attempt to solve these. The interviewer should have asked more probing questions about alternatives considered and the reason why this specific approach was chosen over others. There was also a total lack of the system's topology as well as no data modeling. TC also displayed several red flags around collaboration and humility. They leaned heavily on a small amount of domain knowledge to appear as a expert in the industry, but their absence of subtlety and consideration in their design shows a lack of experience and could lead to difficulty working well in a group. I would particularly would have liked to see how TC reacted to pushback or critical feedback to their design. In addition to the high-level misses in this interview mentioned above, several of the details were also wrong or misguided. The estimations given on traffic made incorrect assumptions about client behaviors (such as daily users vs total user population), and no consideration as to the actual capacity of the components used and whether or not partitioning was necessary. The choice of partitioning by ticker and then using round-robin load balancing being competing ideas, etc. Strong no hire.
@harshpatel-e2h3 ай бұрын
Hi Guys, I am confuse between Stock Exchange and Broker, who really exchnage stock, mean make a deal between BUYER and SELLER. If stock exchanged by Stock Exchange platform like NASDAQ, then as a broker we just have to place order right? I am not expert on this topic, any help will be appreciated.
@LalitPoddar9 ай бұрын
In the last section he said UDP from Exchange platforms. As far as I know, the broker application cannot actually decide the protocols to communicate with exchanges. Exchanges keep a common protocol for all the brokers. They cannot be biased in this. Perhaps, UDP is the one they use, but isn't it unreliable incomparison to TCP/IP?
@techbeauty24509 ай бұрын
UDP is fast and you need to send it fast. Any error you have you can correct on the application layer.
@LiboYin10 ай бұрын
I’m not so sure whether an internet company will ask to design a trading platform as it’s not a common knowledge. On the other hand, do trading firms do system design interviews at all?
@LalitPoddar9 ай бұрын
Yes they do. I have one tomorrow.
@devil_destructor8 ай бұрын
For L3 and L4 at Robinhood, they have 2 system design, 2 coding, 1 project deepdive, and 1 HM sessions. The project deepdive is similar to System design but you present one of your past projects with 2-3 slides or diagrams that you are expected to prepare in advance.
@roniljain1774Ай бұрын
doesn't make sense to binary search a small array or linked list
@pixusru7 ай бұрын
Unconventional. No feature scoping, no API design. No QPS / bandwidth / storage estimation. Diagramming too late. No mention of multiple devices per user. Not mentioning data structures. Great, confident speaker though.
@Xzireez9 ай бұрын
I don't think his assumption on the ticker price is correct. In my experience, the price shown is the last transaction price on the exchange and what he is describing is how an order book calculates the middle bid. If his assumption of the price would be correct, then anyone can make a really high bid and push price. The price shown should be the last full-filled order (with some logic to trim extreme cases added).
@max.naz.miklekakiАй бұрын
It was a nice conversation, but it lacked substance. It felt more like a superficial discussion. Unfortunately, he didn’t mention any specific FX protocols or tech stack details, such as C++ or Rust. I mean, he isn't technically implementing a proper solution for the actual application.
@AakuRowdy89 Жыл бұрын
What I realize is - it's not useful for someone who works in the same domain/product to do system design. It def came off very weird/empty and at times condescending
@recursion. Жыл бұрын
What did you find condescending?
@jordanhasnolife5163 Жыл бұрын
Sorry to hear that I came off this was way Aaku! I'm assuming you meant this in reference to some of the exchange specific information like different OCC exchanges + keeping number of systems listening to them low. I think that while that's technically knowledge that is not required for this problem, incorporating it makes the problem a bit more interesting, because actually having to aggregate the results themselves to deliver a single valuation for any security/option makes the problem a bit more complex (in fact I've been asked this piece in interviews before!) Anyways, if you have more questions feel free to ask them here and I'll get back to you! Have a nice day!
@d-yb2db Жыл бұрын
I agree, the interview isn't led by the interviewer but rather by the interviewee. The interviewee came in with the prepared answer and basically shared it on a zoom call. This isn't not at all how it's like during the actual system design interviews. What'd be more helpful is an actual mock interview where interviewee is challenged with questions regarding the solution the interviewee comes up with. This approach will showcase the interviewee's skills to come up with a solution (optimal or not), discuss about the reasonings and thought process behind it, and depend their system design decisions. Interviewer can ask further questions about the approach then adjust as needed.
@jordanhasnolife5163 Жыл бұрын
@@d-yb2db Don't disagree
@slover4384 Жыл бұрын
@@jordanhasnolife5163 having to get interviewed by this L3-knowledge-robot-zero-personality interviewer didn't help.
@MrNinethsense6 ай бұрын
I wish by the God grace, I could give an interview like one:) Jai Mata Saraswati 🙏
@bombrman1994Ай бұрын
another interview with "ex-googler" that's skipping from functional/non-functional to drilling skipping the middle part and drawing of the system and the choices he would make for database and how uses cases turn into services.
@markepel1959 Жыл бұрын
The videos are really good and helpful, thanks a lot. But tbh the interviewer is just the worst. No interesting questions at all - zero. Just what would you do if one server goes down? Man, that's all you know or all you care? No offense and thanks again.)
@learnerboy2247 Жыл бұрын
Next video : Design KZbin
@ayanSaha13291 Жыл бұрын
Very good explanation. Thank you.
@TheCarloarg Жыл бұрын
My $0.02. Don't start answering every single one of your interviewers question with "Yeah, that's a fair question" 😄
@recursion. Жыл бұрын
why is that? annoying or something else?
@janailtongoncalvesdesouza4160 Жыл бұрын
Soooo humble 😅
@ashkankipati3 ай бұрын
The guest makes it overly complicated even in his channel, maybe it's for staff level or architect level.. most of us watching would be targeting mid-level interviews..
@recursion. Жыл бұрын
Great video
@jordanhasnolife5163 Жыл бұрын
Woo!
@recursion. Жыл бұрын
@@jordanhasnolife5163 Love you broskii (no homo)
@endyrocketstar9 ай бұрын
Let’s be honest, it was bad.
@rostislav_engineer4 ай бұрын
Thanks Jordan!
@recursion. Жыл бұрын
Letsgoooo
@AnkitSharma-hx2mg4 ай бұрын
One of the worst explanations for an SD problem. No context on the approaches. Straight away dived into DLL, I mean WHY? Worst video from this channel. Complicated it without any reason.
@dafivers41272 ай бұрын
L interviewer did not help here at all. this interview wasn't it.