TLDR: "I had my phone screen last Wednesday. Just got an automated email saying that they won't be moving forward. Honestly a bit bummed about that since I thought my interview went well. The tech part involved designing a cache with low latency reads and the follow up involved using a time based cache. Not sure where I could have done better. I outlined the entire process below. Would appreciate if anyone went through it and can offer good advice on how you would have done a better job." The technical coding part involved implementing a cache with an emphasis on low latency reads. I used a hashmap to code that part up. Pretty simple and straightforward (passed the given test cases). Spoke about possible edge cases when asked (like null values, existing values getting rewritten etc). The follow up question asked what would you do to the in-memory cache if the rate of requests is too high (at least this is what I understood from his question)? I think I misunderstood the question here and told the interviewer that you could perhaps use a rate limiter to limit the number of requests coming in or you could take the in-memory cache out of the server and use a distributed cache system instead (if the scale is big). The interviewer wanted to know about eviction policies and told me that he was thinking about using a time based cache. Great i told him how I would go about designing it. I gave him a couple of options. We could have a daemon starting up periodically and evict all the entries beyond a certain timestamp or we could have a lazy eviction where on setting/getting a key value pair we would at first evict stale kv pairs and then either set or get it. However, if we do go with the lazy option the runtime of either the set/get method won't be constant anymore (depends on where we implement it). The interviewer said that we don't need to evict any kv pairs but instead if we are querying a certain kv pair and we have a set fixed time then any timestamp lower than (the cur timestamp - the set fixed time) won't be returned. I implemented that. And he said yeah we are good. In terms of the "random tech questions" he first started off with what's the difference between a GET and a POST request. --> I told him that GET is used to get something from the server while POST is used to post something to the server. (However, POST can also be used in place of GET sometimes as GET request usually have a character constraint. You can do so using the body part of the POST request). He then asked me about cross side scripting - I don't know about it(I am a backend focused engineer). He tried explaining it to me and then answer his question regarding cross side scripting but I still didn't quite get what it was so I was asking more follow up questions to understand so that I could give him my answer. But he swtiched gears and told me let's ask something more backend related. I was like sure so he then asked me about a hash table. I told him it's an in-mem data structure where you can access a key value pair in amortized constant time. He asked me why it's amortized and not constant. I told him because it's the way hash tables are implemented i.e. you have buckets and within each bucket it's a linked list. If the collision rate is high then accessing that said bucket might be linear. He was like ok, what can you do to avoid collision. I told him that you can use better algo (like hash functions and other strategies (forgot the names of linear/quadratic probing) to mitigate collisions. He seemed satisfied. The last random tech question was along the lines (it was at the tail end of the coding part)... since you mentioned distributed cache system what things would you consider. I was thinking to myself we only have 5 mins left in the interview so I will talk about the most important ones. I told him assuming that the scale is huge we would need to partition the servers for the key value pairs. The partitioning can be done using consistent hashing. I could have gone more on replication redundancy etc but there wasn't enough time left and I honestly have no idea which one was more important to the interviewer. After answering the last question I asked him a couple of questions and right after 1 minute past the allotted time he said that we were running over time. I thanked him for his time and a week later I get an automated no-reply mail from Reddit. Folks at reddit ..... what happened? How could I have done better? #engineering #software #swe #reddit T.C. 0 (job hunting at the moment) P.S. A similar thing happend with Plaid as well a coule of weeks back. Phone interview seemed to have gone well but a rejection nonetheless. Feeling a bit low since I am not sure where I am going wrong. Would appreciate some genuine advice (folks who want to say just move on, I am trust me, I have moved on from a lot of companies where I have actually cleared their interviews only to be left in team matching phase, paused or rescinded (Google, LinkedIn, GitHub, Dropbox, Affinity....). P.P.S. The interviewer was new himself (has only been in reddit for 5 months) and there was a senior engineer shadowing him (who kept quiet throughtout the entire process).
I think you need to find a better fit. Gunning for hard to get jobs may not be the right approach. Find something that works at an easier firm and then work hard/get experience to look for these lucrative opportunities.
hmm of course. I am not just gunning for hard to get jobs.
It may of been the cross site scripting question, you have to imagine that someone else knew the answer to that and did just as good at other areas? Idk just my two cents as I hear it’s hard to get a foot in the door right now.
you're right about getting your foot in the door right now. Probably, but asking a front end question for a backend role and expecting an answer might not be a good indicator of the candidates ability... i don't know but yeah you're definitely right that other candidates might have done better.
Honestly OP, I can't imagine what they'd take offense with here, based on the answers it seems like you know your stuff, so I think it's just a matter of luck, what's your YOE, might just be that we are in a rough job market right now and companies are going into hiring freezes, maybe they want someone with your experience but don't want to pay a senior engineers salary
I have around 2.5 YoE at Amazon. And another 2 in research & development. So, around 4.5 all together.
Don’t take it too hard, perhaps a senior from twitter interviewed for the same role and they took the person with more experience. There can be a lot of factors outside of your control. The fact you are learning from your mistakes shows you are on the right path, you will eventually find something. It’s okay to take a day or week off from the job search and focus on mental health. The last thing you want to do is bring negativity into the next interview. Just my two cents.
Hmm could be. I am not taking it too hard. Just been at it for quite some time now and feeling a bit bummed out. Have a phone screen tomorrow and two/three more next week. Just don't want to mess things up with those. So wanted to know if I can improve in any areas hence the detailed post.
One perspective could be you are not clarifying the questions that interviewers are asking. They tend to take it as a negative feedback if you aren’t clarifying the question and making assumptions. Spend some time understanding what they are asking and clarify with them your understanding of the question before proceeding with the answer.
These interviews are always to find the “best fit.” Technical ability is one thing, but another person could have had a very relevant work experience related to the team that you interviewed for. IMO, that would trump even having an edge on some generic technical knowledge.
This was a phone screen though, they’re supposed to give everyone a fair shot, at least on the phone screen level
I didn’t read all this but it’s possible you didn’t communicate well given what I’m seeing above
Don’t be too hard on yourself OP. Stay strong and keep marching forward.
Where is the TLDR brah that’s just disrespectful
lol, added it right after I saw this.
Thanks king/queen