200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > Morgan Stanley面经

Morgan Stanley面经

时间:2018-09-13 03:41:26

相关推荐

Morgan Stanley面经

背景

至期间,我在上海eBay工作,周围不少同事都是从摩根斯坦利过来的,总体上看很优秀。加上在极客时间的课程讲师里,就有原来从摩根斯坦利出来的,于是对这个公司产生了浓厚的兴趣,再加上当时我觉得和我金融老本行比较对口,于是找各种渠道内推。

(不过当时心里也有个疑问,他们为什么离开摩根斯坦利来到了eBay?)

机会很快来了,对方HR来电简单了解了一下,我获得了面试机会。

0408 全英文初面 体验好

初面面试官是一位姓Liang的女生 微笑很具备感染力

她先简单介绍了一下自己,提到了几个关键词:处理 marketing data; daily job;收益曲线 yield curve

面试风格比较朴实,没有java八股文,也没有coding

1. 问工作经历

eBay 和 网易 主要

连连和工行她几乎没有问

2. 互联网技术栈和金融技术栈异同点

我讲了分布式和银行集中式不同

她也总结到,没有单独的技术谁好谁坏,首先需求促生了技术,有了好的技术有能实现以前所想不到的

3. airflow她特别提到

我介绍了背景,和qm比优劣点,以及在eBay的mep readout项目中的应用

4. 特别说起了我的项目中使用的cache,解决了什么问题,带来了怎么样的性能提升
5. 数据库的比较,eBay是no-sql ; 网易是mysql等关系型数据库,ACID原则
6. token是什么情况,我提到多次,我解释了下
7. 我在网易的圈圈项目,技术点:企业余额更新设计介绍

她问,怎么处理和团队同事,bu的意见不同

我回答看情况,举例,bu对的,我对的

和团队同事主要在初期,我新去项目还不熟悉,同事指出问题我很乐意;同事熟悉后,也要能为别的同事贡献意见

开发和pm,哪个更喜欢:我回答coding is my passion;pm也有研究,那是为了更好和其沟通

问她:工作中挑战

业务方面,她在考CFA(很上进啊)

技术方面,吸收互联网的技术,开源的,很挑战,老板要求高

通过交流,我心中暗暗总结出来了鄙视链

工行人才凋敝,被阿里吸血

金融业人才凋敝,被互联网人才吸血

外资人才凋敝,被内资互联网人才吸血

(注:以上是的情况,然后的情况又不同了)

二面

面试官No.1 主要是技术基础部分

姓Cong,年纪较大。一上来就问,如果面试官是我,我怎么面试候选人, 我回答:3个sector,一是项目,二是java基础,三是coding部分

还让我提供了5个java问题:

线程状态变迁图hashmapjmm 为什么volatile起作用ArraylistJava新语言特性(其实我也没怎么看这块,他显然也没有)

让我画企业余额更新的图示(我用了processon),然后追问了b+树结构

根据如下,他让我代码,写状态

List<String> list = new ArrayList<>();for (int i=0; i<list.size(); i++) {System.out.println(""+ list.get(i));}list.forEach((x)->{System.out.println("");});//lockReentrantLock lock = new ReentrantLock();double maxPrice = 0;List<Double> prices = new ArrayList<>();List<PriceSource> srcs = new ArrayList<>();List<Thread> ts = new ArrayList<>();for (int i=0; i<10; i++) {ts.add(new Thread((src) -> {double ret = src.getPrice();try {lock.lock();prices.add(ret);} catch (InterruptedException e) {} finally {if (lock.isLocked()) {lock.unlock();}}}));}//runfor (Thread t : fs) {t.run();t.join();}//compare and set maxif (prices.size() >= 10) {for (Double p : prices) {if (p > maxPrice) maxPrice = p;}}System.out.println(maxPrice);

问他, 他回答目前在做并发的事情,他让我coding的就是项目写照,怎么低延时是要好好考虑的

面试官No.2 主要是编码部分

自我介绍,英文名Jerry,先问我项目经历,我刚开始说的很多,发现时间紧,就赶紧结束

然后赶紧开始做题目:

新语言,这个expression作用是distinct

其中find最耗费时间,我开始写On平方的算法,

在提示下,对y进行map,简化成On,空间换时间

x = 0 1 2 itself

x = a b c

0 1 2 = 0 1 2 so it is 1 1 1 itself

if x is aaa return 000; so 0 1 2 => 1 0 0 return a

equals O(n)

count O(n)

interval On

find O(n sqart)

compress O(n)

class Solution {/* @param: y : place to find ; x : x length = result length ri means the pos in y that xi first ocurr**/public List<Character> find(List<Character> y, List<Character> x) {//check param 1. null 2. length if (y == null || x == null) return null;//find ocurrList<Integer> ret = new ArrayList<>(x.size());Arrays.fill(ret, -1); //optimize: hashmap to imporve Map<Character, Integer> map = new HashMap<>();//O(n) for all senario : pre-treat y to mapfor (int i=0; i<y.size(); i++) {char c = y.get(i);if (!map.containsKey(c)) {map.put(c, i);}}//x for (int i=0; i<x.size(); i++) {char c = x.get(i);if (map.containsKey(c) {ret.set(i, map.get(c));}}for (int i=0; i<x.size(); i++) {char c = x.get(i);if (map.containsKey(c)) {ret.set(i, map.get(c));continue;}for (int j=0; j<y.size(); j++) {if (y.get(j) == c){map.put(c, j);ret.set(i, j);break;}}}return ret;}}

面试官No.3 主要是系统设计部分

面试官介绍自己姓Zhang,然后开始系统设计面试,一旦这个层级,设计的,用英语还是比较难表达的,比编码难,编码毕竟代码是一样的

如下,设计一个股票交易系统:

1. group design stock exchange system ; pair
2. requirement

workable

core function: buy & sell stocks

3. breakdown(miniset)

list stocks

user managerment: user register & unregister

account managment: balance of user, deposit fund, withdraw fund

buy stocks

sell stocks

matching engine

4. user case

list stocks

5. buy stocks

source of price data

input of user (buying price he set up)

call matching engine

6. sell stocks

validation

source of price data

set up sell price

matching

7. data models

user info:

account info(stock balance, money balance):

order info(atomic):

id :

type:

userId:

stock code:

amount (stock):

currencyType: RMB

currencyAmount:

status:

execution info:

8. match strategy

simple match, same price

map to store each stock’s orders; list to orders

//we got all the active ordersList<Order> list = this.getAllActiveOrders();Map<StockCode, List<Order>> map = new ArrayList<>();for (Order order : list) {if (map.containsKey(order.code)) {map.get(order.code).add(order);} else {map.put(order.code, Lists.of(order))}}//matchOrder buyOrder = getCurrentBuyOrder();StockCode code = buyOrder.code;if (map.containsKey(code)) {List<Order> allList = map.get(code);for (Order aOrder : allList) {if (aOrder.type == "SELL" && aOrder.price == buyOrder.price) {//transactional atomicAccount a = this.getAccountById(buyOrder.userId);Account b = this.getAccountById(aOrder.userId);int min = Math.min(buyOrder.amount, aOrder.amount);a.stockAmount += min;b.stockAmount -= min;a.moneyAmount -= min * buyOrder.price; //precheck enough moneyb.moneyAmount += min * buyOrder.price;;}}}

设计讨论之后,他对我从业经历非常感兴趣,特别是当初为什么从体制内的工行出来,我答复:

技术落后(注:指几年前当时的情况,现在国有银行引入了互联网最新的技术成果,技术栈是有更新的)2.期间外派去国外学习了但回来发现无用武之地

后续

面试后,摩根斯坦利hr很快来电话,二面3轮面试都通过了。来了解了我在eBay的薪酬。也介绍了下摩根斯坦利的薪酬,他们没有股票,也没有13薪和年终,只有12薪(和渣打的有点像)。公积金之类都是顶格交的,然后有个saving plan,拿出8%的工资,免税,到离职时一次性拿。所以是按总包算,大概可以给到50-60w(当时情况,在金融业里同岗位横向比还不错的)。如果我同意继续,接下来可能还有一轮到两轮面试(至多不超过2轮,应该是manager的面试了)。

后来我去新加坡Shopee了,没有继续。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。
相关阅读
Morgan Stanley

Morgan Stanley

2020-11-10

Morgan Stanley笔试题

Morgan Stanley笔试题

2022-12-17

应聘Morgan Stanley(转)

应聘Morgan Stanley(转)

2020-08-26

Morgan Stanley电面经历

Morgan Stanley电面经历

2023-03-21