### FreeWheel诚招:资深Golang研发工程师/架构师
##### 简历投递:410388312@qq.com
#### 关于FreeWheel
- FreeWheel创建于2007年,是美国最大的综合性传媒集团康卡斯特(Comcast)的全资子公司,是美国最大的视频广告管理和投放平台。全球员工近700人。公司总部位于硅谷,在纽约、伦敦和北京分别设有办公室。其中北京办公室作为全球研发中心,负责公司全部核心产品的开发。
#### 薪酬福利体系:
- 提供一线互联网公司级别的薪资待遇;
- 全额的五险一金(养老保险、生育保险、医疗保险、工伤保险、失业保险、住房公积金),公积金缴纳比例为12%;
- 完善、优质并惠及员工家人和子女的综合商业保险以及补充医疗保险计划;
- 补充商业养老年金计划,确保员工安心工作的同时未雨绸缪为员工提供长期完备的保障;
- 高端完善价值千元的员工年度体检计划;
- 全年不低于15天的带薪年休假,全薪病假;
- 美味丰盛的免费午餐及无限量进口零食,星巴克现磨咖啡、各种饮料无限畅饮;
- 弹性工作制,确保员工的工作与生活平衡;
- 年度旅游以及丰富多彩的团队活动和兴趣俱乐部,包括:游泳、足球、羽毛球、自行车、台球、瑜伽等;
- 员工学习发展助学金:公司为英语学习、技术培训、书籍订阅等提供费用报销。
#### 顶尖的技术团队:
- FreeWheel北京研发中心目前设立了包括架构设计、软件开发、质量保证、业务运营和技术支持等方面的专业团队,成员既有来自于谷歌、微软等知名企业并拥有多年工作经验,也有走出校园不久的新生力量,且大部分拥有计算机、软件、电子、数学和信息管理等相关专业的硕士学历,许多是毕业于清华、北大等知名院校的校友。在这里,你有机会与世界一流的跨国技术团队和资深互联网广告业务专家一起工作,参与并见证视频广告领域的快速变革,分享公司高速成长所带来的职业发展机会!
### FreeWheel在Go上的进化
(完整原文:http://www.infoq.com/cn/news/2017/06/freewheel-experience-on-go )
作为美国最大的综合性传媒集团Comcast的子公司,FreeWheel服务的对象大多为欧美地区大型的媒体公司,包括电视媒体和运营商等。这些公司拥有大量的视频资源和广告资源,因此FreeWheel主要为他们提供从广告部署、管理、投放、计费到预测的一系列完整解决方案。
正因为系列流程的复杂和业务场景各不相同,FreeWheel各个产品子系统所使用的编程语言也会根据实际的业务场景有不同选择,其前期主要使用的语言包括Ruby、C++、Erlang等。
Go语言在FreeWheel最早的一个尝试是IVI(Instant Video Ingestion)系统的应用(该项实践在后文进行详解),用Go重写IVI服务以后,在保持同样20毫秒相应时间的前提下,整体性能可以从每天几十万条数据扩展到每天几百万条数据。
从IVI项目中,一个Go Common Library 的共用代码衍生而出 ,FreeWheel中许多基本功能如日志解析等,都会被封装到这个库里供其他团队使用。此外,随着该项目的成功,工程师团队将其中积累的一些较好的经验进行应用和传承,Go语言在FreeWheel的使用范围也逐渐扩展到其他更多的团队。比如由前端UI团队、广告决策和投放团队所开发运维的几大主要系统也得到了Go的很好的支持。
- 广告部署、管理系统的开发和工作流处理:之前的广告部署和管理系统主要是基于Ruby on Rails框架的Web应用程序,开发过程还结合了更前端的JavaScript、CSS等语言。Ruby面向对象、贴近英语的主要特性,以及Rails的速度和灵活性,可以使广告部署和管理系统的开发运维过程更加快捷高效,易于维护,另外欧美地区客户也能更顺畅地在该系统上登录使用,进而管理他们的视频和广告。此后,因为Go语言应用在这种轻量级、高性能服务端的适应性很强,因此该团队就用Go重写了所有的API,包括对API网关,以及网关相应功能(如用户的验证、流量控制等)的实现。
- 广告决策和投放系统:该系统对实施性要求较高,因此基于性能的考虑,FreeWheel用运行时效率更高的C++语言直接编写广告服务器,使其具备支持高并发、低延迟、高吞吐等性能。Go的使用得以广泛延伸后,该系统主干部分还是用C++实现,但为了满足一些客户的新需求,比如在线视频转码服务就是用Go语言写的独立的服务。最近该系统的技术负责团队欲实现的一个新功能也是使用Go来开发,因其在性能和开发效率上的优势,该团队可以很方便的调用Common Library中已有的方法去完成大部分的基础工作。
广告预测系统:该系统与上面所说的广告决策系统关系较紧密,最早实现是一个基于Erlang语言开发的调度系统,经过演变后的最新版本是使用 Go语言进行的编写。演变的原因有三点:第一是性能的考虑,Go提供了较好的库和工具链去帮助工程师团队找到其自身的瓶颈、分析并提高其性能;第二是团队适应性,FreeWheel拥有上百位工程师,分布在全球亚、欧、美洲的一些国家,因此一致的工业化生产方式相比程序的美观优雅,会有更优先级需求,在让所有工程师共享一致的、可控的、容易分享的公共编程框架和规范上,Go语言也更具优势;第三是相比之下Go在部署简易性上的特性。
- Go语言是FreeWheel公司目前主要力推的一个方向,在其看来,面向服务的架构的大环境中,Go非常适合做一些功能相对独立、功能比较明确的微服务的语言。在结合已有的各种编程语言,计算框架(如Hadoop、Java、Ruby、C++)的基础上,FreeWheel把Go语言定位成用来实现轻量级服务或API的缺省编程语言,将之与用来完成更小粒度工作的Python结合在一起,就构成了FreeWheel的整个技术语言栈 。
有疑问加站长微信联系(非本文作者)