个人介绍
开发年限:18年
Java/scala: 5 年
VC++: 4年
Python: 3年
BC++: 0.5年
C#: 4年
其他语言:2.5 年
技能一览表:名词解释:
掌握程度量化等级:熟悉>较熟悉>一般>用过>学用过
工程技能:
项名
掌握程度
备 注
OO
熟练
OO原则,设计模式之类的问题,估计我是回答不太好的,因为我忘了很多,也不觉得这有多了不起。
AOP
一般
主动去用的情况一般只是做做权限控制,错误日志等,虽然自己用中间语言以动态织入的方式也开发过这种框架。(自己开发这个很简单,只是某项目内部使用,不值一提) 多数时候是被一些开源框架牵着使用。
TDD
熟练
多数时候先写测试,再写代码。有时候自顶向下设计,有时候自底向上,总之先做风险系数最高那个。前者有个优点,顶层模块测试做完了,有时候架构就出来了。这种风格很适合需求跟着感觉走互联网项目。
瀑布
一般
偏好上不喜欢,加上所处数据分析行业通常很少遇到有经验的需求分析师。客户更不知道自己想要什么模型,所以用得少。
数据库/数据仓库
数据库名
掌握程度
备 注
sql server
较熟悉
只是开发人员程度的较熟悉,局限于对一般存储过程,触发器(个人不推荐使用存储过程或者触发器,因为会对测试维护困难,而这点性能完全可以在数据外观层的缓存中优化回来)、事物处理、表分区/简单查询优化等。非DBA水平做标准。
pg
较熟悉
同上
mongo
一般
因为总是忘记其语法,通常用orm代理着用
redis
一般
做缓存,和多服务器并发锁用。
hadoop
一般
习惯spark代理调用
hive
一般
习惯spark代理调用
impala
用过
通常关联hive使用
hbase
用过
通常关联hive使用
cassandra
学用过
只做过一个爬虫项目后放弃
Rabbitmq
、kafka
用过
用于数据存储的负载均衡。
隔离测试工具:
语言
mock工具
掌握程度
备注
python
py mock
熟悉
这个在很多模型计算项目中有点出乎意料的好用,脚本语言无需过重的IOC框架。适合带通常不习惯重框架的算法工程师上手TDD。
java/scala
mockito
熟悉
在应用开发中,我所在的小组通常能达到业务层,数据层接近100%覆盖率。以至于有次一个很久没人用的服务的数据库被误删后,通过重新运行测试来重建数据库,并找到所有多字段唯一约束、默认字段值、初始内置数据等信息。
C#
Moq,NMock
一般
没找到一套好的aop方案,导致需要大量编码,个人对本语言不太想深究了,直接用开源Ioc 注入,凑合着用 。
golang
goMock
用过
作为JetBrains全家桶的IDE粉丝,其配合goland Ide, 效果不错
机器学习算法(AI/BI)
工具库
算法名
掌握程度
备注
自开发
强化学习(遗传算法+自适应拓扑神经网络)(vc++)
熟悉
曾脱产7年c++手写2万余行高度紧凑的中间件算法代码和 2 万余行C#代码的客户端
sklean
一般常用回归、分类算法(python)
用过
主要是自己组员在用,通过竞赛选拔法,同样一个问题,通过不同配置,不同特征提取、预处理和建模算法,找到一套优化流程。
theano
多层感知器(python)
用过
用于开发一个sklearn为主的自动机器学习平台的组成部分。
spark-ml
全部预处理和建模算法。(pyspark)
一般
在做web图形化建模工具的时候,将所有spark-ml算法封装、和测试。做到鼠标拖曳无编码实现机器学习。
spark graphx
网络图传导、评估算法 (scala)
一般
用遗传算法加上graphx 用于有监督建模计算企业信用等级。
偏好画像
项名
备 注
个人常用分层习惯
数据处理项目分三层(不是指dm、dw、ods等的数仓层):清洗命令层->数据外观层->数据层
工程项目分四层: 控制层->业务层->数据外观层(这个外观层除了api 可穿透变为工具层访问外,其他消息队列、缓存、数据库等均不运行穿透访问)->基础设施层
数据分析项目分五层(因为业务比传统项目复杂,所以借用DDD名相来隔离):用户接口层->应用服务层->领域层->基础设施防腐层->基础设施层
快捷键控
就是感觉比周围开发者多用一些IDE快捷键。省去鼠标找什么东西而打断思路。
注释控
例如:换行必做块注释;停用代码必注释停用人,停用原因,停用时间等等,有时候还会注释上举出期望重新激活这段已停用代码的几种场景描述。。。 具体细节就不多介绍了, 这个观念的核心是代码自身就因该是一份文档。
测试控
测试代码量常超过正式代码量,仅隔离测试,自己所在的项目就能达到95%以上的覆盖率。一则确保项目成员有随时重构1.0以上版本项目的勇气,并且规范结构的测试本身也是一份可运行,可断点的开发文档。
编码控
无论担任SA,PM, PL,都会自己做一部分功能模块,以设计对全局的编码规范的约束性。
CodeReview控
干预,并重构别人代码的时间有时接近自己写代码的时间。
比起功能完成,更关注代码和结构是否漂亮和测覆率,因为漂亮意味着上线后整个软件生命周期维护的低成本,哪怕该成员离职N年后,其影响有时也是持续的。
函数式偏好
比如就算在python 和 golang中也会自己写一套类似java Stream的东西。
语言偏好
pythonscala(实际写代码没java多) >java>c++>go(没泛型很难过)>C#(语法比java先进,但支持环境太差,开源库不好用,vs IDE太烂)
完整版简历——涉及编码风格、具体掌握技能和部分作品展示
链接:
提取码:isan
工作经历
2019-09-11 -2020-04-28云南航天工程物探检测股份有限公司数据工程师;java架构师
工作时间: 2019.11 – 2020.4.28 公司名称:云南航天工程物探检测股份有限公司 公司规模:300 人(重庆分公司20余人) 公司所处行业: 物联网 岗位名称:数据工程师;java架构师 工作职责:物联网架构开发
2016-09-01 -2019-09-10重庆誉存大数据科技有限公司python/scala模型、数据工程师;java工程师
公司名称:重庆誉存大数据科技有限公司 公司规模:150 – 200 人 公司所处行业: 互联网征信评估 岗位名称: python/scala模型、数据工程师;java工程师 工作职责:工程架构;算法编写;业务设计逻辑、分配、编写,数据库设计;测试设计编写 成就:明显的是所在项目组很少被测试部门找麻烦,除了功能设计性bug。除了外接项目,公司自己产品很少延期。(除了技术选型,架构合理等, 也可能也有一定运气成分。)因字数限制,详见文档附件 (工作证明是专利查询网查到在这家公司注册的专利)
2008-06-11 -2016-09-09重庆衍智科技有限公司自创业
职责:神经网络强化学习中间件开发 约4万行紧凑的c++代码做com封装为中间件,2万行C#代码做客户端实现:基于强化学习、用基于种群优化的遗传算法、并配合自生长拓扑神经网络;运用自主研发的数据挖掘工具,开发预测、估值、分类等数据模型,并在淘宝数据服务平台向商家提供数据分析产品。(具体详见个人介绍->完整版简历链接,含有技术介绍、数据挖掘模型和产品介绍的附件。) 成就:多年前和阿尔法狗的前身公司,同一年出演示游戏demo,结果烟消云散。
2006-08-02 -2008-06-02正大软件集团高级软件工程师
一、项目 正大图书馆管理系统 职务: 架构师开发周期(人/年): 20 技术: .net c/s b/s webserivce CodeSmith 二、项目:EAS 企业应用套件(项目管理、物质管理、OA集合)(时间上和上个项目并行) 职务:代码质量监督 开发周期(人/年): 50 技术: .net WF castle nherbinate 三、项目: DJReign 职务:项目组长 介绍: 欧美外包项目,一个类似DJReign 的web2.0多媒体网站
2003-08-01 -2005-12-02海南罗牛山集团架构师
项目:整体负责一个java的省级教育局用的学籍系统的2.0开发。 职务: 架构师 开发周期:(人/年): 10 职责:开发企业级orm框架(比传统第三方ORM性能高), 部分重写struts ,其他基于sevlert的标签库开发。 业务逻辑/界面辅助类开发。 技术: java vc++ ORM struts severlet 成就:当年的 java 的 ssh轻量级开源框架在高并发下性能肯很不靠谱, 为公司写了一套企业级定制 serverlet标签,ORM框架, 连数据库连接池都是自己socket重写的,节约每一分性能。可避免每一个可能由于开源软件造成的未知bug.
2003-03-09 -2003-07-31重庆访问科技软件工程师
公司名称:重庆访问科技 公司简介:在线k歌的网络平台 规模:50-100 人 工作时间: 2003.4 – 2003.7 职责: PG 语言 asp.net、 VC++/ com 项目介绍:平台应用功能开发
2001-03-09 -2003-03-28重庆强光科技公司软件工程师
工作职责: 生成业务逻辑和数据层的代码生成器开发,安全性较高需求的业务逻辑开发,比如开发访问科技做收费系统,为了确保安全性,反编译了一些.net框架的底层。Ramdom, 和那个.net自带的票证都在反编译后发现其漏洞,然后想法避用或者用其他方式修补。 成就:01年编写代码生成器自动生成CRUD 还是有点稀奇的事情。
教育经历
1998-09-01 - 2003-07-01重庆渝州大学计算机科学与技术大专
重庆渝州大学,学习basic,c++,单片机应用。