Shopee 新加坡 Backend server 面经
之前在领英上HR联系了我新加坡的岗位, 参加了Shopee的笔试。
HR面
问了一些行政上的问题:
家在哪?
家人是否支持你来新加坡?
你觉得来了新加坡该如何适应?
你在留学时做了什么事情来适应新环境?
因为是新加坡的小姐姐面的,所以全程英文。
接下来就是约了一天他们virtual career fair date 的面试, 一天时间走完流程,一周出结果
技术一面(90min)
1. 一上来,自我介绍都不用,直接让我介绍一个我自己的项目,后面会根据这个项目让你做类似于系统设计的东西
2. 设计一个网站用户登陆的系统,详细讲一下表单如何设计。什么数据库?以什么为主键 UUID? 自增ID? snowflake?
密码如何储存?
如果又是商家 又是买家怎么办?
你提到了Salt 加盐算法 那你讲一下加盐算法
3. 之后给你补充几个表单Order,User ,假设数据库和对象已经实现了映射包装,你根据表单的内容使用函数实现一些查询功能
4. 接着会让你进行优化,尽量减少你数据库层面的数据访问。(尽量做一次读取到内存里)
5. 看了设计的差不多了,就开始问一些设计时候遇到的数据库和网络问题
热点数据怎么处理 ? 缓存?
HTTPS的加密说一下?
HTTP的响应报文结构?
如何实现下次登录时, 网站依然能记得你已经登陆了? cookie + session
cookie存成明文么? 我不太确定 回答可能要加密
session存在哪里?
如何提高我们的网站响应速度? 大概扯了一些CDN 和 缓存之类的。
6. SQL注入了解么? 怎么预防?
CSRF了解么 如何预防 (token ,验证码....)不过当时没答出来
主管面(120min)
一轮面试如果过了,五分钟就通知你结果了。。。 然后给你发下一场的链接和时间。。。
很温柔的男主管,很年轻,甚至有点吃惊已经是主管了
1. 秒杀项目夺命询问:
为什么要用redis 做缓存
redis 为什么快
说一下你订单扣减的逻辑
消息队列为什么可以做订单超时处理 (这里跟他说了大概20分钟,感觉他是要完全理解才行。)
你这系统能实现多少的访问量 ans: 读请求10w级别
你MQ挂掉了你的系统不就崩了? 我回答对,但是用了sentinel 熔断机制
来讲下你的整个项目的业务逻辑。。。
你怎么保持数据库和 redis的一致性?
2. 我看你写了一个数据库管理系统:
说一下什么是2PL
你是怎么实现数据库锁的?
为什么有表锁你还要实现行锁
为什么要用意向锁
3. 算法:
先写一颗二叉树;
用left 指针实现一个链表,使得顺序是二叉树的中序遍历,要求inplace...
(当时在北美面的, 已经凌晨2:30 了,脑死亡了快)
想了十分钟,没思路,给了提示,写了一半发现又傻掉了。 于是要求换个题
面试官说你可以用not inplace 来写。。。
写完之后,开始聊天
4. 家里人支持来新加坡么
你在学习生活中最讨厌的事情是什么
你有什么要问我的么?
问了几个技术栈的问题, 结束了面试。
后续
虾皮还是很注重综合素质的, 网络考的频率也更高一点,可以多用心准备。
全部评论
(14) 回帖