个人介绍
熟练掌握Java和C++语言,并拥有一定的测试驱动开发经验。
主要技术Java栈包括springBoot,springMVC,Mybatis。有一定Redis和RocketMQ的使用经验。
熟悉Unix/Linux系统和Shell脚本的使用,并有基于Shell脚本的多进程脚本的开发和调试经验。
熟悉基于GIT Flow的持续集成/发布流程,能根据系统实际情况选择合适的CD/CI策略,并引导团队按制定进行开发。
熟悉Oracle数据库系统和PL/SQL语言,有一定的存储过程编写能力。
有一定在敏捷团队中进行开发的经验,了解其开发过程和注意点。
诚实,乐于学习,吃苦耐劳,有良好的团队精神,知识面广。
工作经历
2016-09-10 -至今平安银行后端研发工程师
负责平安信用卡申请、积分平台和行员APP系统的开发和维护工作 期间完成了平安银行积分系统规则引擎分布式环境改造项目、积分系统双活/灰度环境搭建、退货关联交易功能改造、网申系统降级通路开发等项目的开发工作
教育经历
2009-09-01 - 2012-03-31东华大学计算机系统结构硕士
2005-09-01 - 2009-06-30东华大学计算机科学与技术本科
技能
项目描述: 为了提升积分系统的可用性,并且便于系统不停机发布,我们按照架构组的要求对积分系统记性了双活/灰度环境的搭建工作。 补充当前积分系统的系统监控数据供运维参考 主要职责和贡献: 1.评估现有系统涉及的双活/灰度系统的中间件 2.搭建积分系统的监控平台,补充必要的监控告警信息 3.对中间件的版本进行升级,并评估其影响。包括消息队列组件的拆分,配置nginx路由标签等。 4.为了检查升级过程中jar包冲突的问题,我们自研了一个扫描jar包的插件,目前已经在部门内进行了推广 5.对升级后的系统进行线上测试
项目描述: 信用卡积分系统是一个根据用户的信用卡交易信息,该系统主要使用Oracle存储过程来实现业务逻辑,根据一定的规则来判断是否要向用户发送/退回不同类型的积分。由于手工书写的规则存在遗漏,因此存在大批用户(约占退货交易的20%)有退货交易而无法进行退分,造成银行资损的情况发生。 本项目的目的有两个,一是解决退货交易无法正常退分的问题,二是通过本次改造不同类型的积分统一到一套业务逻辑中,以便于管理。 主要职责和成果: 1.项目分三个阶段进行。前两个阶段围绕发分场景最多的万里通积分场景进行。其第一阶段仍旧使用存储过程实现,仅调整业务逻辑,退分数据不在根据业务手工书写的规则进行计算。而是根据主机交易数据中提供的交易流水号信息,建立正向交易和负向交易之间的关联。并根据退货交易的金额比例来产生具体的退分金额数字。由此能每天为银行挽回了6~7万人民币的资损。 2.第二阶段是将退货交易的业务逻辑从存储过程迁移到java平台,并将这部分功能与已经迁移到java的主发分流程引擎上对接。由此实现退货关联交易的功能的分布式部署。将原先用时45分钟的退货交易批量时间压缩到20分钟以内。 3.第三阶段是将java开发的退货交易功能推广到其他涉及到退分场景中去(如程金币,小鹏汽车等不同类型的积分),实现退货交易逻辑的统一。
项目描述: 积分平台主要用于计算银行信用卡的各种积分,在接手这个项目的时候,积分系统仍旧使用Oracle存储过程进行批量处理,系统的缺乏横向扩展能力,并且应对批量中断的能力也很差。 该项目是为了拓展积分系统现有的发分规则功能。整理经过多年积累积存下来的大量复杂而冗余的规则。简化业务进行规则配置所需要的消耗的经历和时间,以便于系统在分布式环境中进行部署。 主要职责和成果: 1.使用spring-boot框架重写了现有的规则发分引擎,通过引入groovy脚本对现有的规则引擎的功能进行改造,将原本分散在oracle存储过程中的规则计算逻辑整合到groovy脚本中。 2.在计算的过程中引入了分层标签的概念。简化了规则功能的总数,新规则引擎功能上线后,将原有的400多条压缩到150多条,大大简化了配置流程。 3.使用自研的规则引擎对系统内的一部分其他逻辑(如积分限额,发分类型的计算)进行了改造,节省了接近30%的开发工作量。 4.引入携程的Apollo框架作为配置中心,统一了分布在各个服务器中零散的配置文件,解决分布式配置的问题。 5.引入saturn框架解决了积分系统定时跑批任务的调度,并开发了一套适用于本系统的批量任务跑批框架,解决交易数据并发执行的问题 6.引入RocketMQ消息队列应对积分计算过程中产生的触达、消息推送等需求,并在“笔笔抽”实时功能发分相应项目得到了应用。 7.对部分交易数据(如授权交易,资产等级信息等),使用redis进行缓存以提高吞吐效率