# 2021 年一次比较奇葩的 AWS 面试

面试的时间是在 2021年的 11 月左右。从 2021 年开始后 AWS 貌似也不怎么狂发 OA 了，很多时候的面试就直接跳过了 OA 环节进入到白板测试中了。

非常不幸的是第一轮面试就被提示不进入下一轮了。

面试的时间是在 2021年的 11 月。

## 相关背景
本次面试的原因是有招聘的同事在 Linkedin 上找到我。

做的项目是 OpenSearch https://opensearch.ossez.com/ 项目相关的内容，这个项目主要因为 elasticsearch 版本许可证的问题，AWS 不能够再使用 elasticsearch 相关服务和技术了。

因此 AWS 自己开发了一个基于开源的 OpenSearch 项目来替换掉将要过期的 elasticsearch  服务。

## 第一轮面试相关
第一轮面试是和印度人面试的。

使用的是 AWS 自带的面试视频软件。说心里话，整个面试的过程并不是非常专业，比如说面试到一半对方消失了 10 分钟左右。

对方孩子一直在视频中叫唤等等情况。

### 面试题目
面试主要问了 2 个题目，同时针对这 2 个问题展开了一些讨论。

### 大数据情况的用户管理
在大数据情况下的用户管理，主要希望问的是假设你有一个 Google 数量级别的用户，你应该如何设计用户管理和用户数据查询。

个人感觉这个问题我的回答不是非常好，原因非常简单，因为我没有怎么设计过这类的系统，在一般的通用环境下，大部分都会使用 SQL 来解决。

但，我知道这类的设计肯定是不会使用 SQL 来解决的，因为 SQL 达不到这类的效果和访问需求。

但是如何设计，这个如果没有做过的话，那么可能会有点晕。我给的方案应该是索引和 NoSQL 的方案，但是后面他又问道了服务应该如何安排。

我知道在这里基本上会使用集群，一般可以考虑使用 ZooKeeper 来进行同步或者可以参考下 Druid 的数据设计模式，但是可能没有说的非常清楚。

个人感觉这个问题的回答不是非常好。

### ATM 函数功能相关设计
ATM 中通常有取款，存款，查询余额度的相关操作。

在这里他希望设计一个函数或者程序结构什么的，这个设计可能会比较复杂也可能会比较简单。

在这里我考虑了 OO 设计中的接口和实现的方式，针对 取款，存款，查询余额设计不同的接口以及实现。

在考察面试的过程中，并不需要你完全下下所有的代码，你可以使用伪代码表达自己的意图就可以了。

## 总结
针对这上面 2 个面试的问题，其实还是有些坑的。

如果你没有设计过或者没有太多经历，可能会入坑的情况比较多。

在几天后，收到了拒绝的邮件，我也不知道上面的回答有什么问题，也不明白现在的 IT 面试都这么内卷了吗？

欢迎有相同经历的同学参与下讨论。

---
https://www.isharkfly.com/t/2021-aws/13788