基本信息

姓名姚应龙(可以叫我小姚姚工

性别&年龄/1993(身份证1991与实际有出入)

工龄Java开发,正式工作4年半,大学期间公司实习近一年(中移在线一年,冰鉴三年半仍在职)


技术栈

具有扎实的Java基础,研究过MapAQS线程池ConditionBlockingQueueLock等源码,熟练掌握反射、泛型、注解等基础开发技术

深入理解JVMJMM垃圾收集机制GC算法原理类加载机制锁机制等底层原理,熟悉JVM常用参数、JVM参数调优、GC参数、JVM故障分析、JVisualVM、Arthas、以及jmapjstack等JDK提供的工具命令,有一定的JVM线上调优经验

深入理解MySQL底层数据结构与算法、索引原理、索引使用以及索引优化、事务隔离级别与锁机制、MVCC机制,对MySQL的集群架构和高可用方案有一定的了解,如读写分离、集群扩容、半同步复制机制,了解ShardingSphere底层原理

深入理解Spring设计原理以及底层架构,研究过IoC容器的启动过程、Bean加载过程,AOP切面解析与代理创建、事务调用、事件监听等核心源码,循环依赖Bean加载原理

深入理解SpringBoot设计原理以及底层架构,研究过SpringBoot JAR包启动、自动装配、启动过程、资源加载等源码

深入理解Redis线程模型,熟练掌握Redis核心数据结构及使用场景、集群架构、性能优化,熟悉多级缓存架构、过期策略,熟悉各种缓存高并发使用场景,如缓存失效、缓存穿透、缓存雪崩、热KEY重建优化、链接池预热、缓存与数据库双写不一致。

熟悉常见消息中间件KafkaRabbitMQRocketMQ使用,深入研究过RocketMQ消息存储、生产者、消费者、事务消息、延迟消息、死信队列等源码,掌握各种消息通信场景疑难问题解决方案,如消息丢失、重复消费、消息顺序性、大规模消息积压问题

深入理解BIONIOAIO等IO通信模型,深入研究过Netty底层基于NIO多路复用封装源码,熟悉Netty线程模型、直接内存、零拷贝机制、ByteBuf扩容机制,对Netty高并发新能架构设计有一定的理解

深入理解Mybatis设计原理以及底层架构,研究过Mybatis配置文件解析、SQL执行、缓存机制以及如何集成到Spring等源码

深入理解Nacos设计原理以及底层架构,研究过Nacos服务注册中心AP模式和CP模式、配置中心、集群成员信息同步等源码

深入理解Zookeeper设计原理以及底层架构,研究过Zookeeper集群Leader选举、ZAB原子广播协议、事件监听机制源码

深入理解Dubbo设计原理以及底层架构,研究过Dubbo服务导入、导出、SPI机制、服务调用、与Spring集成等源码

深入理解Seata设计原理以及底层架构,研究过Seata AT模式分布式事务、与Spring事务集成等源码

深入理解Sentinel设计原理以及底层架构,研究过Sentinel限流熔断降级、规则发布、配置持久化等源码

深入理解Tomcat设计原理以及底层整体架构,研究过Tomcat启动、请求处理、响应处理等源码

深入理解Maven生命周期,熟练掌握Maven的使用、常用插件、个性化打包、依赖冲突解决、聚合与继承等

熟悉ElasticSearch架构原理、文档写入原理、检索原理、DSL高级查询、分值计算原理、聚合搜索等

熟悉基础的数据结构与算法,熟悉基本的排序算法及原理,熟悉和常见查找算法原理

熟悉JMeterLoadRunner等压测工具,熟悉XML,在实际的项目中使用过自定义XSD,来完成特定功能

熟悉IT 和UT测试及Mockito测试框架,有写测试用例的习惯,熟练HTML、JSP、JQuery、JavaScript、CSS等前端技术

熟悉Python能够独立完成简单爬虫以及一些常用的工具,毕业设计《舆情分析》使用Python做的爬虫爬取网易新闻,熟悉py4j框架

熟悉MongoDB、HDFS、Livy、Spark

熟悉JIRA的使用,熟悉SonarQube,为公司搭建SonarQube并应用到实际的项目中。

能熟练使用Intellij开发工具,熟悉掌握其使用技巧和绝大部分快捷键,常用快捷键和插件都有总结成博客。

熟悉基本的Linux操作命令,现在工作中使用Linux也比较频繁,比较多的用于查日志和监控。

熟悉微信公众平台的开发、熟悉了解Docker。

熟悉Go语言的基本语法,使用GoLeetCode上刷过一些题。


教育背景

学历本科/西华大学/信息工程

时间2013.09—2017.06

主修:计算机应用基础A、信息论与编码、通信原理、无线通信原理与移动网络、数字通信等。

由于读了一年高四,从二专到二本,艰辛的一年使我成长了很多学到了很多感悟了很多。大学第一年自然而然的当起了学霸,大一上学期后半段,有个很厉害的老师叫卿朝进,上了我们专业的一门叫信息工程概论的课,一节课下来大家新潮澎湃,并且想在我们这批人中找一些人组建实验室。一下在我找到了我的方向,我第一个去找了他,但是由于内向腼腆,说话声音发抖脸红冒汗,最终他没有看上我。最后我连续给他发了几次邮件,最终他收留了我。

大学四年基本是在实验室度过,第一个寒假开始在实验室学习数模电,大一下学期开始做一个小玩意简单的红外感应设备,花了整整一个学期整电路画PCB调试等,暑假老师接了一个四川省农业厅畜禽遗传资源动态监测平台的项目,什么都不懂开始硬上,整整一个暑假的煎熬一点一点的百度,才把整个项目的运行起来,最终把项目完成了,记忆尤新,从此打开了新世界的大门。

大二由于老师的资源,有幸参与了解联通报表的开发,开始接触Oracle,暑假到成都东叶舟科技有限公司实习

大三由于同学的资源,自己接了两个小的系统开发,中途也参与了老师的一些项目。大三的暑假由于Nokia的公开日,有幸参观且进行模拟面试,最终有幸到Nokia实习了半年,这半年收获巨大,由衷感谢。

大四上半学期在Nokia实习,下半学期基本在找工作,中途有两家比较满意的公司HR给了口头offer,但最终都由于业务变动未能入职,对于一心想留在成都的我最终却没能留下来有点小失落,我知道不如意才使人成长,就当是一次锻炼,便坚定信念出发了。


实习经历

大学期间总共参加过两次实习。分别是在Nokia成都六个月和东叶舟科技有限公司两个月。

第一次是大二的暑假2015.07—2015.09为期两个月在成都东叶舟科技有限公司,主要参与了渝富金融微信平台笑山羊商店系统新华网微信小游戏三个系统的开发,第一个项目是做后端开发,后两个是做前端开发,也是这次终于前端后端打通了。通过这次实习最大的收获是思维方式从一个学校学生到公司员工的转变,极大的增强了适应能力,当然技术上的收获也很大,后端技术加强了,新学会了前端开发。

第二次实习是大三的暑假2016.07到大四上学期结束2017.01为期六个月在Nokia成都,由于当时Nokia并不招收正式员工,以及找工作的原因并没有续实习。在Nokia就参与了一个内部项目Communication Matrix,刚开始花了一两天学了下Thymeleaf,然后做了大概一个月前端,然后开始做后端开发。这个项目简单的说是一个通用的Excel数据管理系统,当时主要是针对Nokia各个地区用到的网元配置的Excel文件。用的Spring全家桶(Spring Boot、Spring Security、Thymeleaf),这次实习可以说使我得到了一此质的提升,对框架的使用和理解有了巨大提升,最重要一点是Leader的技术很强,从他那学到了很多编程思想上的东西,即使是现在很多时候很多东西我还是在参照学习这个项目。这次实习让我不再畏惧英文文档,掌握了单元测试的思想能够灵活运用ITUT,在RedHat上做MySQL的增量备份脚本,对LinuxMySQL有了更深入的认识。


工作经历

到目前为止呆过两家公司,中移动在线服务有限公司上海冰鉴信息科技有限公司

中移动在线服务有限公司是国企中国移动旗下的一个专职子公司工作地点河南郑州,对于一个只想留在成都热衷技术的我,并不是我理想的地方,虽然项目经验相对于应届毕业生来说丰富,技术等各方面能力自认为不差,由于实习错过了很多好机会,以及两次本命年的玩笑,最终去了中移的实名制团队,该部门主要是做实名认证相关的业务,以及一些对外拓展业务。

一开始是进入的智能门禁组,为了熟悉和了解整个公司的技术、业务和环境,安排去维护实名认证企业平台,主要技术是SSMDubbo,主要的工作内容是BUG修复和一些功能的优化升级,技术含量不高。之后就是智能门禁项目的开发,主要技术还是SSMDubbo,刚开始熟悉项目Leader叫我对人脸识别接口进行压测,学会了JMeter的使用,之后就是一些常规开发。

由于人员调整,被调到集中交付中心小组(中途又有一次人员调整门禁组长想把我要回去,虽然没成功虽然我也想回门禁组),主要是帮助省公司做线上售卡业务,以及认证激活,第一个功能就是挖异营销模块,相当于集中交付的主业务的一个缩影,就我一个人独立来完成设计和开发,由于需要用到身份证正反验证和视频认证激活,已有的流程中耦合了很多各式各样的业务逻辑,所以不能直接用而且没有注释全是一团乱麻,又将原来的身份证验证和视频认证的代码全部梳理出来了一套可读性较高逻辑简单重复代码少的新流程出来,因此我变成了整个小组最熟悉视频认证流程的两个人之一,像之后的集团购卡认证和新疆视频认证改造的这类比较大型复杂的需求都分到了我这。

在中移动体会到了大厂的系统环境的复杂性,以及各种权限把控的严格性,以及各种上线流程的复杂性。对git的使用以及分支的管理有比较深刻的理解,对Oracle的使用和体会更加深入,以及学会了JIRA的基础使用,学会了工作总结,我的工作技术总结,听说当时走的时候留给他们的总结组长还时长说起,还是比较自豪的。

之所以离开去冰鉴,并不是因为待遇问题,说实话冰鉴给的待遇和中移差不多,甚至严格的讲要差那么一丢丢,离开主要是因为中移是国企对于一个想走技术流的人来说并不理想,大家应该都懂;其二用的技术比较老,仅仅业务的复杂性很高,成长速度达不到我的预期;其三冰鉴是创业公司会很锻炼人,能够使我快熟成长;其四是我的一个师兄在冰鉴。

上海冰鉴信息科技有限公司我是18年4月中旬入职的成都分公司,周五离职中移从郑州回成都用了一天时间租房周一入职冰鉴虽略显匆忙,不管怎么说是我理想的工作地点。进公司做的是企业征信,用的Spring Cloud微服务架构,项目是使用SpringBootMybatisRedisKafka以及Docker等比较新的技术,是我比较理想的技术架构。中途由于系统出了些小故障,排查问题以及解决问题的过程中,通过JMeterSpringMvc异步实现进行压测通过VisualVm工具对Tomcat参数调整监测,对Tomcat的工作原理有了一些理解和认识,以及对SpringMvc异步处理原理和实现以及异步线程池有了比较深入的理解,对压测工具JMeter使用更加熟练。之后又对分布式锁、Hystrix限流熔断降级做了一段时间的LoadRunner压测通过VisualVm工具观察,对VisualVm工具使用更加熟练,并学会了LoadRunner的使用。对JIRA的使用和理解更加深刻,对微服务架构的理解更加深入,对ITUT的理解更加深入。而且对于这些内容我都一一做了总结并添加到了我的博客中。

中途人员调整,我被调到了数据平台,由于我个人比较严谨做事细致负责,之前合作时我的ITUT写的比较好,工作效率比较高bug率比较低,以及个人之前系统之前出了几次故障,个人征信的组长把我要到了个人小组。到个人组主要做个人系统的重构开发,主要用到的还是Spring Cloud那一套,引入了ApolloSpring Cloud Sleuth等一些技术,一开始主要负责模型服务的开发,借鉴PMML的思想来实现一套通过XML配置来描述模型的算法,模型服务通过解析XML来实现相关的算法。搭建SonarQube并应用到项目中。

模型服务成熟后到个人业务服务的开发,由于业务的发展开发了个人决策服务,用于个人业务需求的配置,就不用像个人服务那样用代买来实现,通过配置直接实现业务,还支持groovy脚本配置。以及外部部署的产品服务,通过Maven的assembly插件将固定的产品类和配置文件等打包成一个项目部署到外部。

目前主要做的是数据测试平台,一个批量服务,用于跑批量任务,以及做一些数据分析的配置以及出一些分析报告,支持配置Python脚本执行,数据清洗,链接,统计描述等功能,还新增了定制化的Zeppelin服务分析功能,理解Zeppelin源码并搭建我们自己的分析工具。


个人简介

本科信息工程,自学Java,在校期间参与过比较多的实际项目,自己单独接过外包项目,积极主动,大一暑假开始做实际的项目,大二暑假就在成都东页舟科技有限公司实习参加实习,大三结束到诺基亚西门子通信技术有限公司实习了半年,处理和解决实际问题的能力比较强,善于挑战,毕业设计自拟了一个大数据相关的题目,使用Python做新闻爬虫,MongoDB做数据库,Spark做新闻舆情情感分析,Redis做消息队列,这些技术在做之前都没有接触过。

自学能力强,目前用到的技术都是通过自学的;善于学习;自律性比较强,会给自己指定一些学习计划;适应环境的能力强,能够很快的融入一个新环境,善于自我调节;善于总结工作效率高,工作中的一些问题及技术都进行总结,以便提高工作效率,有自己的博客 https://yaoyinglong.github.io 工作积极主动认真负责,考虑问题比较全面;做事严谨;有良好的编程风格,良好的团队协作能力;目前偶尔也会去LeetCode上刷一刷算法题。

LeetCode做题分析