基本信息:

姓  名:陈池

学  历:本科

电子邮箱:me@chenchi.cc

手  机:15201466329

个人评价:

  计算机专业是我的爱好,有持续学习的习惯,专业基础扎实,开发经验丰富,喜欢思考和总结。

  系统学习过C语言、C++和Java,主要使用Java做Android开发,结合项目做过Kotlin开发,能够在开发当中充分利用语言特性。使用PHP做过服务器开发,也用过Python和Groovy等语言。

  学习和实践过针对契约编程的思想、测试驱动开发和TDD大师Kent Beck提出的一些编程实践原则。在面向对象编程有结合实践的思考和使用经验。

  英语能力好,日常工作交流、专业资料读写没有问题。

工作期望:

  我希望工作比较有挑战性,能在Android/Linux系统层面、编程实践和方法论上面持续的总结、提高和学习,这也是目前我比较感兴趣的。希望同时有机会接触其他方面开发或者新的技术。

工作经历:

豪客互联 (2016.3 - ),Tech Leader,客户端负责人,开发工程师

  我在豪客成立之初加入公司,首先参与团队组建工作,不到两个月时间内完成20人Android团队招聘,然后在2016.3 – 2017.2 负责Android开发团队管理工作,同时也一直在从事具体的Android开发工作。

  在这个阶段,我们开发部门和测试部门合作集思广益,制定了开发流程,以Redmine和Gerrit为中心管理项目进度,强化代码审核流程,引入Sonar工具改善审核工作,希望在比较低的开发成本下有效的改善了代码质量,做到bug和代码提交一一对应。这些工作,规划起来容易,执行下去困难,通过大量细致工作,我们开发部门把容易的困难的都做到了,而且代码质量还得到了兄弟部门认可。我个人在具体的开发工作中,也积累了比较多没有重现路径bug的解决经验,并且在其他项目尝试推广。

  技术上解决的主要问题有:1、难以重现的bug;2、定位和解决线上统计用户数据发现的问题;3、改善开发效率;4、代码经手人过多导致维护性差,质量随着数量增长而滑坡。

天乐益健、塔读 (2014.12 – 2016.2) 客户端负责人,开发总监。我在益健成立之初加入公司,首先参与团队组建工作,完成6人Android团队招聘,并且负责天乐益健项目开发,制定以Redmine为核心的项目流程管理规范,与其他同事一起顺利完成产品计划。2015.11月在天乐益健由于集团业务调整解散以后转入兄弟公司塔读担任开发总监,稳定开发部门人心和做好过渡工作的同时,与项目经理合作查找开发流程缺陷。

新工科技 (2011.6 – 2014.11) 技术负责人。我在公司成立之初加入,和以前的上级一起创业,在这家公司开始做Android应用开发。最多时候负责8人开发团队。主持公司智能硬件项目的软件开发。在服务器开发同事忙不过来的时候主动支持了php的服务器接口开发和相关数据库设计。

中软国际 (2009.8 – 2011.6) 项目经理。是一家外包公司,我和另外四名同事一起作为人力外包到华三做MPLS相关开发,使用C语言。

诺基亚西门子通讯 (2007.12 – 2009.6)软件工程师。使用C语言和公司内部定义语言做IPA项目开发,还负责一段时间自动测试脚本维护。期间我报考并就读了浙江大学软件学院的在职研究生软件开发专业。

德国RIB软件集团中国公司 (2005.7 – 2007.11)软件工程师。毕业后加入此公司。使用C++/MFC开发CA3D建筑设计套件。我负责设计和维护一套IFC(一种建筑行业国际标准)和CA3D内部模型之间的转换器,比较困难的工作是两者之间存在不完全对应的实体,此时需要一些做一些复杂的立体几何计算才能解决问题。

教育经历

武汉大学(2001.9-2005.6) 计算机学院 计算机科学与技术专业 本科 学士学位

浙江大学(2008.9-2014.11) 软件学院 软件开发专业 在职研究生(单证) 工程硕士学位

项目经验:

文件管理项目(2018.5 – 现在) 该项目包含Super Cleaner项目代码,要求修改界面和更改广告来源,没有技术难题,主要问题是:1、时间短,希望尽快上线;2、没有测试支持,需要开发人员自己保证代码质量。因为时间短所以也不可能使用单元测试,我们通过加强代码审核、合理划分代码模块来确保质量,当然在修改代码时候也尽量谨慎修改,并且在修改过程中逐步改善代码结构。取得了显著的效果:第一版两个星期完成,之后的修改都是三天一个版本,目前为止已经完成三个版本。Google Play

逆向工程(2018.5 – 现在) 这是我初次接受逆向工程的任务,之前确实没有做过。在文件管理项目的剩余时间,我负责对一些第三方应用做逆向分析,除了根据反编译代码和smali汇编以外,也使用网络抓包和XPosed框架帮助分析。

Super Cleaner项目维护(2018.2 – 2018.4),因为部门调整中途加入,和其他同事一起维护此项目,我主要负责广告展示相关内容的改动和维护。原有的广告模块已经做的很好,我进一步改善,方便了当前的维护工作。Google Play

Hi Music项目(2017.11 – 2018.1),我带一名同事承担所有数据源开发工作,包括本地数据库和网络请求的数据,所以采用测试驱动开发,所有对外接口都有单元测试,显著的提高了开发效率。所有读写数据的操作都放在多线程当中,我们也对单元测试进行改进,很方便的支持多线程单元测试。在我离开此项目之前共计三个月开发周期中测试部门总计提交158个问题其中只有2个是数据源的问题。

Hi Security 项目(2017.2 – 2017.10),我完成项目的广告接入和展示模块。经常遇到的问题是发现线上广告统计数据下降,需要通过在线上报日志确认是不是客户端的问题,原因是什么,怎么解决。在线上报日志过多会对日志服务器造成压力,过少有可能错过关键日志,通过引入针对契约编程思想较好的解决了此问题。

  广告模块稳定以后,我任该项目组长,该项目转手人比较多导致代码维护性很不好,已经影响到新需求开发,与同事充分讨论后制定了基于MVP模式的重构计划,分成五个阶段计划逐次由项目中五位同事完成,以达到完成重构和锻炼队伍的目的。

  应用也积累了很多OOM问题和ANR问题,我负责解决ANR问题,并且帮助解决一部分OOM问题。ANR率从5.8%降低到2.7%。 Google Play

Alice相机项目(2016.12 – 2017.1),因为该项目积累bug太多,我帮助同事解决积累的问题,在此项目我推广和复制了Hi Share项目总结的解决缺少重现路径问题的思路,严格要求了针对此类问题代码提交流程,和该项目开发同事一起解决问题逐步降低了bug数量。

Hi Share项目(2016.6 – 2016.11),我主持该项目,完成了整个开发周期,之后我负责对此项目的长期维护和改进,Google Play。这是一个类似茄子快传的项目,我设计和完成传输功能模块,三个同事帮忙完成界面开发。传输功能模块接口设计合理,而且还做了一个单元测试,一方面用来保证开发质量,另外一方面作为在此项目开发中我们贯彻针对契约编程思想,引入断言和主动抛出异常,通过让问题提前暴露来改善开发质量,也提高了开发进度。我们遇到并且解决的问题主要有这些:

  1、快传有很多问题要反复测试才能重现,为了减轻测试同事负担,基于单元测试功能开发了支持两个手机互相执行传输的自动测试(单元测试只支持一个手机),有效的重现了问题;

  2、快传经常出现概率性重现的bug,在开发期间我解决了大量此类问题,在这方面积累了丰富的经验,还总结起来帮助其他项目解决类似问题,基本原则是重视日志打印和分析,日志要打印的准确避免遗漏信息,还要尽量少,在此基础上务必找到重现方法,不能重现不认为解决;

  3、特殊手机适配问题,主要方式是逐一机型适配,但是我和一名很精通Linux底层的同事合作尽可能发现特殊适配问题背后的普遍原因,把特殊问题背后的普遍性原因找到,做到彻底解决。

  4、竞品的学习和研究,我们结合抓包工具、反编译工具和XPosed框架通过逆向工程学习Xender和茄子快传,有效的避免了开发中可能的弯路。

其他还短期参与了基于WebView的浏览器开发、Hi Clock闹钟日历开发。上述项目都在Google Play上线。

塔读文学(2015.12 – 2016.2) 参与Android客户端开发工作,完成产品提出的功能。

天乐益健项目(2014.12 – 2015.11) 主持应用开发工作,应用主要结构设计,规范和服务器接口的调用。在这个项目开始积累解决bug的经验,确认什么才是能确认一个bug是彻底解决了,探讨如果避免bug的引入等等。

基于Linux系统的智能电视PDF阅读器(2013.5 – 2013.7) 独立开发。使用C语言在基于Linux系统的智能电视上做Direct Frame Buffer开发。客户要求单页展示时间最长2500毫秒,我首先尝试移植Mupdf,勉强可以达到客户要求,后在此基础上通过裁剪显示区域进一步改进效率,把单页展示最长时间降低到760毫秒,又使用C语言开发了一个包括页面索引和翻页功能的界面,可以用电视遥控器完成操作,用户体验非常完美,大大超过客户预期。

安利智能营销套件(2012.11 – 2014.11) 与最多8个同事合作开发,我主导全局工作和负责整体开发,代码量庞大,功能繁琐。主要问题是类似功能的重用和代码结构维护,避免陷入不可维护的陷阱。我做的比较突出的功能是通过修改VLC源码,实现了一个可以加密文件播放的视频播放器,为安利的培训视频提供安全保证。基于这个功能完成了我的硕士毕业论文。

智能手表Android客户端 (2012.5 – 2014.11) 独立开发ZeClockZeSplashZeSplash2SmartSyncZeTel和A9等多个智能手表Android客户端,通过约定好的蓝牙连接协议与智能手表交互,完成定时提醒、天气、计步、心率、卡路里等数据的同步和展示,并且可以同步到服务器。这些客户端都已经上线Google Play。

山寨机项目 (2011.5 -2013.1) 创业的最初项目,我负责系统软件研发,修改Android原生系统应用。在此阶段为了方便vim环境下的Android开发,我自己开发了一个vim插件叫adt.vim,已经更新到vim.org。

个人作品:

私房相册:保护图片和视频隐私的相册,独立开发。

Hi Share:快传类软件,类似茄子快传,完成功能部分。

ZeClock:智能手表Android客户端,独立开发。

ZeSplash:智能手表Android客户端,独立开发。

ZeSplash2:智能手表Android客户端,独立开发。

SmartSync:智能手表Android客户端,独立开发。

ZeTel:智能手表Android客户端,独立开发。