@
oceanthe1h ### 实习经历
深圳市爱的番茄科技有限公司 2022 年 05 月-2022 年 08 月 后端研发工程师职能平台线-集团研发部-运营后台组 深圳
#### 负责项目与主要工作内容:
> 对接运营部门负责人的需求,了解业务状况并通过技术层面改善了了业务处理线冗长、周期长、手动化易出错等问题,提高运营部门工作效率
> 1.为运营部门开发一套 H5 活动参数配置工具,个人负责了数据库的表设计,后端开发,前端开发。上线后运营同学的日均产出提升 60%,QA 团队的测试周期有效缩短, 且持续跟进后无反馈相关漏洞或事故。
> 2.在数据库资源有限且数据分配不均的情况下,为运营部门每日庞大的取数需求提供技术支持,改善运营部门取数周期长且脏数据居多的问题,有效提高 15%召回率。
建议围绕着项目写,两种写法,一种是实习经历和项目经历融合。另一种是实习经历只写实习的内容和实习成果。具体项目单独展开。
单说上面写的展开不足。实习 3 个月,完整需求至少有 2-3 个。活动配置工具化,取数业务召回率优化。
这两个业务偏向业务模块,建议放在后面。直两句话介绍内容和成果。
> 参与集团统一智能中台系统的开发送代,包括用户中心服务、定时任务、公共服务,优化重构旧模块业务逻辑,开发新服务为多部门提供稳定的技术支持
> 1.使用 XXL-JOB 分布式调度平台开发数据采集定时任务,对游戏业务侧多个数据源进行定时采集,任务上线后相较于原本第三方平台的吞吐量与性能均有所提升。
> 2.为了能快速定位用户线上问题,主动参与设计与开发了日志染色方案,调研了多种主流企业级分布式 ID 生成方案,得到 TL 采纳,功能上线后提高查生产问题的效率且有效减少 20%日志输出文件大小。
> 3.参与用户中心服务的开发与重构,如使用 Kafka 做异步通知告警、用 Redisson 框架解决了多节点之间可能发生的死锁或竞争导致脏数据等问题。
看不出来那些是你做的,比如 XXL-JOB 、Kafka 、Redisson 谁提出,谁调研,谁接入。
介绍不完整:ID 生成器后面采用了哪个?
> 在日常开发中注重对自己负责模块的性能等问题的探究与优化,如某采集任务经过代码优化后性能提升 70%、对从 MySQL 中提取庞大数据量时会出现的性能问题的原因与相关优化方案、MySQL 死锁排查、分页优化等。同时积极参与到小组开发中遇到问题时的分析排查讨论,对以上沉淀成部门技术文档
这块和取数优化结合,体现主动性和优化结果。
#### 项目经历
> oceanRPC-轻量级 RPC 框架 2022 年 01 月-2022 年 09 月
> 项目描述
> 该框架分为多模块开发,通过 starter 可以方便集成到用户现有框架,开箱用。研究了业内主流 RPC 框架的文档与部分源码实现,如 Dubbo 、SOFAFRPC, motan gRPC 、Kitex 、bRPC 等,该框架总结了其中部分优点,可以实现 RPC 框架基本的远程服务调用功能,同时兼顾了通信性能、高可用、可扩展能力、服务治理能力。
> 组件选型:SpringBoot 、Netty 、Zookeeper 等
> 系统易用与易维护性
> 通过自定义注解屏蔽底层通信细节实现注解式服务注册和服务发现现
> 项目结构分层合理,使用了多种设计模式,如代理模式、策略模式、模板模式等
> 系统扩展性
> 支持多种序列化协议,如针对 Java 的 Kryo,跨语言的 ProtoBuf
> 提供了多种可自选的客户端负载均衡策略,包括随机、轮询、权重、一致生哈希
> 系统高效性
> 高效且可扩展的二进制通信协议设计,支持多版本方法与向后兼容容,请求压缩
> 利用 Netty 的 Reactor 线程模型、零拷贝特性与 TCP 连接多路复用特性有效提升系统性能与吞吐量
> 实现了 Channel 连接管理池,避免频繁建立释放连接。支持服务信息本地缓存,避免晚上好视繁请求注册中心
> 系统可用性与容错性
> 实现了集群容错,支持多种容错策略,如 Failover 、Failfast 、Forking 等
> 实现了服务数据本地磁盘异步持久化,避免注册中心单点问题与客客户端宕机丢失数据
> 实现了服务无损流量优雅上下线、基于背压机制的客户端请求限流、定义建康检测请求定时对实例探活
> 基于 ZooKeeper 的 Wathcer 机制与强一致性,保障了客户端信息的毫秒级感知与注册中心的外部一致性
本身用到的技术超出学校所教课程。有足够的技术含量,可以留给面试官提问展开。毕竟还是个人项目,建议减少篇幅。
### 专业技能
> 具备良好 Java 语言下服务端开发能力,具备一定的算法理解与设计能力和 C++语言基础
> 对并发底层理论有较深入了解,阅读过部分 JUC 源码,有多线程环不境调优意识
> 对 JVM 底层理论有较深入了解,使用过 JProfiler 工具对测试环境内存异常、吞吐量低等问题分析排查
深入了解,容易给自己挖坑,如果只是阅读了一些源码和看了些剖析文章,还是去掉“深入”。
> 熟悉常见网络协议原理与特性,具有独立设计 RPC 框架经验,了解一定传输层与应用层网络性能优化技术
oceanRPC
> 熟悉 InnoDB 存储引擎基本原理,有一定 MySQL 性能优化经验,了解 LSM-Tree
> 熟悉 Redis 基本原理,阅读过部分基本数据结构源码,了解常见 HA 方案与单单机优化方案
> 掌握 SpringBoot 、Mybatis 等后端框架的使用,了解 Spring Cloud 常用组件,有前端 Vue 开发经验
> 掌握 Kafka 的基本使用,了解 MQ 的设计原理、适用场景以及常见问题解决方案
这些还好,Spring 工作有体现,可以去除掉
> 通过阅读论文了解过分布式领域相关共识算法及常见分布布式事务模型
容易挖坑,而且不容易讲清楚,不如把坑留给 HA ,LSM-Tree 这种容易讲的内容上。
> 通过阿里巴巴编程规范(Java)阿里云基础技能认证考试
这个认知技术含量不高,感觉和计算机二级证书一样。计算机专业写不写都还好,写了还容易暴露上限。
### 比赛和组织经历
> ACM 校级赛 2020 年 10 月 2020 年 11 月 大二时参加校园科技月 ACM 竞赛获小组一等奖(1/50)
可留可不留,校级别亮眼程度不高
> 校园网络中心-网络管理员 2021 年 02 月-2022 年 06 月 负责校园宿舍与课室的网络维护,对分析处理常见网络故障与小中型网络的为连接部署积累了一定经验,同时提升了自身的团队合作能力。
找大厂建议去除,中小厂可以保留
> 字节跳动后端青训营 2022 年 05 月-2022 年 06 月 通过笔试筛选参加了后端青训营,完成了所有案例与课程学习,并且沉淀相关技术笔记,对大型互联网企业的后端基础设施有了更深的理解。
加分项,可保留
整体还不错,个人项目有一定的深度。实习过程有思考、有成长、有收获。整个内容还需要重构。突出主动学习和独立思考。