美团厦门研发中心欢迎你

我们一直认为,只有最好的团队、最好的事情,才能吸引最牛逼的人加入我们。
我们希望,大家能在优美的环境,身心愉悦的高效coding,一起改变生活,让大家更幸福。

美团,公司名称:北京三快在线科技有限公司。

三快, fast, sharp, happy.

fast: Done is better than perfect.
sharp: Talk is cheap. Show me the code.
happy: geeker的世界你懂的。
找到自己喜欢的事情,并专注的投入进去,忘记时间的流逝,这个时候,你是幸福的。。

什么时候人类最幸福?为了收集相关的数据,马特 科林斯沃斯设计了一款应用,追踪你的幸福指数,倾听志愿者的真实感受。结果令人惊讶:当我们全神贯注的时候最幸福。与此相反:越是走神,越是觉得不幸福

团队介绍

团队有科学家、高级技术经理、技术专家多人。
北京、上海、厦门的技术团队紧密互动,力求技术三地同步。
公司的基础项目,无缝共享,帮助我们以最小的代价提升交付的质量和速度。
我们喜欢折腾,推崇全栈,强调无边界的责任感。

项目介绍

目前美团厦门研发中心,主要有两块业务。分别是:内部IM和酒店管理系统。
内部的IM,致力于构建美团内部的消息平台,服务于各个业务线和项目。
酒店管理系统,致力于用科技提升酒店的管理效率,让商户、网民、美团共赢。

开放职位

后台开发、前端、客户端、EP(QA, 尽管我很不愿意这么备注)、数据等各种高阶职位虚位以待。
具体的JD可以参考:
Java后台研发资深工程师

优越的地理环境

美团厦门研发中心位于厦门最美的环岛路边上。
无敌的海景。
远眺环岛路
远眺小金门
俯视游艇俱乐部

温馨明亮的办公环境

2015.11.15,美团厦门研发中心迁到新址。
前台
会议室
工区
临时就餐区

清新的空气

根据PM2.5历史数据上的信息,我们可以得到北京和厦门最近一年空气质量的对比:
北京-厦门空气质量对比
数据应该能够充分说明问题了。

教育

福建最好的中学:厦门第一中学、厦门双十中学、厦门外国语学校。
还有中国最美丽的大学:厦门大学。
小朋友快乐成长是有保证的。

医疗

厦门目前有4家三甲医院,能基本覆盖大多数的日常需求。
其实,如果有良好的空气、适宜的气候、美丽的户外运动场所,我们去医院的概率应该也会下降吧。
后续,我将整理一份发病率的数据,数据说话。

其它福利

紧挨台湾。
每天在海景餐位就可以看到小金门了。
海景餐位

去HK血拼,也比北京或者杭州近一些。当然,和深圳的同学没法比。

不足

厦门整体看,IT的氛围和发展速度与北京还是差一个台阶的。
这也正是需要我们一块来改变的,一起提升眼界、技能和分享的氛围。

我们致力于能将美团厦门研发中心打造成南部省份第一的技术团队,成为标杆之一。
前面等待我们的是各种重量级团队:微信、阿里、网易。

希望前进的路上有你有我,一起走,才能走的更远。
如有意愿:请投递简历到 wuyuhua#meituan.com。
欢迎简历附上github帐号、微信公共号或者自己关注的微信公众号。

高级测试开发工程师

工作地点:美团点评厦门研发中心

业务:美团民宿

工作职责

1、负责后台服务的功能测试、接口测试、性能测试和压力测试;
2、定义测试上线流程、测试环境及测试数据,并和运维团队一起搭建测试集群;
3、引进和开发各种工具来提高测试效率;
4、构建服务端CI环境,将功能测试、接口测试和压力测试集成到CI环境中。

职位要求

1、计算机或相关专业本科以上学历,或有相当水平的从业经历;
2、三年以上后台服务开发或测试经验,熟悉软件测试流程和测试用例设计方法;
3、有良好的编程能力(熟悉Java或C编程,并熟悉Ruby/Python/JavaScript/Shell等脚本编程中至少一种);
4、熟悉压力测试,熟练使用压测工具Jmeter、http_load等;
5、熟悉HTTP协议、Web架构、RESTful API及互联网应用的工作原理;
6、熟悉Jenkins的配置和使用;
7、熟练使用Linux或Unix系统(尤其是Mac OS X)及Git,开源工具爱好者;
8、对技术有浓厚兴趣,乐于构建工具或对工具做改造(Hack精神)。

加分项

1、了解nginx和Apache的工作原理;
2、熟知JVM的工作原理;
3、熟悉SOA架构下的测试环境搭建和测试数据建设;
4、给开源工具提交过patch。

联系方式: wuyuhua#meituan.com

我们一直认为,只有最好的团队、最好的事情,才能吸引最牛逼的你加入我们。
Welcome to Phoenix

高级移动测试开发工程师

工作地点:美团点评厦门研发中心

业务:美团民宿

技术能力要求

1、有一定的编程能力(熟悉Objective-C或Java编程,并了解Ruby/Python/JavaScript/Shell其中至少一种);
2、熟练使用常见的iOS应用调试工具(Xcode、Xcode Commandline Tools、HTTP代理、抓包工具等);
3、熟练使用常见的Android应用调试工具(Android SDK、Android Studio、HTTP代理、抓包工具、ADB等);
4、熟悉Android iOS 系统的测试方法;
5、具有移动端专项测试的实际经验和移动端自动化测试的实践经验;
6、熟悉移动端Crash分析和解决方法以及模拟器特性和相关的移动端测试方法。

综合素质能力要求

1、良好的团队合作能力和沟通能力,owner意识,业务和技术驱动能力;
2、深入的问题发掘能力,推动,优化的能力;
3、业务的深入理解和推动能力。

联系方式: wuyuhua#meituan.com

我们一直认为,只有最好的团队、最好的事情,才能吸引最牛逼的你加入我们。
Welcome to Phoenix

后端高级研发工程师

工作地点:美团点评厦门研发中心

业务:美团民宿

岗位描述:

1、负责后端业务分析、系统设计、功能开发,把纷繁的业务需求拆解细化并实施
2、充分理解业务需求,负责业务项目的分析、抽象、架构、研发过程及最终质量;
3、参与Design & Code Review;
4、难点攻克,技术输出,指导初级工程师,促进团队共同成长;
5、持续优化性能,提升系统稳定性,持续以自动化手段提高效率;

任职要求:

1、本科及以上学历,3年以上Java后端开发经验,有复杂后台或者高并发系统经验;
2、精通Java后端开发,对各项技术的工作原理及优化方案有较多积累;
3、对互联网技术充满热情,了解常见的RPC、MQ、缓存等技术,并在多个方向有较深入的研究;
4、拥有和工作年限相称的技术宽度和深度,较强的分析、抽象、设计的思维能力;
5、主动积极,认真负责,对技术有浓厚兴趣;

加分项:

1、对TCP协议、JVM调优、NIO、RPC框架、安全攻防等了解深入或有实践经验;
2、参与过互联网大型高并发分布式系统设计或有相关实践经验;
3、有系统框架技术选型或源码研究经历;
4、有高质量的开源项目或个人技术博客;
5、有其他编程(JavaScript、Golang、Python、C/C++等)语言经验;

联系方式: wuyuhua#meituan.com

我们一直认为,只有最好的团队、最好的事情,才能吸引最牛逼的你加入我们。
Welcome to Phoenix

Android高级研发工程师

工作地点:美团点评厦门研发中心

业务:美团民宿

我们是美团酒旅事业群下base在厦门的终端团队,截至今天FE+Android+iOS一共18人,整个业务研发团队目前大概40+人。
目前要在住宿领域开启一个全新的业务,为消费者提供更多的住宿选择,更好的住宿体验是我们的目标。 让年轻人住的更好是我们的愿景。

这件事情虽然我们刚刚起步,但是目标非常明确,路径非常清晰,团队的小伙伴们也很兴奋,

  • 为有一次机会参与到一个独立业务从0开始的发展过程,
  • 为有一次机会参与到一个系统生态从0开始的构建过程,
  • 为有一次机会可以不只是一颗螺丝钉。
  • 当然更为在这个过程中可能面临的各种挑战以及风险投资后可能的丰厚回报。

或许你可以想象一下凤凰涅槃,哈哈,至少我是这么想的。

嗯,那说完虚的再说一些比较实际的,我们会构建一整套从C(Consumer)、B(Business)、到M(Management)及D(Data)端的系统,产品也会涉及到Mobile、PC、iPad等常见的终端。 我们期望2年后市占能超过50%,我们迫切需要客户端方面的人才加入我们共同创造历史。 更多的我不能在这里说了,如果你有意向,我们再面对面细聊。

我们欣赏的您:

1、新的业务、事多人少。我们欣赏的你不一定技术很强,但一定要有较强的主人翁意识、有舍我其谁的情怀。
2、注重能效。我们更看重单位时间的效率和产出。期望你可以常怀空杯心态,不断学习提高,哪怕明天的你比今天有一点点的进步。我们都为你欢呼,人是最宝贵的资源。
3、我们崇尚get things done,show me the code,no can no bb等工程师文化。不管是FE、iOS、Android,如果业务需要能以业务出发迅速补位,语言和技术作为工具或手段最终服务于业务。

再说点实际的,我们期望的您:
1、丰富的Android APP开发经验
2、对Android kernel及FrameWork框架层工作机制及实现原理有深入理解
3、精通Java语言,熟悉虚拟机原理、linux系统
4、学习能力强,具有强烈的责任心和较强的沟通能力及团队合作精神
5、具备良好的编码风格和习惯
6、热爱移动互联网,具备移动网络优化经验优先
7、了解HTML5,JS相关技术者优先
8、有创业经历者优先

我们可以为您提供:

1、一群聪明的小伙伴
2、一个能够充分发挥你才能, 拥有较大自由度和成长的空间
3、一套程序猿的顶级梦幻装备, Retina屏幕的MBP, 一把超舒适的人体工学椅及27寸外接大屏
4、一份令你满意的薪水和现在还不太确定多少的期权回报
5、一家充满了极客氛围的公司
6、一处令人向往的无敌办公环境

联系方式: wuyuhua#meituan.com

我们一直认为,只有最好的团队、最好的事情,才能吸引最牛逼的你加入我们。
Welcome to Phoenix

如何POST JSON数据到RESTful API

第一次做前端,第一次接触node.js,好多第一次啊。

背景

打算做一个日报工具,收集团队的同学在jira、wiki和git上的action,自动生成汇总页面,加上UGC后,形成正式日报,发送出来。
希望这个工具,可以推动大家更多的使用jira、wiki、git,同时不给大家带来额外的工作量。
之前,是需要大家每天手动填写周报,邮件发出。很多jira、wiki和git上的内容,要重复填写一次,比较麻烦。

具体问题

收集有多种方式,但抽象一下,就是主动和被动。
主动:像爬虫,爬取页面,抽取信息。
被动:构建订阅者,信息提供方推动信息。
前者适用面广,难度大,工作量大,需要考虑调度、解析等问题。
后者适用面小,需要对方系统支持,但系统已经结构化,工作量小,系统负荷小。
所幸,jira支持后者,它称之为webhook

因此,我们的问题,就是构建一个API服务,针对接收到的信息,做相应的处理,达到我们的业务需求。

在开发API服务的过程,遇到的第一个问题:怎么构建一个工具,可以方便的发送JSON格式的数据,到我们的服务上,便于开发时的测试。类似Mock。

发送JSON消息的几种方式

借助工具

我们可以借助已有的工具,来帮助我们post数据。

世界这么大,工具总会有。
前人这么多,工具一定有。
善用google,善用tools。

1、curl
1
curl -H "content-type: application/json; charset=UTF-8" -H "accept: */*" -H "via: 1.1 localhost (Apache-HttpClient/4.3.2 (cache))" -H "host: localhost:3000" -H "connection: Keep-Alive" -H "user-agent: Atlassian HttpClient 0.20.1 / JIRA-6.4.4 (64019) / Default" -X POST -d "{\"a\":1}" http://localhost:3000/hook/jira/project-1

注意,-d 带上post的数据时,要注意”的转义(\”)。
同时,header有多项时,要分开写,多个-H。

2、postman

postman
这是一个chrome插件,对于我们测试,非常有用。而且可以共享collection。

需要post一段json,请参考下图配置。
postman-post-data

这里是不需要转义的。但一定要增加一项header:”content-type: application/json; charset=UTF-8”。

自己写测试工具

我们需要写单元测试工具,还是得落到代码,可以使用restler。
这里强烈推荐《Web Development with Node and Express》,非常适合node.js的入门,step by step。里面关于测试的讲解,非常赞。后续我再专门介绍。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
var rest = require('restler');

var message = {
timestamp:1447923260390,
webhookEvent: 'jira:issue_created'
}

var base = 'http://localhost:3000';

rest.postJson(base+'/hook/jira/project-1', message, {timeout:10000}).on('timeout', function(ms){
console.log('did not return within '+ms+' ms');
}).on('complete',function(data,response){
console.log('get the response');
});

这里借助了restler,来发送post请求。


总结

第一次做web开发,对json还不算特别熟悉,自己在看了restler的下面这段话,才顿悟。

The data to be added to the body of the request. Can be a string or any object. Note that if you want your request body to be JSON with the Content-Type: application/json, you need to JSON.stringify your object first. Otherwise, it will be sent as application/x-www-form-urlencoded and encoded accordingly. Also you can use json() and postJson() methods.