个人介绍
我是程序员客栈的jcxu,一名后台系统设计师;
我毕业于西安交通大学,10年以上软件设计和开发经验,8年项目管理及产品研发经验,先后在多个大型软件公司领导或参与工业控制、语音识别、视频分析以及电子白板等软件产品研发;擅长软件需求收集、分析及变更管理;丰富的系统架构设计经验,包括MVC及B/S分层架构技术;擅长后台数据库设计开发以及实时工控软件设计开发,精通MySQL等数据库技术,熟悉web多层开发技术,精通python/javascript/c++/C#等开发语言,熟练掌握Django/Vue等开发框架技术;精通OOD;精通DP等。
工作经历
2023-02-01 -2023-02-08北京得意音通技术有限责任公司软件工程师
该系统通过语音识别技术自动转接电话; 系统主要使用C++开发,涉及到语音AI技术; 本人主要负责设计并开发系统软件,在用户现场安装并调试系统,编写用户手册,负责系统维护。
1995-09-01 -2000-08-01信息产业部第三十九研究所软件工程师
参与开发完成国家载人航天工程微机监控系统软件;设计机柜组装图及系统连线图,制定采购计划,指导完成系统组装;参与系统集成测试,协调各接口单位进行系统测试;参与试验场系统联调,配合其他单位进行接口调试。
教育经历
2000-09-01 - 2003-06-01西安交通大学计算机系统结构硕士
1991-09-01 - 1995-07-01电子科技大学应用数学及计算机应用本科
资质认证
技能
该系统为Honeywell IMC部门研发HC900控制器OPC软件产品,实现与EPKS、 Vista、EBI等产品互联; 1. 该产品主要应用于玻璃冶炼、药品制造等小型工业过程控制领域,提供实时高可靠性工业产品软件; 2. 该系统使用COM/DCOM通过OPC标准协议为HC900控制器向本地或远程的客户端传输实时控制数据; 3. 该系统包括OPC Server, HC900 Controller Driver DLL、OPC Client、OPC Configuration Tool、Log Server、 License Module等组件; 4. 系统主要涉及到DCOM/C++各类技术,系统采用微服务架构设计思想; 本人主要负责产品研发管理、系统架构设计以及软件编程等;具体包括: 1.担任Team Leader,带领项目研发团队完成HC900 OPC产品研发,负责研发团队管理及开发工作; 2. 负责产品研发的管理工作,组织项目团队明确目标、制定并执行计划、带领团队按时保质发布产品; 3. 负责产品研发进度的把控,及时询问开发人员开发过程中遇到的问题,指导或召开技术专题讨论会解决问题,保证软件研发的正常执行;分析软件研发的风险,并进行预案。 4. 管理研发团队,制定研发计划,划分并分配研发任务,指导开发、测试团队日常工作; 5. 组织产品测试,记录测试结果,修正产品缺陷; 6. 负责处理、协调和解决公司跨部门的产品研发协作,负责组织研发团队的日常活动,驱动及时解决项目执行过程中发现的问题; 7. 负责产品研发的对内对外对接工作,确保合作项目、部门间协作的正常运行; 8. 产品研发过程中,确保研发流程遵循公司6 sigma标准要求; 9. 负责产品研发流程的组织管理,负责日常code review,doc review,软件发版等工作的进行,监督保证代码风格和质量,负责技术文档及验收档整理,并将其有组织地归纳到公司知识库; 11. 负责产品的知识产权保护,包括设计方案的专利风险分析与创新设计的专利保护; 12. 负责软件产品的需求梳理,形成需求文档并规范化; 13. 负责根据产品需求,进行系统的整体架构设计和技术评估选型,满足稳定、易扩展、高可靠、高实时性、安全易用等要求; 14. 负责服务端系统技术方案评估、架构设计、业务逻辑抽象等工作; 15. 负责组织设计评审; 16. 负责组织软件产品模块的分析、设计、开发实现和单元测试; 17. 负责技术方案选型,负责决策关键技术,负责编写核心代码和关键功能; 18. 负责项目重点、难点、核心技术问题的攻关,协助开发团队解决项目开发过程中的技术 19. 带领团队攻克例如大数据量、高并发、高可用等带来的各种挑战及技术难关; 20. 指导团队成员解决开发过程中遇到的复杂问题。 项目业绩 领导团队发布HC900 OPC产品; 在该项目中的贡献: 1. 担任Team Leader,执行该项目计划、跟踪与控制,管理研发团队、分配研发任务、指导开发测试团队工作; 2. 与客户沟通项目范围,制作WBS,协调资源,合理分配任务,同项目组成员讨论项目进度,分析并解决问题; 3. 设计系统整体架构,设计Server Frame框架结构可支持不同协议多种控制器,包括modbus等,满足稳定、易扩展、高可靠、高实时性、安全易用等要求; 4. 设计Server Frame主要采用分层思想、 自上到下为接口、 逻辑控制、 协议框架、 协议驱动等;遵循敏捷开发的设计原则(SRP OCP LSP DIP ISP); 5. 组织设计评审; 6. 分解系统功能,定义接口,分配开发任务; 7. 编码实现ServerFrame各层功能,主要采用DCOM/C++;应用DP并遵循OOD; 8. 编码实现OPC1.0/2.0标准协议; 9. 编码实现控制器驱动接口; 10. 提出采用微服务设计并编码实现Log Server以及Driver Server等服务; 11. 提出动态接口配置方案,可在服务运行状态下动态添加并配置协议接口,并保证高可靠性; 12. 编码实现所有接口调用代码级的跟踪、调试、监控信息; 13. 优化系统性能,达到工业实时性要求,自数据采集到用户呈现不超过2秒,并达到同时支持1万控制节点; 14. 实现工业控制软件高可靠性要求,服务运行不宕机,并支持控制器冗余备份; 15. 协调其他研发部门集成License Module实现产品License发布与维护功能; 16. 预估和监控项目风险,主要包括人力资源风险、技术可行性风险等,制定质量控制计划; 17. 根据标准模板要求创建和维护产品构件; 18. 严格遵循公司6 sigma研发标准进行设计与开发,遵循标准化模板生成设计文档; 19. 组建研发团队,包括开发团队和测试团队,协调团队成员开发周期、发布任务、跟踪进展等; 20. 与客户梳理产品需求,确定产品形态,分析问题,确定可行性及技术方案等; 21. 分析并完善产品需求,制作原型,设计并开发系统软件; 22. 领导团队,按计划开发产品和测试,按时保质发布产品; 23. 组织产品测试; 24. 负责系统运营、维护、升级; 25. 同客户建立良好的联系,支持销售人员,分析客户提出的新的需求,制作Proposal,拟定开发方案; 26. 同客户有效沟通项目进度及产品质量; 27. 定期向公司的主管领导汇报项目执行情况,确保项目的正常进行; 28. 负责项目管理,制定项目计划,协调资源开展项目,跟踪项目执行状态,确保项目按计划执行; 在该项目中的收获: 1. 对整个软件产品研发流程有更深刻理解,熟练运用项目管理工具; 2. 熟悉工业控制产品的研发流程及相关技术; 3. 熟悉从市场调研到软件需求的生成过程;精通软件需求收集、分析、变更等; 4. 提升了主导产品技术路线选型、测试和落地的经验; 5. 精通软件MVC的基本架构技术;精通OOD;精通DP;精通C/S软件架构; 6. 精通敏捷开发的设计原则(SRP OCP LSP DIP ISP); 7. 掌握软件分层架构技术; 8. 了解基本的分布式软件架构技术; 9. 了解微服务架构技术; 10. 精通高可靠性和高实时性软件设计技术; 11. 精通DCOM/C++技术; 12. 熟悉svn代码管理工具; 13. 熟悉6 sigma开发流程; 14. 熟悉软件产品交付流程; 15. 熟悉软件研发管理能力,包括制定并跟踪计划、风险预估、人员调配等; 16. 增强了沟通技巧和能力;提升部门组织间任务开发协调能力;增强了各方资源协调能力; 17. 增强了团队领导和组织能力; 18. 熟悉知识产权保护相关知识。
该系统应用RFID技术实现煤矿井下人员定位与跟踪,达到煤矿生产安全防范的功能,保证工人的生命安全。 1. 该系统主要将煤矿内分布的RFID监测数据汇总到数据库,然后实时展现到地图界面上,用户可实时监测煤矿人员位置,并可统计行动轨迹和出入记录等; 2. 系统自上而下可分为客户端、数据服务层、Presentation、DMO、数据库访问层等; 3. 系统横向可分为数据采集服务组件、数据分析组件、数据库访问组件、人员定位服务组件、数据统计组件等; 4. 涉及技术:.NET、C#、MapObject、SQL Server、Design Pattern、UML、RFID、Agile Development、Visio等; 本人主要负责系统架构设计以及软件编程等;具体包括: 1. 负责软件产品的需求定义、市场调研和分析,形成需求文档并规范化; 2. 负责业务需求和系统分析,提出技术研究及可行性报告,推动主要的技术决策,参与重要技术评审; 3. 根据产品需求,进行系统框架和子系统整体的设计,设计高扩展性、高性能、安全、稳定、可靠的技术系统,确保产品架构的合理、稳定、简洁、低耦合; 4. 持续优化系统架构设计,预估问题、发现问题、提出问题解决方案; 5. 负责系统功能分解,软件组件拆分,定义组件交互接口; 6. 负责在模块开发前,能做技术评估和技术路线选择,确认选择的技术路线满足开发需求; 7. 负责在代码设计时,能做清晰的代码分层和模块化设计,尽量做到子系统的解耦; 8. 负责软件架构优化, 定位并解决系统中难以复现的系统级问题; 9. 负责关键技术的架构设计并主持执行研发工作; 10. 负责技术预研和技术难点攻关,保障系统可用性、稳定性和可扩展性; 11. 负责技术团队的开发任务分拆、进度把控、代码review等关键环节; 12. 负责项目核心模块的设计开发工作,包括软件架构设计、核心模块代码开发、源码管控、主要代码走查工作、测试与部署等; 13. 负责设计清晰合理的接口,编码高质量的核心代码,考虑模块设计高聚合、低耦合、可复用性、可维护性、资源限制等,针对不同场景及需求提出具体的设计思路,并文档化相关产出; 项目业绩: 参与研发煤矿井下人员定位与跟踪系统; 在该项目中的贡献: 1. 分析并确定产品需求,编写需求文档和概要设计文档; 2. 设计整个系统框架,包括应用层、业务逻辑层、数据访问层等; 3. 编写系统总体设计文档以及数据流接口文档; 4. 设计系统整体架构、数据库访问、地图、数据接口等,系统总体采用MVC框架,主要遵循敏捷开发的设计原则(SRP OCP LSP DIP ISP); 5. 优化系统架构,提升系统性能和稳定性; 6. 编码业务逻辑层,主要包括数据分析组件、数据库访问组件、人员定位服务组件等; 7. 编码客户端以及地图展现与实时跟踪功能,主要使用MapObject,并发现其实时运行内存泄露问题; 8. 编码数据服务层以及接口,主要使用remoting实现组件接口,并优化其性能; 9. 优化设计,遵循DP原则; 10. 优化系统实时性能,基本达到从采集数据到用户呈现不超过3秒; 11. 进行系统集成测试,编写用户手册等; 在该项目中的收获: 1. 对整个软件产品研发流程有更深刻理解,熟练运用项目管理工具; 2. 熟悉从市场调研到软件需求的生成过程; 3. 提升了主导产品技术路线选型、测试和落地的经验; 4. 精通软件MVC的基本架构技术;精通OOD;精通DP;精通C/S软件架构; 5. 掌握软件分层架构技术,掌握产品级前后端分离的应用软件开发平台架构; 6. 精通敏捷开发的设计原则(SRP OCP LSP DIP ISP); 7. 了解基本的分布式软件架构技术; 8. 精通高可靠性和高实时性软件设计技术; 9. 精通C#语言和.NET平台的主要开发技术;熟悉.Net Core技术; 10. 精通MapObject开发技术;熟悉地图软件开发技术; 11. 对数据库的基本理论和内部实现机制有深刻的理解,能够熟练应用SQLServer,有实际大数据量的数据库设计经验; 12. 增强了独立解决问题的能力,能够独立自驱地开展项目管理工作; 13. 熟悉6 sigma开发流程; 14. 熟悉软件产品交付流程; 15. 熟悉软件研发管理能力,包括制定并跟踪计划、风险预估、人员调配等; 16. 增强了沟通技巧和能力; 17. 熟悉知识产权保护相关知识; 18. 熟悉工业安防产品的研发流程及相关技术。
智能视频分析管理平台是智能视频分析系统的管理和控制中心,通过此平台可以对整个系统进行管理; 1. 系统实时处理采集的视频流并根据配置规则分析产生报警,达到预防危险和及时报警的功能; 2. 系统管理平台基于B/S架构,用户仅需通过浏览器就可以使用此平台; 3. 系统同时提供接口方便其他系统接入并可同原有的安防系统实现联动; 4. 系统自上而下分为应用层、业务逻辑层、数据访问层; 5. 数据访问层又分为数据库访问和实时视频数据采集,数据库使用MySQL; 6. 业务逻辑层可分为视频数据分析以及报警数据应用; 7. 系统采用技术:视频AI、Javascript、PHP、MySQL、Apache、Zend Studio、Navicat、jQuery、C++、Visio等 8. 系统横向包括数据库服务器、采集服务器、分析服务器、监控平台、数据处理服务器等组件; 本人主要负责项目研发管理、系统架构设计以及编码实现等;具体包括: 1. 带领项目研发团队完成智能视频分析系统研发,负责研发团队管理及开发工作; 2. 负责产品研发的管理工作,组织项目团队明确目标、制定并执行计划、带领团队按时保质发布产品; 3. 负责产品研发进度的把控,及时询问开发人员开发过程中遇到的问题,指导或召开技术专题讨论会解决问题,保证软件研发的正常执行;分析软件研发的风险,并进行预案; 4. 负责软件产品的需求定义、市场调研和分析,形成需求文档并规范化; 5. 负责根据产品需求,进行系统的整体架构设计和技术评估选型,满足稳定、易扩展、高可用、安全易用等要求;负责组织设计评审; 6. 负责技术评估和技术路线选择; 7. 负责组织软件产品模块的分析、设计、开发实现和单元测试; 8. 负责技术方案选型,负责决策关键技术,负责编写核心代码和关键功能; 项目业绩: 领导团队发布智能视频分析管理系统; 在该项目中的贡献: 1. 担任项目研发经理,领导团队,负责该产品的研发;按时保质发布产品; 2. 进行产品市场调研,与客户梳理产品需求,确定产品形态,分析问题,确定可行性及技术方案等; 3. 分析并确定产品需求,编写需求文档和概要设计文档; 4. 分析技术可行性,确定技术路线,确定系统实现方案; 5. 设计整个系统框架,包括应用层、业务逻辑层、数据访问层等; 6. 编写系统总体设计文档以及数据流接口文档; 7. 分解系统功能,定义接口,分配开发任务; 8. 设计后台数据库,包括概念、逻辑、物理设计以及schema; 9. 设计MySQL引擎、主从分离、分库分表、数据一致性、事务与锁以及索引等; 10. 对数据库进行查询优化,平衡设计引擎、事务、锁以及索引以保证整个系统最优性能 11. 编码数据库表关系、外键约束等; 12. 编码实现系统框架,主要使用WAMP集成环境研发; 13. 编码实现监控平台,主要使用JavaScripth和jQuery实现web UI; 14. 编码实现数据服务,主要使用C++实现与视频分析服务的接口,读取报警数据; 15. 编码实现数据库服务,主要使用PHP实现MySQL报警数据的业务逻辑层; 16. 组织产品测试; 17. 定期向公司的主管领导汇报项目执行情况,确保项目的正常进行; 18. 负责项目管理,制定项目计划,协调资源开展项目,跟踪项目执行状态,确保项目按计划执行; 19. 预估和监控项目风险,主要包括人力资源风险、技术可行性风险等; 20. 管理研发团队,协调团队成员开发周期、分配任务、跟踪进展等;领导团队成员,按计划开发产品和完成测试; 在该项目中的收获: 1. 对整个软件产品研发流程有更深刻理解,熟练运用项目管理工具; 2. 提升软件研发管理能力,包括制定并跟踪计划、风险预估、人员调配等; 3. 增强了沟通技巧和能力; 4. 增强了团队领导和组织能力; 5. 熟悉安防产品以及互联网平台软件的研发流程及相关技术; 6. 熟悉从市场调研到软件需求的生成过程; 7. 提升了主导产品技术路线选型、测试和落地的经验; 8. 掌握互联网软件的基本B/S架构技术; 9. 掌握软件分层架构技术,掌握产品级前后端分离的应用软件开发平台架构; 10. 掌握Apache+Mysql+PHP技术栈; 11. 掌握Javascrip/jQuery技术; 12. 对数据库的基本理论和内部实现机制有更深刻的理解,能够更熟练应用MySQL,具有了实际大数据量的数据库设计经验; 13. 理解了CSS布局规范等常规知识; 14. 熟练掌握了JavaScript,并对ECMAScript规范有较好理解; 15. 增强了独立解决问题的能力,能够独立自驱地开展项目管理工作。