技能描述
- Java语言基础扎实,熟悉JVM、多线程、集合,熟悉常用的设计模式。
- 熟悉Java Web开发,熟悉Spring、Spring Boot、Spring Cloud微服务框架。
- 熟悉JPA、MyBatis、MyBatis-Plus等技术框架。
- 熟悉Mysql、Postgresql、Redis、RabbitMQ、Kafka等中间件。
- 具有信创改造经验,熟悉国产操作系统银河麒麟、国产数据库华为高斯、人大金仓等。
- 熟悉Kubernetes、Docker容器平台,能够在容器平台上搭建构建部署CICD自动化流程。
- 熟练使用IDEA、Maven、Git等研发工具。
- 熟悉云原生微服务架构。
- 具有良好的编码习惯,追求代码整洁,使用设计模式优化代码,避免冗余和无效编程,实现扩展性良好的编码。
- 排查问题能力强,能够快速地定位问题,可以通过源码排查问题和提出解决方案。
- 具有带小团队经验,能够独立完成需求拆解、软件设计、工作排期等任务。
项目经验
精准扩面系统: 后端技术负责人2024-05 - 2024-10
项目简介:社保精准扩面项目是人社厅为了动员群众参保,拓宽参保率。通过下发任务给基层工作人员去鼓励群众参保,统计各地市指标等信息。本人作为后端负责人角色参与此项目迭代,主要工作为需求分析、系统设计、程序编码。
技术栈:SpringBoot、Spring Data JPA、华为高斯(Postgresql)、Redis。
挑战与解决方案:
- 内存优化:针对创建计划时需处理千万级人员记录的挑战,采用了分片读取策略,有效降低了内存占用。通过分批次读取和处理数据,避免了常规全量查询带来的内存瓶颈问题。
- 异步任务:为应对大数据量下处理操作导致的长时间耗时问题,引入了异步初始化方案。在创建计划时,系统仅生成一个未初始化的计划记录,使用异步后台任务进行初始化。
- 分布式锁和定时任务:为确保参保信息的更新,设计了夜间定时任务,对所有人员的参保信息进行轮询更新。同时,为防止多副本环境下的并发冲突,利用Redis分布式锁机制,确保同一时间仅有一个副本执行刷新操作。
- 单点登录对接:成功对接了广东省人社厅的CAS单点登录功能,简化了用户认证流程,提升了系统安全性与用户体验。
- 性能优化:针对大数据量查询场景,进行了深入的性能排查,通过优化查询功能逻辑和建立适当的索引,提升系统响应速度,确保系统的性能和稳定。
项目成果: 精准扩面系统从2024年7月上线以来,已下发900万待扩面人员数据,处理任务数达2000万以上,基层工作人员宣传后参保率约为30%以上。精准扩面系统在提升参保动员效率、优化系统性能和用户体验方面取得了显著成果,为国家社保建设做出了重要贡献。
研发管理平台: 后端开发工程师2021.10 - 2024.03
项目简介:研发管理平台是一个Saas化,提供软件研发全周期辅助的一个系统,包括 CICD 功能,服务器资源、中间件资源等研发资源管理功能,项目版本管理等功能。该系统在多个厅局推广并使用中,为多个项目开发迭代辅助,大幅节约项目人力成本。
技术栈:SpringBoot、Mysql、Redis、Sharding-jdbc、RabbitMQ
- 多租户实现与数据隔离: 系统实现了多租户功能,并通过数据库维度实现了数据的隔离。利用ShardingSphere框架,实现了数据库的分库分表,确保了数据的安全性与独立性。
- 内存优化与问题修复: 针对内存溢出问题,使用visualvm工具定位并分析内存占用情况,优化了大文件传输时的内存占用,确保系统在高负载下的稳定运行。
- 设计模式应用: 采用设计模式中的策略模式,针对不同复杂业务流程进行处理,有效避免了代码分支复杂的问题,并实现了流程间的解耦。不同流程之间互不影响,提升了代码的可维护性。针对可能出现的重复代码问题,通过提取抽象公共方法,构建了公共业务层,进一步优化了代码结构。
- SPI思想与可拓展性: 引入SPI(Service Provider Interface)思想,提升了代码的可拓展性。对于需要特殊处理的业务操作,预留了拓展点,通过增加指定注解的类,在处理过程中自动调用,实现了可插拔式的拓展功能,增强了系统的灵活性。
- 严格分层架构与方法复用: 通过严格的分层架构,将复杂操作封装为易用的基础方法,业务操作统一调用下层方法,实现了方法的复用,降低了上层调用的复杂度,提升了代码的维护性。例如,针对部署操作,封装为部署原子操作(保存配置、执行部署、保存记录),简化了业务逻辑的实现。
- 泛型与构造器模式的优化: 应用泛型和构造器模式,优化了多类型对象的创建。通过使用泛型构造类型安全的多类型子类对象,并利用构造器模式提供灵活的创建方法,避免了原实现中混乱和耦合严重的问题,提升了代码的可读性与可维护性。
- 框架功能与技巧的充分利用: 在迭代过程中,充分利用现有框架功能和一些小技巧,不断重构、优化已有代码。例如,使用JPA自带的审计功能实现对审计信息的处理,利用回调统一实现保存编辑记录的自动保存,合理利用枚举类对业务进行分类,并约束后续拓展实现,防止出错,确保了系统的稳定性和可拓展性。
项目成果: 研发管理平台作为Saas化平台,已收到4个厅局订单并进行私有化部署,订单金额达到500万以上。该项目不仅显著提升了公司营收,更助力厅局实现数字化转型,大幅提高建设效率。
科技项目管理系统: 后端开发工程师2020.11 - 2021.05
项目简介: 科技项目管理系统旨在为各高校、实验室及企业提供一个便捷的项目申报平台,并实现项目数据的汇总与省级药监局的统一审批与统计分析。该系统有效简化了项目申报流程,提高了审批效率,并为决策层提供了数据支持。
技术栈: SpringBoot、MyBatis-Plus、Flowable、Drools
- 流程引擎集成:针对项目审批流程的复杂性,成功引入Flowable流程引擎,实现了审批流程的动态配置与管理。这一举措不仅提升了开发效率,还确保了系统在需求变化时能够快速响应,灵活调整。
- 规则引擎应用:为应对高校、实验室及企业项目申报评分规则的动态变化,采用Drools规则引擎进行评分规则的配置与计算。通过规则引擎,系统能够根据每年下发的文件自动调整评分逻辑,确保评分的准确性与一致性。
工作经历
数字广东公司: 后端开发工程师2021.07 - 2024.11
- 项目开发与维护: 主导并参与多个项目的后端开发工作,包括需求分析、系统设计、编码实现及代码审查。通过高效的开发流程,确保项目按时交付,并持续进行缺陷修复与性能优化。
- 需求管理与任务排期:负责将复杂需求拆解为可执行的任务,制定详细的工作计划与排期。通过合理的时间管理与资源分配,确保团队成员能够高效协作,按时完成开发任务。
- 沟通与协调:积极协调项目内开发人员与产品经理、需求分析师之间的沟通工作。
工作成果: 在任职期间,成功交付多个高质量项目,显著提升了公司产品的市场竞争力。通过高效的团队协作与技术优化,确保项目按时上线,并获得客户的高度评价。
数字广东公司: 后端开发实习生2020.07 - 2021.6
- 项目开发与维护: 积极参与项目的后端开发工作,包括编码实现、代码审查及缺陷修复。通过实际项目经验,熟练掌握了后端开发流程与技术栈,提升了代码质量与系统稳定性。
- 技术学习与成长: 在实习期间,积极参与公司内部的技术培训与分享会,学习并掌握了多种后端开发技术与工具。通过实际项目实践,不断提升自身技术能力与解决问题的能力。
工作成果: 在实习期间,参与多个项目的开发与维护工作,积累了宝贵的项目经验。
教育经历
广东工业大学 本科 全日制2017.09 - 2021.06
自动化(计算机相关) 排名前20%
相关课程:程序设计 | 计算机网络与通信 | 概率论 | 安卓编程 | 计算方法 | 现场总线控制技术 | Matlab编程及应用
证书/荣誉
- 软考-软件设计师证书
- 英语(CET-4)
- 发明专利《一种查询语言的性能分析方法、装置、设备、介质及产品》
- 广东工业大学第八届《挑战杯》科技作品竞赛一等奖
- 论文《预规划的实时步态控制算法》发表于期刊《自动化与信息工程》
自我评价
- 本人有三年的正式员工后端开发工作经验。此外还有一年实习经验,总共有四年的后端从业经验。
- 热爱研发工作,热爱探索新技术,往技术方向深耕。
- 编码习惯良好,及时利用设计模式去优化代码,秉承代码整洁之道,避免冗余和无效编程,实现逻辑清晰,拓展性高的编码。
- 工作技能丰富,快速准确理解需求,拆分工作任务,根据需求完成合理的数据库设计,复杂需求的时序图交互等。
- 工作能力强,能够快速地定位问题,提出实用和标准的解决方案。能阅读英文文档,能从源码中寻找实现原理和问题解决方案。
- 责任心强,能够承担工作压力,执行任务并按时交付。
- 大学期间位于卓越工程师班,学习成绩和绩点优秀。大学期间参加过工作室参与《挑战杯》竞赛,动手能力强。