教育经历
-
加拿大多伦多大学 - 计算机专业(本科)2007-2011
工作经历
-
国内某上市软件公司 - 前端工程师 2017.09 -
只写不用保密的东西。
- 拖拽式网页编辑器。一人三星期,完整的拖拽网页编辑器,让不会做前端的后端工程师也能做前端。有导出,保存,等功能。第三方可拓展,以加入更多元素。 (React, redux, immutablejs)- 视频平台。以开源软件LaravelTube为基础,增加管理员等功能,界面完全根据处女座设计师的要求重构。 (PHP, Laravel, Vuejs) -
Weebly Inc. - 全栈工程师 2015.08 - 2017.08
公司产品是 帮用户快速建立网站的 网站编辑器 网络服务。没有编程经验的人也可以轻松建立自己的网站/博客/网店。- 设计开发下一代的内容管理系统(Content Management System) [PHP, laravel, postgres, Memcached, vuejs]- 现有的产品已经开发10年,部分技术过于老旧,很多数据结构设计也受限于当年的技术而拖累了性能。所以结合旧系统的经验,用新的技术开发了一个新的微服务(micro service)来替代原有的陈旧的网页编辑系统。- 负责后台总体的设计和研发(软件架构,数据库设计,编辑器的RESTful API系统,网站发布系统,和已上线网站的供应系统)- 负责"撤销和重做"(undo/redo)系统的设计和多种原型方案的验证。- 开发和维护 网站发布系统 和 已上线的网站供应系统。[PHP, rabbitmq, MySQL, Solr]- 大约4000万用户,供应数亿个上线了的网站的网络服务系统。十分注重性能。- 参与研发 第三方APP系统,让用户可以使用第三方开发者开发的网站插件和功能。[PHP, rabbitmq, JS (backbone+marionette) ]- 也完成了和shippo服务的整合,网店店主可以轻松给订单下快递。- 开发和维护公司的云服务。与公司和作的FTP供应商可以使用我们的系统帮它们的用户作网站。[PHP, rabbitmq, JS (backbone+marionette) ]- 开发和维护 FTP供应商的用户管理界面,以及对应的后台,以及开放的RESTful API服务。- 开发和维护 发送到FTP上的网站供应系统 (类似caching系统,尽可能的从FTP服务器上给终端用户供应网站和内容)- 开发批量商品展示插件 [PHP, Solr, JS]- 让用户可以快速设定出它们想要展示的那些商品,用最简单的方式制造出最好的展示效果。- 自动维护商品列表,自动排除网站发布后 被删除或卖完了的商品。 -
Loqate Inc. - 软件工程师 2011.09 - 2015.08基本就是从多个地址数据供应商那儿收集最新的世界各地的地址数据,清理和整理后转化为自己的格式,并用自己研发的搜索和验证系统来提供服务。服务用与IBM,Oracle等公司的企业级软件中,也提供自己的网络服务。- 设计和开发了反向地理编码(reverse geocoding)系统。[C++, Python]- 用Python来快速开发原型,证明算法和数据结构可行性,然后用C++完成。- 设计和开发了 PowerSearch功能 [C++]- 选定国家,单搜索栏,短查询(query)即可开始搜索和联想(autocomplete)- 数据整理,索引(index)设计,和总体功能的实现和性能优化。- 开发了 高性能地址验证系统 [C++]- 很多企业的地址数据已经很干净,所以写了个更快捷的地址验证方法,干净数据的验证速度提升一倍以上。- 开发和维护对外开放的RESTful API和SOAP API [PHP, MySQL, Python]- 开发和维护对外开放的 批量数据处理 网络服务 [PHP, MySQL, Python, jQuery]- 用户可以使用界面上传它们的地址数据文件,我们的服务器自动处理完成后,统计并让用户下载清理好的数据文件。- 开发供用户使用的Java webservice wrapper [Java]- 购买软件和数据的企业用户可以用这个搭建它们自己的RESTful API服务。- Oracle官网用户注册界面上的地址和职业的 搜索/自动完成 功能 [Java, jQuery]
个人项目
-
办公室地图
室内地图,即时显示办公室内每个位置上的信息。帮助大家查找同事座位位置,或者会议室的位置。同时适合电脑和手机上的显示和操作。即时显示会议室的使用状况,可以迅速寻找和预定空闲的会议室。显示同事的状态,(休假,在家工作,某个会议室开会中)。PHP+laravel后端,连接了谷歌日历服务和一些内部员工信息API。React+Redux前端,用SVG来解决地图的显示和用户交互操作(interaction)。(准备尝试canvas,触摸界面上canvas可能更容易scale) -
赛车比赛视频的“同步”数据显示
根据赛车比赛结果表单上的单圈信息,处理并生成同步于比赛视频的字幕文件。 -
智能家居系统
遥控电源:raspberry pi + relay接入口:苹果homekit(用homebridge),亚马逊echo(用habridge)。遥控电源:raspberry pi + relay + 自己写的网络服务来处理逻辑视频监控:raspberry pi + OpenCV -
Weebly内部的商品搜索系统
利用数据分析组的实时数据导出系统收集各个网店的产品数据。建立和设定elasticsearch来搜索产品数据。建立一个简易的后端来使用elasticsearch搜索,实现翻页,筛选,根据销售数据等参数排序等功能。修改了weebly网站上的商品展示功能来显示搜索结果。 -
蛋饼团
www.theomelet.com (不知还在不在了)上学时一些同学和已毕业的学长一起做的一个网络视频startup。负责制作它们的网站,并且修改整合一个基于phpwind的社交网络系统。
其他
- 喜欢尝试新的有挑战的东西。
- 技术上比较偏重后端。但熟悉ES6,flux,和新一代的前端框架之后,发现前端也很有意思了。