回复: 10
跳转到指定楼层
上一主题 下一主题
收起左侧

巨硬 azure 5面挂经

🔗
匿名用户-LHWNB  2020-6-27 21:50:37 |倒序浏览

2020(4-6月) 码农类General 硕士 全职@微软中国 - Other - 技术电面 视频面试  | Fail | 在职跳槽

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看附件。没有帐号?注册账号

x

lz背景:985硕,国内大厂2年工作经验

# 1面:项目、算法题
## 算法题:面试官看简历里写了json,就出题:比较两个json是否相同。
lz用go写的,大概150行左右代码。

# 2面:项目、BQ、系统设计

## 系统设计题:设计一个文件传输程序(系统),支持从aws s3传输文件到azure的某个storage服务。提供了一批机器可以并行传输,要满足一定的吞吐要求。
先是大致说了下设计思路:设计两种服务:1)任务分发服务:负责为传输的一批文件生成任务,将文件拆分到多个woker服务处理;2)worker服务:负责接收来自任务分发者的文件列表,并执行传输。
接着面试官follow up问这个系统还有什么要考虑的吗?或者平时做系统的设计过程是怎样的?
lz就参考<grokking the system design interview> 的步骤描述了详细的设计过程。
1. 需求分析
    1. 功能:
        1. 支持从aws的s3存储传输到azure的存储服务. check 1point3acres for more.
        2. 考虑到模块可扩展性,程序可以设计成支持多个输入和输出,支持从aws多个输入源到azure多个输出
    2. 非功能
        1. 性能:吞吐、延迟
        2. 可扩展性:在需要更大数据传输吞吐的时候,能通过增加机器或提升配置来扩展. 1point3acres.com
        3. 可用性:服务器挂掉的情况能继续保持可用。
            1. 任务分发者可用性:采用master-slave模式。多个分发者服务器,使用外部存储(比如ectd、zookeeper等)进行选主,任意时间只有一个主提供服务,主挂掉后重新选举、切换.
            2. worker可用性:对于挂掉的worker,如果任务中包含未完成的文件,分发者将文件分发给其它worker。
2. 容量估算:估算要求的吞吐量,需要多少机器
3. 系统接口
    1. 设计任务分发者接口:1)创建文件传输任务的接口;2)提供worker将文件标记为传输成功的接口
    2. 设计worker接口:1)接收文件列表接口,执行传输工作
4. 数据库模式和选型
    1. 存储任务、对应文件列表、状态等信息。属于非关系型数据,可以选择nosql存储,比如mongodb。但因为数据量不大,没有较大的吞吐要求,所以也可以用sql存储,比如mysql. check 1point3acres for more.
5. 顶层设计:
描述了需要的模块:任务分发者、worker、etcd、mysql

# 3面:项目、BQ、算法题
. 1point3acres.com
## 算法题:约瑟夫环问题:n个数,编号为1~n形成一个圈,依次去掉第m个元素,最后剩下的是哪个?
直接暴力模拟做的O(mn), 面试官让想O(n)的解法没想到,后来网上查到了。

## 系统设计:设计一个高速etc系统。

比较开放的题目。让不用考虑硬件部分的实现,就考虑软件部分的。
大体思路是:设计一个etc后台服务,在高速入口记录车辆的信息、高速点、进入时间等信息,在出口获取信息计算费用,对etc绑定的支付方式进行扣费。. From 1point 3acres bbs
. 1point 3acres
. Χ
# 4面:BQ、算法题、程序设计
. ----
## 算法题:翻转指定区间内的链表节点
比较简单,直接做就好了。面试官follow up考察了代码测试问题,lz设计了正常和异常情况下的测试用例,感觉比较全面了。 ..

## 程序设计:设计一个ETL程序,支持从不同的输入源,执行数据处理后,输出到不同的输出源。
面向对象设计题。设计了输入、转换、输出接口,和一些具体输入、输出源的实现类,最后设计了程序的yml配置:可以对不同的输入输出进行组装。
面试官follow up问了一个具体的实例:如果要把文件作为输入,输出到mysql怎么做?实际问题是:输入输出数据结构不一样怎么办?
Lz给的解答是:输入和输出统一用字符串作输入输出,但对应到mysql输出,就需要数据满足其要求的格式,比如:字符串中的列数据按tab分割,以json存储等。而要满足其格式,可以是输入源的数据本身已经满足条件,也可以是数据转换后使其满足。
. 1point 3 acres
# 5面:BQ、算法题
## 算法题:计算中缀表达式
我的思路是直接顺序处理字符串,这样写起来代码比较多,大概120行+,lz调试了几次才通过用例。然后还因为工作主要用go语言,刷题用c++,导致c++和go的语法有点弄混了,但心急就没纠正语法错误而是换了种写法,感觉这里表现有点糟糕。。。
后来查了知道可以按照类似计算后缀表达式的思路,用两个栈处理,代码简单不少。
. 1point3acres.com
# 后续:. Waral dи,
面完两天后向hr要了面评,好像2面的面试官对系统设计能力有些concern,但个人觉着2面这里答得还挺好的。。
虽然挂了,但不得不说整体面试体验非常棒,面试官都非常友好,不像国内一些大公司的面试。。
第一次面试微软,觉着微软面试考察得比国内公司更全面,而且也都是工作中实际需要具备的工程能力。准备系统设计的过程中看了不少资源,感觉技术广度也提升了不少,推荐下:github上的<system design primer>看组件、概念和原理,<groking system design interview>看例子,然后youtube上再找些具体例子看下。

评分

参与人数 6大米 +23 收起 理由
匿名用户-KBCVR + 15
hakunamatatal + 3 很有用的信息!
tommyjiang + 2 给你点个赞!
kebugcheck + 1 很有用的信息!
zgsydx + 1 很有用的信息!

查看全部评分


上一篇:腾讯(微视)数据分析师-产品面经(求大米!!)
下一篇:java前端开发面经 求米求米
推荐
dengzeyu147 2020-7-20 22:37:52 | 只看该作者
全局:
azure考这么多 系统设计。。
回复

使用道具 举报

全局:
sentry 发表于 2020-06-30 08:52:40
这个感觉难度不低啊,两年是面的SDE2吗?二面是纯系统设计吗?系统设计的比例感觉有点高
没到最后定级,但按工作经验应该还是sde1。二面印象中是没coding,也可能是我给搞忘了。。
回复

使用道具 举报

🔗
baihou 2020-6-28 19:19:15 来自APP | 只看该作者
全局:
请问有英文面试吗
回复

使用道具 举报

🔗
zgsydx 2020-6-28 19:23:27 | 只看该作者
全局:
请问楼主是面的上海的职位吗,谢谢。
回复

使用道具 举报

🔗
yyff 2020-6-28 19:48:04 来自APP | 只看该作者
全局:
zgsydx 发表于 2020-06-28 04:23:27
请问楼主是面的上海的职位吗,谢谢。
嗯 对的 zszszs
回复

使用道具 举报

🔗
yyff 2020-6-28 19:53:49 来自APP | 只看该作者
全局:
baihou 发表于 2020-06-28 04:19:15
请问有英文面试吗
我面的时候没有 都是国人 听面试官介绍平时都会和美国那边同事交流
回复

使用道具 举报

🔗
sentry 2020-6-30 23:52:40 | 只看该作者
全局:
这个感觉难度不低啊,两年是面的SDE2吗?二面是纯系统设计吗?系统设计的比例感觉有点高
回复

使用道具 举报

全局:
楼主是在TX工作吗, 可以加个微信交流一下经验吗?
回复

使用道具 举报

🔗
springbear 2021-6-8 18:19:29 | 只看该作者
本楼:
全局:
难度不低
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

>
快速回复 返回顶部 返回列表