VO
VO前和Hire Manager面了一轮,随便聊了一个小时,比较愉快。 HR在几次沟通过程中反复强调Hire Manager非常想我加入。 第一轮: Behaviour,和一个白人小哥瞎聊,愉快 第二轮: SD,Tiny URL。不过题目实际上简化了条件,新建URL的条数是100条/天,但是是heavily read,1m/s。所以这一轮重点就放在database,cache策略上。 第三轮: Coding。 Category,follow up是: 1. 如何更高效低把字符串的coupon,category信息转换成对象? 这里楼主只想当用JSON字符串映射到entity的做法。写到一半面试官说时间不多了,直接跳到第二个follow-up。2. coupon加多一个日期,要求返回最近的一个coupon。这道题第一问做得比较顺利,另外两个问都没写完,但是面试官口上说没关系。 第四轮: OOD。Rental Shop。比较顺利完成了。 总体感觉面试官都很nice,因为准备很充分,除了coding都发挥得不错。静候消息了😊
------------------------------------------------------------------------------------
-第一部分 system design 老5道题 第二部分coding 给了 list of <usr_id, resource_id, time_stamp> 问每个 resource 被访问了多少 follow up 返回那个5分钟内被访问最多的resource id 和次数 第二天就给了 onsite 新人发帖 求大米鸭 求大米
-----------------------------------------------------------------------------------
系统设计快问快答,完全没见过的5道题。。。有点懵,没记住具体题目 Coding题目,第一题和帖子一样,第二题在第一题的基础上有交叉课程,换句话说是图里有圈的存在了,我讲完思路就没时间写了。
------------------------------------------------------------------------------------
https://www.1point3acres.com/bbs/thread-878358-1-1.html
karat,面试官比较冷漠。。 开始是设计五小题,地里都有。 代码题我感觉还是有点难度对于我(lc只刷了100来道题),还好最后做出来了。 编程题如下: /** You're developing a system for scheduling advising meetings with students in a Computer Science program. Each meeting should be scheduled when a student has completed 50% of their academic program. Each course at our university has at most one prerequisite that must be taken first. No two courses share a prerequisite. There is only one path through the program. 以下内容需要积分高于 188 您已经可以浏览 Write a function that takes a list of (prerequisite, course) pairs, and returns the name of the course that the student will be taking when they are halfway through their program. (If a track has an even number of courses, and therefore has two "middle" courses, you should return the first one.) Sample input 1: (arbitrarily ordered) prereqs_courses1 = [ ["Foundations of Computer Science", "Operating Systems"], ["Data Structures", "Algorithms"], ["Computer Networks", "Computer Architecture"], ["Algorithms", "Foundations of Computer Science"], ["Computer Architecture", "Data Structures"], ["Software Design", "Computer Networks"] ] In this case, the order of the courses in the program is: Software Design Computer Networks Computer Architecture Data Structures Algorithms Foundations of Computer Science Operating Systems Sample output 1: "Data Structures" Sample input 2: prereqs_courses2 = [ ["Algorithms", "Foundations of Computer Science"], ["Data Structures", "Algorithms"], ["Foundations of Computer Science", "Logic"], ["Logic", "Compilers"], ["Compilers", "Distributed Systems"], ] Sample output 2: "Foundations of Computer Science" Sample input 3: prereqs_courses3 = [ ["Data Structures", "Algorithms"], ] Sample output 3: "Data Structures" Complexity analysis variables: n: number of pairs in the input / import java.io.; import java.util.*; public class Solution { public static void main(String[] argv) { String[][] prereqsCourses1 = { {"Foundations of Computer Science", "Operating Systems"}, {"Data Structures", "Algorithms"}, {"Computer Networks", "Computer Architecture"}, {"Algorithms", "Foundations of Computer Science"}, {"Computer Architecture", "Data Structures"}, {"Software Design", "Computer Networks"} }; String[][] prereqsCourses2 = { {"Algorithms", "Foundations of Computer Science"}, {"Data Structures", "Algorithms"}, {"Foundations of Computer Science", "Logic"}, {"Logic", "Compilers"}, {"Compilers", "Distributed Systems"}, }; String[][] prereqsCourses3 = { {"Data Structures", "Algorithms"} }; System.out.println(findHalfway(prereqsCourses3)); } public static String findHalfway (String[][] courses) { } } 答案:(recruiter反馈我的解法是optimal solution)
public static String findHalfway (String[][] courses) { LinkedList lst = new LinkedList<>(); int x = courses.length; // assume there is always records. //"Data Structures" -> "Algorithms" -> "Foundations of Computer Science" -> "Operating Systems" Map ba = new HashMap<>(); Map ab = new HashMap<>(); for(int i=0; i
------------------------------------------------------------------------------------
Wayfair 电面 karat sd五道题,和其他的一样。 算法 有一些资源的使用记录 比如 [{"ts": xxx, "user": xxx, "resource": xxx}. {"ts": xxx, "user": xxx, "resource": xxx}. {"ts": xxx, "user": xxx, "resource": xxx}. ] 然后目标是找到每一个resource 一定时间长度内 最多被使用了多少次 比如 我们有 r1: 10 11 12 20 25 r2: 5 10 15 20 21 22 然后让找5个ts内的 那么 r1: 3 (10-11-12) r2: 3 (20-21-22) 第二题同样的data 要返回 一个图一样的结构,大概是 reource: 到可能别的resource的可能性,这个是根据user来算的,基本就是一个反向bfs这样,时间不够了没做出来
------------------------------------------------------------------------------------
通过Karat的店面,一个估计是中东的大哥。 先是一堆sys design concept 的选择题和讨论题,都不难,有点工作经验都能答出来。最后coding找单词 /* After catching your classroom students cheating before, you realize your students are getting craftier and hiding words in 2D grids of letters. The word may start anywhere in the grid, and consecutive letters can be either immediately below or immediately to the right of the previous letter. Given a grid and a word, write a function that returns the location of the word in the grid as a list of coordinates. If there are multiple matches, return any one. grid1 = [ ['c', 'c', 'x', 't', 'i', 'b'], ['c', 'c', 'a', 't', 'n', 'i'], ['a', 'c', 'n', 'n', 't', 't'], ['t', 'c', 's', 'i', 'p', 't'], ['a', 'o', 'o', 'o', 'a', 'a'], ['o', 'a', 'a', 'a', 'o', 'o'], ['k', 'a', 'i', 'c', 'k', 'i'], ] word1 = "catnip" word2 = "cccc" word3 = "s" word4 = "bit" word5 = "aoi" word6 = "ki" word7 = "aaa" word8 = "ooo" grid2 = [['a']] word9 = "a" find_word_location(grid1, word1) => [ (1, 1), (1, 2), (1, 3), (2, 3), (3, 3), (3, 4) ] find_word_location(grid1, word2) => [(0, 1), (1, 1), (2, 1), (3, 1)] OR [(0, 0), (1, 0), (1, 1), (2, 1)] OR [(0, 0), (0, 1), (1, 1), (2, 1)] OR [(1, 0), (1, 1), (2, 1), (3, 1)] find_word_location(grid1, word3) => [(3, 2)] find_word_location(grid1, word4) => [(0, 5), (1, 5), (2, 5)] find_word_location(grid1, word5) => [(4, 5), (5, 5), (6, 5)] find_word_location(grid1, word6) => [(6, 4), (6, 5)] find_word_location(grid1, word7) => [(5, 1), (5, 2), (5, 3)] find_word_location(grid1, word8) => [(4, 1), (4, 2), (4, 3)] find_word_location(grid2, word9) => [(0, 0)] Complexity analysis variables: r = number of rows c = number of columns w = length of the word */
------------------------------------------------------------------------------------
安卓回家作业 readme 如下 以下内容需要积分高于 200 您已经可以浏览
In the
Product.kt
class, ensure you have the fields required for parsing the data from the JSON file.The current networking call is located within the
BaseAppCompatActivity.kt
file. Please modify this at your discretion.Create a UI that will display in the Android emulator and display a list of products. For each object, display the
name
and thetagline
Strings. Ensure that no strings are truncated.Map the
rating
field from the response, rounding it to the nearest 0.5 (ex, 1.5, 2, 3.5, 4) and display this rating in the UI, always showing one decimal place.Write unit tests to confirm that the
rating
rounding code works as intended. 我做完了立刻收到hr消息说 做得很好 准备onsite 然后准备了一个多星期也没准备好。我现在都要准备签字了 还没准备好。 最后说些碎碎念 地里的人都好厉害啊,个个都大包。。。而且写mobile是不是都比较穷啊,我亚麻小伙伴说他们组最近给的L5 tc 300K。。。。那些400K+的实在是太顶了。。
------------------------------------------------------------------------------------
2021年10月底收到HR的信,开始准备面试。期间挂了好些个厂,包括meta之类的一线厂。很快收到Karat面试的预约,题目毫无新意,全是往上可以找到的。第一轮面试题目包括:
coding 题。力扣811,重点在于完成。面试官也都是karat聘的,感觉没有那么在意代码是否精巧优化。我的面试官人也很nice,老印口音不太重。做完了事
5个小system design问题。论坛上已经都说过了,一个不拉。按照那样复习就行了,会要求给一些具体的解释,但考虑到整个面试时间不是很长,不用说太多。 Karat可以申请面第二次,所以不用太担心。当然第二次会换成什么题目我就不知道。 HR效率很高,3天之后就告诉我过了,可以按照下一轮。下一轮的时间可以自己定,考虑我自己工作也很忙,所以就留了一个半月的时间。期间也确实只有间歇性的刷题,重点看OOD和App design. OA是12月,一共四轮,大概4个半小时。分别是:
coding。字符串相加,忘了力扣题号了。相应的有2轮iteration:加上comma怎么算,用我的实现来计算Fabonacci。他们会给很大的数字来做test case,所以Fabonacci不能效率太低了。
OOD。设计停车场。OOD真的是我的弱项,面试官感觉有点不是很耐烦,但还是会引导你答题,包括是否需要新的DB,新的类。逻辑的每一步应该在哪个类上实现,被谁调用。
Leadership/BQ。基本上就是聊天,工作中遇到什么问题啊,如果有很难搞的同事怎么办啊。Client有很不现实的要求怎么办啊。聊的还挺开心的。
App design。其实应该也算System design,但更关注于infra层面。题目是做一个类似shazam的系统,用户可以上传音乐片段10-30秒来判断是什么音乐。后台早就预存了很多音乐的signature。和面试官探讨了哪些需要用db,是否需要shard,是否需要load balancing,是否需要考虑region,是否需要cache等。我在计算存储和带宽上花了不少时间。中间也有一个点我始终get不到,可能我沟通还是缺点火候吧。 第三方HR和Wayfair的HR小哥都很给力,1周以内就告诉我pass了。他们也跟的很紧,2021结束之前搞定了口头offer。求个大米吧。新年wayfair依然在招人,居然还有第三方HR联系我wayfair的职位,lol
------------------------------------------------------------------------------------
整体来说,面试官都都非常好,最影响体验的他们家的画图tool真是不好用啊,尤其是sys design的时候,根本没有时间了解,所以建议最好面试之前用用他们家的画图。
1) 两个面试官(美国大哥(shadow)和巴西大哥(从名字判断)都是engineering manager)behavior questions, like solve conflict, most successful and impressive projects, etc.
2) 两个面试官,一个shadow一个煮面,add two big large number (represented by two Strings) LC 415 ,然后followup是一个如果这两个large number的表示中间有逗号了,怎么处理,比如说“1,233,444,555” + “2,333,444,555”这种,同样利用第一题的solution来接这个solution
3) system design,两个面试官,类似 yelp的东西涉及 geo locaiton的store, recommendation(top n之类的推荐),反正是各种tricky的问题
4) app arch design and data modeling,一个好像印度小姐姐,非常好(你只要这个过程一直面带笑容就行,她的笑容也会甜到你),这个主要是design rental app for bike and scooter. 主要是从class diagram,db table design,sequential diagram和activity diagram入手。 周五面的,下周二晚之前告诉结果
------------------------------------------------------------------------------------
首先感谢wayfair 给我面试机会,但这次体验应该算偏差了。 VO,分4轮,每轮1小时。但每轮前10分钟是面试官和candidate 要互相介绍,后10分钟candidate 问问题,所以实际每轮只有40-45分钟答题吧。
System design: URL shortener. Wayfair 有一个media team 要发twitter, 所以wayfair 要一个URL shortener service 把long URL 变成 short URL 放在tweet 里。要求 1)create short URL 2) assess short URL。 有一些比较常规的url shortener 的相关问题,比如short key length, 需要多少server, 多少个DB 也问了一些很细节/我也不知道怎么答的问题,说给大家想想吧。比如
http status code的range 和每个range 的定义,
Informational responses (
100
–199
)Successful responses (
200
–299
)Redirection messages (
300
–399
)Client error responses (
400
–499
)Server error responses (
500
–599
)
NoSQL 可不可以在不是key 的feild 上create index,:
To speed up queries on non-key attributes, you can create a global secondary index in DynamoDB. A global secondary index contains a selection of attributes from the base table, but they are organized by a primary key that is different from that of the table. The index key does not need to have any of the key attributes from the table. It doesn't even need to have the same key schema as a table.
https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/GSI.html
API gateway 里可不可以cache API的JSON response
Caching in REST APIs: https://restfulapi.net/caching/
Being cacheable is one of the architectural constraints of REST.
GET requests should be cachable by default – until a special condition arises. Usually, browsers treat all GET requests as cacheable.
POST requests are not cacheable by default but can be made cacheable if either an
Expires
header or aCache-Control
header with a directive, to explicitly allows caching, is added to the response.Responses to
PUT
andDELETE
requests are not cacheable at all.
Coding: 给两个array. 每个array 的每个元素是一个map。一个array 里放的是coupons, 另一个放category 和parent category。如下: coupons: [ {"Coupon Name" : "50% off", “Category Name”: "Bedding"}, {"Coupon Name" : "BOGO", “Category Name”: "Kitchen"} ] category: [ {"Category Name" : "Comforter", “Parent category Name”: "Bedding"}, {"Category Name" : "Kitchen", Parent category Name”: null}, {"Category Name" : "Patio", “Parent category Name”: "Garden"} ] given a category name, return its coupon if there is one for the category. Otherwise, check its parent category to see if there's a coupon for it. If so, return the coupon name. Repeat this process until there is no parent category, then return null.
OO Design: bike and scooter rental shop 一个rental shop 有两个product bike: 分size, 大中小 scooter: 分type, electric & gas 要求实现的功能有:
add product into inventory
create user
rent product
check for balance for a user (if they owe us money)
remove a product from inventory i.e. permanently make a product un-rentalable, for example due to damage
return a product 要完成: class diagram DB schema API sequence diagram system diagram ??不记得了 follow up: what if we want to open up a new shop
behavioral 重点focus 在我日常在公司如何和同事合作,比如如何和BA/QA/frontend 合作,如何mentor, 和客户有不同意见怎么办,what motivates you, a chanllenging project ============================================= 最后吐槽一下吧
Recruiter 告诉我只有周一和周四可以schedule interview(灵不灵活我就不评价了)。我每周一都有很多会。在我明确提供周一的availability 在11am - 2pm的情况下给我约了个12pm - 2:15pm,直接导致我错过一个会的前半段。我理解wayfair可能招人心切之类,但能不能也尊重一下candidate的时间。
Recruiter 第一次打电话过来的时候我有说只对后端的职位感兴趣,还是安排了面试。直到最后一轮behavioral轮的时候我才问出来这个职位是full stack的。而且那个manager 说wayfair 都是要求做full stack,当然会给一些ramp up的时间。不太清楚这个"wayfair 都是要求full stack" 是全公司还是他们org/组。
System design 那轮那位战斗民族来的大哥实在不好交流,经常答非所问,还很condescending。比如像他题目里写"assess short url",我当时想确认一下这个是不是convert short url to long url 的意思,还是我们要做additional validation etc,这大哥回我“this round of interview is to be focused on a higher level such as system component, not details”。好吧,既然如此为什么后来又问我更detail的问题像http status code range?还有就是我每说2句他就会打断我,问我一个问题,然后就follow up after follow up,越问越远,几次搞得我不记得之前说到哪里。
他家用的在线coding和画图的平台真的难用。 codility: 出的题是被paste到一个panel,但candidate 没法copy 题的一部分,比如example input,到coding 的panel。像我遇到的那题input就要纯手打?可能也在考察我typing speed 吧哈哈。还有就是codility 如果interviewer 和candidate 同时打字是会相互影响的,我打的内容会跑到对方光标所在的地方,vice versa. sketchboard: system design 和OO design画图用的。图标分类很怪,lag 很严重,从一个点引线和箭头出来最多只能引2个?
最后有个收集feedback 的form 说提供feedback 给一个wayfair 的10%的coupon。本来想看看是不是真的有coupon,有的话拿到地里分享(我最近没有想买家具),结果填完了要我发邮件过去要LOL。
------------------------------------------------------------------------------------
上周刚面的,面完之后HR说如果有offer,第二天就会通知我,但现在一周过去了啥都没收到,估计凉透。 一共四轮。
round 1 BQ, 很常规,介绍自己做过的比较骄傲的项目, 面试官美国人,全程友善,遇到他感兴趣的技术他会深挖,面完感觉不错。 例题:遇到过很难相处的同事吗?
round 2 Coding, adding strings,直接秒杀,属于easy难度的,面试官美国人,全程友善,遇到typo之类的比较蠢的bug,他还会帮你指出来。 延展问题是如果把数字加逗号 123455 => 123,456 怎么办, 加个if 就好了 半场休息三十分钟之后,高潮来了
round 3 OOD, 印度考官入场,设计一个单车租赁系统,画出class 和相关API。我每设计一个class,每写一行新attribute或者新method,他都会 用特殊的user case挑战我的设计,你答对了,他还会深入继续问,很明显,他是很熟悉这道题的,但这就导致了,整个面试节奏你是被他牵着鼻子 走的,非常不爽,最后我连5个简单的user case都没跑完,API一个没写,100%是挂了
round 4 system design,继续高潮,继续印度小哥,设计 shortUrl。同上,该面试官也是非常熟悉题目的,你走一步,他问一个,不会让你把high level 的设计解释完,逮着一个知识点,就会深挖。这里给大家一些经验,面对喜欢十万个为什么的,直接给最简洁的答案,千万不要去尝试深度分析,除非他 问,不然时间是不够的。我光解释怎么把longUrl hash成 shortUrl就被他整了10分钟,三种方法的利弊都给他介绍了。最后是说完了,但是没有时间给他 深入其他的扩展问题了,所以估计这轮也是减分的。
总结下来,面试其实是非常简单的,因为都是地里原题。但是面试官想和你绕一绕,打破你常规的解题思路,那就很容易凉。 所以建议大家,一定要做好mock interview,多多练习,才能知道自己哪个环节容易卡住 最后希望大家都能好好准备,分分种拿大包!我继续回去刷题了。。
------------------------------------------------------------------------------------
VO - 4轮,都是地里的题:字符串相加,bike rental, design tiny url, BQ 一周后通知过了,但是从L4降级到L3
------------------------------------------------------------------------------------
Coding: 判断回文(String s), followup -> return all 最长回文 from the string
Behavior: 简历项目 related, conflicts, leader roles, etc
System Design: 设计地点打卡 参考YELP打卡
系统 OOD: 停车场 总体难度不高,发帖攒人品希望能拿到Offer。
------------------------------------------------------------------------------------
发个新鲜路平VO及时间线 攒人品 都是面经题
第一轮 BQ 正面负面都有 difficult people to work with/challeging project/conflicts/you came up with some initiatives/mentor junior
第二轮 Coding 就一道 私药雾 LC415 Follow up1 逗号, coding那轮有逗号的话,output也需要有逗号吗? 对 ouput也需要逗号. Follow up2 用这个来实现斐波那契数列
第三轮 SD - tiny url 还问了analytics怎么实现 印度小哥会一直问问题但还好不是很push很challendge那种 lz很顺畅的全部答完
第四轮 OOD - parking garage 要画class diagram/db schema/ api specs 很多肯定画不完 之前看面经大家说面试官要求return type啥的都定义清楚 感觉更不可能画完?于是最后也只是草草的画了主要的部分,之间的关系就靠嘴说 竟然得了超高评价也是很迷
时间线如下 3.7 recuriter电话 3.13 卡拉特店面 3.14 通知店面过了 中间recruiter消失了一阵子VO约好晚 而且他家只能周一/周四VO 4.11 VO 4.13 email 给了uplevel offer 约了下周HM chat, 他家不能自己选组,但是recruiter说这个HM聊完了要是觉得不感兴趣还可以再找其他组聊 求米求米呀 祝各位找工一切顺利!!
------------------------------------------------------------------------------------
一共4轮,求大米
Director 面纯BQ,就聊项目经验,技术背景,过往经验之类的。很轻松的氛围
Engineer 面Coding 2道找回文:2.1 在句子里忽略特殊符号大小写找回文;2.2在句子里找出所有同样长度且最长的回文, 按照原来的格式输出(保留特殊符号大小写)
Engineer 面App Design: 设计一个rental bike store service, 实现一系列API, 包括查库存,加客户,查账单等
Manager+Engineer面Sys Design:设计short URL service
------------------------------------------------------------------------------------
https://leetcode.com/discuss/interview-question/1970090/Wayfair-or-Karat-%2B-Onsite
System Design : tinyUrl
Coding same to Karat Question. Basically 2 List given having related info. search using both lists:
example . List One. "Code1":"value1" "Code2":"value2 "Code3": "Value3" "Code3": "ValueValue4"
List Two: "Customer1": "Code1" "Customer2": "Code1" "Customer3": "Code3" "Customer4": "Customer1" "Custimer5":"Customer6"
------------------------------------------------------------------------------------
coding ques: add 2 string numbers followed up with formatting the output to add commas.
OOPs: Design bike rental app: ran out of time in this, make sure u practice class diagrams system design: design check-in app, user can check in the location whatever he visits.:
------------------------------------------------------------------------------------
System Design and OOD are exactly what the recruiter specifies as examples in the pre interview call.
Coding is LC easy/medium.
The overall experience is good, don't sweat it too much. If you were able to get past Karat, onsite should be much easier. Make sure you practice for SD and OOD
------------------------------------------------------------------------------------
https://leetcode.com/discuss/interview-question/1146079/Wayfair-Onsite
-----------------------------------------------------------------------------------
https://leetcode.com/discuss/interview-question/2030089/Wayfair-or-Virtual-onsite-or-SEII-L3
Recently went through wayfair virtual onsite/ panel interview process. Final round consisted of 4 1 hour interviews with various engineering managers/ devs.
App Design: Automated parking garage
Coding: IsPalindrome LongestPalindrome as second variation which returns the longest palindrome in a given string or an array of strings if there are multiple of the same length.
Behavioral: Focused on team building and leadership. Explain a time when.. questions. Try to answer in STAR format. They want specific examples and no generic answers
System Design: Shazam
------------------------------------------------------------------------------------
4月中面的,现在终于忙完了选好了公司,来给大家分享一下面经,求米看面经哦
第一轮 coding - add two integer, follow up 逗号 比较简单,但是他们那个ide中途挂了,一直全场不compile, 浪费了很多时间重启
第二轮 oop - parking lot 就是design一个parking lot 跟网上说的差不多,没有payment system,面试官感觉不是特别friendly,一直challenge我的design,但是这一轮最后feedback很好,可能是交流的方式的问题
第三轮 behaviour 不太记得了,应该比较轻松愉快就聊聊之前的故事
第四轮 sys design 这一轮爆炸了。。问的是一个checkin system,你checkin你的location,推荐附近的attractions 之前没有准备过geo这一部分的sys design 这部分一直问 4.5年中大厂Experience面的senior最后被down level到了,pkg给的还可以 整体就是印度人非常都非常多,基本上我的所有面试官和我match的team都是印度人
------------------------------------------------------------------------------------
Last updated