个人介绍
1、统招全日制本科计算机专业,8年开发经验,具备独立沟通需求,设计,架构,开发,运维能力
2、全栈开发,在公司使用spring boot、mysql、redis、mongo、elasticsearch、rabbitmq、nacos、nginx、Jenkins、docker、k8s等技术,搭建了一整套系统框架,有服务注册发现、RPC、网关、统一认证中心、mysql性能监控、使用Jenkins和k8s实现系统的持续交付与自动化集成
3、对数据结构和算法感兴趣,了解常见排序、链表、二叉树和动态规划相关的问题,力扣刷题代码库:https://gitee.com/huanongying1201/leetcode
4、java基础扎实,对源代码有一定的研究,比如HashMap、spring的aop、重构了开源项目xxl-job增加对定时任务开始结束时间的支持
5、熟悉mysql,了解索引优化及原理,了解锁和事务,博客园发表过对应的文章:https://www.cnblogs.com/huanongying/p/7021555.html
6、有基于K8S相关开发或容器编排经验,搭建过完整的微服务体系,也踩过不少雷
工作经历
2020-08-10 -至今浙江慧派教育科技有限公司技术经理
1.负责实验室考试系统的架构设计,核心开发和运维,系统包括智能抽签分配学生座位,考务分配考试批次、场地、考点,监考和巡考老师在线实时监控学生考试全过程,批阅老师在线匿名批阅,学生成绩统计分析 2.使用spring boot、mysql、redis、mongo、elasticsearch、rabbitmq、nacos、nginx、Jenkins、docker、k8s等技术,搭建微服务,有服务注册发现、RPC、网关、统一认证中心、mysql性能监控、使用Jenkins和k8s实现系统的持续交付与自动化集成 3.成功和即构、海康等视频服务商完成对接,实现了学生考试的实时监控,考试录像回放
2017-11-28 -2020-08-10杭州施强教育科技有限公司项目经理
1.负责乐课网产品的用户管理模块的数据建模、技术设计、核心功能的开发,任务的分配和进度的控制 2.用户模块历史较悠久,有很多被事务环绕的方法中有发送消息队列的情况,在并发量较大的情况,事务的回滚可能引起数据的一致性问题,最开始一直是由dba配合做数据补偿。后来我运用spring aop、TransactionSynchronizationAdapter,Threadlocal,Callable缓存异步消息发送等技巧,开发了一个公共组件,无业务侵入的情况下解决了所有与之相关的问题 3.用户基本信息模块查询方式复杂响应慢,我引入了elastic search,显著提高了查询效率,并支持快速拼音模糊搜索功能 4.邀请码模块能够创建大量的学校角色,业务分支判断多代码结构混乱,我将这块业务的业务流程进行拆分梳理,最终用策略模式重构,方便了后续的二次开发 5.开发和Excel导入模块数据校验的公共组件,只需在实体类的字段上添加注解,就能完成丰富多样的校验功能 6.在公司做过mysql事务相关的技术分享,并受到同事的好评
2017-11-28 -2020-08-10杭州施强教育科技有限公司项目经理
1.乐课网激励体系的核心开发,该系统主要包含学生完成学习任务时的激励、老师完成教学任务的激励,激励积分pk游戏,学期获得红花兑换礼物,小组团队红花玩转动物园游戏,活动抽奖等功能 2.学生排行榜功能排名的维度较多,比如积分、红花、成就等,涉及同比和环比,数据量巨大,一开始月榜和周榜直接在全量数据中过滤排序,查询速度缓慢,后来将这两个排行榜单独创建汇总表,只保留相应时间段的数据,清除过期数据,显著提高了查询性能 3.解决了缓存雪崩的问题,用户基本信息用redis的hash结构缓存,hashkey过期,所有的用户缓存同时过期,数据库面临巨大压力,我重构用户缓存的逻辑,key改用string类型,缓存过期时间以每个用户为维度,避免了同时过期的问题,同时缓存过期时数据库的查询改为同步加锁形式,降低数据库的流量
教育经历
2009-09-01 - 2013-07-01武汉纺织大学计算机科学与技术本科
湖北黄冈人,2009年-2013年就读于武汉纺织大学,学的计算机科学与技术专业