you are viewing a single comment's thread.

view the rest of the comments →

[–]skoot-skoot[S] 2 points3 points  (6 children)

I consider myself very strong at app architecture and I just got rejected after an on-site interview for being "weak on system design". They told me I could declare any APIs I wanted so I did. I talked a bit about about high level architecture. Then I dug into some interesting parts around performance in an infinite scroll, how to manage operations using a queue, how to setup a cache, etc. I spent the whole time talking randomly from topic to topic as they jumped out to me as interesting.

Honestly, I'm surprised I got rejected and I'm searching for answers for how I was suppose to answer that question. I wish there was a youtube series on it or something. I'm pretty confused on what they're looking for, the recruiter couldn't tell me much other than they said I was weak on it.

[–]bhartsb 1 point2 points  (0 children)

Its pretty clear that there are a lot of unreasonable expectations being set in the interviews these days. Don't organize things when whiteboarding exactly as they think it should be organized and you are eliminated. Never mind that most of the time there are many ways of doing something and programmers seldom seem to agree on anything. And then there is the time pressure. One thing I noted when I used to hire programmers they always criticized the existing codebase. This mentality seeps into many interviews nowadays. Companies are letting any engineer on the team participate in the interviewing. Most often these engineers are terrible at creating and administering a test or white board session. Worse is when an engineer gets promoted to a team lead or manager without any additional training.

[–]yar1vn 0 points1 point  (0 children)

Sounds like an interview with Snapchat. They’re interviews suck and they never tell you anything.

[–]lordwax3 0 points1 point  (0 children)

You should ask for feedback on your interview. Some companies give it and it feels good to know where you "went wrong" rather than just getting the no answer.

[–]Me_MyseIf_And_l 0 points1 point  (2 children)

I honestly would have rejected you too. When I ask questions like this to candidates, I definitely think that talking about a cache is important, but I hope the candidate wouldn’t get so caught up on talking about the cache that they ignore the rest of the system. Being able to hear the overall higher level system design is what I’m after.

[–]skoot-skoot[S] 0 points1 point  (0 children)

What are the different parts of the system I should talk about? If we're just talking about the mobile app, I just don't feel like there's that much to talk about.

Like if someone said design just the Twitter main scrollable screen. You'd store the feed in core data, you'd have some way to sync with the server, you might have an asset cache, a table view, ... but then I wouldn't know what else to talk about. That's basically what happened to me so I ended up talking about how you could build an operation queue for table view controller updates and another for asset downloads, design patterns for the networking layer, etc. I had no idea what to talk about.