整个职业生涯都致力于互联网行业,从事多年 Web 开发工作,深刻理解 HTTP 及 TCP 协议基础,熟练使用 PHP、Go、Python,熟悉后端性能相关优化手段如缓存、队列、负载均衡、高并发请求模型、MySQL调优、ES的使用等,同时熟悉前端生态如 jQuery、React、TypeScript、Vue以及相关UI框架 Element-UI、Material-UI等;
有四年担任管理者的经验,善于合作,能准确把握项目的开发计划,更能理解公司的核心需求;
熟悉服务部署,能独立完成项目及整个服务架构的搭建,为公司设计过完整的负载均衡架构、分布式服务及代码部署流程,能应对中小型网站的架构设计和性能的优化扩充;
熟练使用 Linux 和 Mac 系统,熟悉 Shell 脚本编写,熟练使用 Google/ChatGPT/Poe 并长期维护个人服务器; 擅长将重复工作自动化,通过神奇的脚本语言提升工作效率。
自助打印项目
担任后端主要程序员,负责公司打印 APP 后端服务、后台数据管理、绩效结算系统等业务的开发和维护。
公司核心业务为向用户提供自助打印服务,在各大商超、大型物业小区等客流密集区域投放自助打印设备,用户通过微信小程序或公司打印 APP 上传需要打印的文件获得打印服务。
主要工作
参与微信小程序和打印APP的后端综合服务接口,包括下单,文件上传与转码,单设备多打印机的减纸逻辑,纸张预警功能,微信消息的推送服务以及运维人员的通知服务等整个业务系统的开发与维护。公司用户数快接近千万,有一定的性能瓶颈,其中用到的主要缓解性能的服务有MySQL集群、后端均衡服务器、Redis 缓存和队列服务。
负责打印券制作的自动化。公司定期和不定期为用户提供优惠打印服务,通过发放打印券提升用户黏度。起初是由客服人员通过后台制券系统制定活动所用到的打印券,通过原 PHP 服务系统上传券的图像模板生成打印券,然后等待制作完成后下载这些券的压缩包,最后解压并按照运营人员的数量分配列表打包,再分别分发给运营人员。整个流程非常耗时也非常复杂,我重写了这一流程,客服人员仅需配置好活动信息和运营人员的数量分配,整个制券作业将一步完成,为了提升打包的效率,压缩部分代码使用 Go 语言实现,并且为每个运营人员的压缩包设置了各自的密码,客服人员仅需把所有包发到群里,每个运营人员就可自助认领。
主导开发了点位开发人员的绩效结算系统。公司为了扩大市场份额,需不断地去寻找优良的点位铺设新的打印设备,因此有大量的点位开发人员加入公司。起初,他们每月的绩效都由财务人员人工核算,大概需要一个星期才能算明白,涉及到复杂的结算规则,如到期用户数是否达标,所属月份与发放月份的不同等等几十项规则,这就需要一套IT系统来做这件事。我负责开发了这套系统,按照业务规则解决了所有核算逻辑,通过后台计划任务跑点位数据以及实时用户数核算,并且增加人工干预绩效功能,实现了月绩效,季度绩效,补发等逻辑的全部核算,并提供财务打印,数据导出等功能。
负责后台数据管理系统的开发和维护,对打印设备的管理,信息维护以及多打印机纸张扣减逻辑代码做了重构。对设备运营,打印耗材,设备用户数相关的统计功能进行开发与维护。期间也重构了一些基础服务,如: 日志系统,采用了中间件架构规范了日志记录; 数据脱敏服务,对业务层的敏感数据进行统一加密,维护数据的安全与合规性; 引导和帮助所有开发人员迁移到 Ubuntu系统并分享各种 Linux 脚本的使用以提升开发效率 (公司对于代码的保护非常严格,所有开发人员只能通过远程连接到虚拟机进行开发,虚拟机使用 Windows,而且延迟很高,效率极低)。
在公司规模越来越庞大的同时,我提出了 PHP 项目架构的改造。我认为在此业务及用户规模下,部分基础业务应当采用强类型语言开发,但高层认为技术部大都是 PHP 开发人员,担心语言的转型存在工期风险而搁置。随着原系统的混乱架构屡屡拖累项目进度并且错漏频出,公司开始重新考虑架构的改造,于是由我主导这部分工作。在不更换语言的前提下,我采用 Java 式的强制面向对象开发模式,但并不会一步到位,而是先从数据部分入手,将 MVC 中的 M 逐步 Java 化,静态化,将基础数据归为 Bean 层,通信数据归为 DTO 层以及对枚举数据统一管理,所有数据有类可查,有对象可依,并且 IDE 可提示。为了减轻开发人员编写大量基础代码,我又编写了自动生成基础代码的脚本,只需在代码旁附上简单注释则可生成相应代码。第二步是对逻辑层采用面向对象式开发,引入接口 Interface,多态以及依赖注入等开发模式,将基础功能如机箱设备与打印设备抽象到服务层,并围绕设备与打印机扩展子服务,如设备故障管理,耗材管理等,逐步使公司初创时留下的繁杂历史问题得到舒展。
主要工作 参与微信小程序和打印APP的后端综合服务接口,包括下单,文件上传与转码,单设备多打印机的减纸逻辑,纸张预警功能,微信消息的推送服务以及运维人员的通知服务等整个业务系统的开发与维护。公司用户数快接近千万,有一定的性能瓶颈,其中用到的主要缓解性能的服务有MySQL集群、
主要工作 开发公司海外房产业务的 CRM 项目,为置业顾问提供一套完善的客户关系管理系统。项目后端使用 ThinkPHP 框架,Element UI 作为前端框架开发了美观高效的后台管理系统,设计了整个系统的权限管理、顾问跟进管理、电话回访录音文件管理、统计图表等主要功能。该