WorkIndia 面试经历
有4轮
- API 测试轮(2 小时)
- 系统设计技术回合(2 小时)
- 团队负责人技术回合(2 小时)
- 文化轮(人事轮+薪酬谈判轮)
第 1 轮:这是一个 API 开发轮。 HR 将在回合开始前 1 小时发送问题。我们需要编写有效的 API 代码。您可以自由使用 google 查找解决方案,但是不允许复制现有项目。您必须将您的项目推送到 GitHub 存储库并提交此 Google 表单
我被问到以下问题:
问题陈述:您的任务是创建一个支持项目要求的 HTTP API。记录用户笔记的 Web 应用程序。
要求:
用户帐户注册:创建一个用户帐户。这些凭据将用于登录此面板。
[发布] /应用程序/用户
请求数据:{
'用户名': str,
“密码”:str
}
响应数据: {
'状态':'帐户已创建'
}
用户帐户登录:提供使用用户凭据登录面板的能力。
[发布] /app/user/auth
请求数据: {
'用户名': str,
“密码”:str
}
响应数据: {
“状态”:“成功”,
'userId': 整数
}
列出已保存的笔记:
为登录用户提供存储笔记列表
[GET] /app/sites/list/?user={userId}
请求数据:无
响应数据: [已保存笔记列表]
返回的列表应该属于请求传递的userId
保存新笔记:
为用户提供添加新注释的能力。
[POST] /app/sites?user={userId}
请求数据: {
'注意':str,
}
响应数据: {
“状态”:“成功”
}
可选要求:存储在数据库中的所有笔记都必须加密。没有密钥,任何人都不能阅读存储的笔记文本。密钥可以存储在代码本身中。
技术栈:您选择的任何网络服务器(Python Flask / Django、NodeJS Express / Koa、 Java等)
数据库:MySQL(必修)
解决方案: https://github.com/sudheersingampalli/WorkIndia-notesapp
第 2 轮(系统设计轮):设计一个 TikTok 的克隆,它将支持以下要求:
要支持的功能:
- 用户可以发布视频
- 用户可以看到其他用户的新闻源
- 喜欢和评论功能
- 用户可以互相关注。
解决方案: https://www.youtube.com/watch?v=VJpfO6KdyWE
数据库设计完成后,我被问到一个额外的问题,例如:
- 许多用户在一天内发布超过 5 个视频。
- 查找最受欢迎的用户:在他的视频中获得最多赞的用户
- 添加最喜欢的功能。
- 有关如何扩展上述系统的问题,当拥有 1000 万粉丝的名人登录您的应用程序时会发生什么等。
第 3 轮(团队负责人将面试):
- 深入讲述你的经历
- 您贡献的 2 个项目及其深度影响
- 您面临的生产问题以及您是如何解决的
DS 问题:可能会出现以下问题之一:
- 给定一棵二叉树,找出所有没有兄弟节点的节点
- 砖问题。 2D 矩阵以 0,1 给出,其中 1 表示砖是好的,0 表示砖有裂缝。找到倒水时的路径。
- “给定 5 个容器。每个容器都有重 10 克的滚珠轴承,但 1 个容器有一批重达 9 克的坏批次滚珠轴承。每个容器都有相同数量的滚珠轴承。找出找到坏容器所需的最小称重尝试次数。 (重量更轻的那个)”
- 三只蚂蚁坐在等边三角形的三个角上。每只蚂蚁开始随机选择一个方向并开始沿着三角形的边缘移动。没有蚂蚁发生碰撞的概率是多少?
第 4 轮(文化轮):人力资源问题和薪酬讨论。