Last active
December 2, 2019 05:27
-
-
Save ninjachen/1eba293199320fdc7b72f1be5d63047e to your computer and use it in GitHub Desktop.
resume_cn.json
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"basics": { | |
"name": "宁佳晨", | |
"label": "Java工程师", | |
"picture": "https://avatars3.githubusercontent.com/u/3176871?s=460&v=4", | |
"email": "jiachenning@gmail.com", | |
"phone": "(86) 15800800838", | |
"website": "https://rnd.app", | |
"summary": "一名技能广泛的程序员,从业7年,动手能力较强,熟悉JavaEE,Android,PHP领域.", | |
"location": { | |
"address": "", | |
"postalCode": "", | |
"city": "上海", | |
"countryCode": "CN", | |
"region": "静安" | |
}, | |
"profiles": [{ | |
"network": "StackOverflow", | |
"username": "ninja", | |
"url": "https://stackoverflow.com/users/1323374/ninja" | |
}, { | |
"network": "GitHub", | |
"username": "ninjachen", | |
"url": "https://github.com/ninjachen" | |
}] | |
}, | |
"work": [{ | |
"company": "上海话多信息科技有限公司", | |
"position": "Java软件工程师", | |
"website": "http://www.jijigugu.club", | |
"startDate": "2018-09-25", | |
"endDate": "2019-07-31", | |
"summary": "我们做了款社交app叫一罐,面向孤独、社交恐惧的用户群体。在这里我的职务是负责后端和管理后台的研发,以及工具、技术的调研。", | |
"highlights": [ | |
"重构和维护整个管理后台系统。后台系统的功能包括登陆认证,权限控制,日记内容过滤和审核,处理用户举报,运营话题推送,优质内容推荐,用户反馈管理等。", | |
"从Mysql迁移大表到HBase,制定迁移计划,包括rowkey设计,性能测试,边界测试,新数据双写,老数据迁移。", | |
"调研和搭建HBase集群,微服务化HBase模块。整合HBase client和SpringBoot框架,封装一些通用逻辑,例如断线重连、查询结果组装成Java POJO。设计HBase的rowkey,满足业务查询需求。正式环境关闭自动分裂,配合pre-split,分散数据到不同服务器。", | |
"调研Percona的pt-online-schema-change用来解决mysql数据库的在线更改需求。包括导出真实数据搭建离线测试平台,测试边缘情况(比如负载很大,utf8数据etc),正式环境dry run,业务低谷期正式上线。 mysql自带的online ddl功能在业务量大的情况下会带来很大性能压力而影响用户请求,所以需要调研并测试pt-osc来解决在线表的变更性能问题。", | |
"维护自研的IM服务,满足PM的feature,满足低延迟高并发的技术要求。IM接口数据大部分基于Protocol Buffer做编码解码。", | |
"搭建自动化部署流程,基于Jenkins,Gitlab,Supervisor。", | |
"写一些Groovy脚本,把关系型数据库表转换成Java POJO,避免重复性工作。", | |
"写一些bash脚本,简化部署流程和方便运维服务器。例如:定时备份数据库,定时更新https证书,定时清理过期文件。" | |
] | |
}, { | |
"company": "上海展卷信息科技有限公司", | |
"position": "软件工程师", | |
"website": "", | |
"startDate": "2016-07-01", | |
"endDate": "2018-09-25", | |
"summary": "Zeonic是一家致力于公共交通出行的初创公司。我在这里的职务是协调技术团队完成项目,同时我也是主力Java后端工程师。我们做的扫码坐公交app,比申通metro大都会更早上线。完成第一代二维码支付方案的核心部分。", | |
"highlights": [ | |
"完成估算算法,可以计算公交车还有多久到车站以及目前的位置,", | |
"设计整个二维码支付平台,包括服务端下发临时二维码,车上pos机校验二维码,异步回传乘车凭证。因为公交车的弱网环境,需要设计离线的二维码校验流程。", | |
"对合作伙伴输出乘车二维码功能,这部分基于Oauth2认证。因为手机端的特殊性,引用了Oauth2的扩展协议(RFC7662 Token Introspection)", | |
"优化Android应用,使得操作更流畅,动画更自然。动画部分基于Lottie", | |
"写Android端基于PBOC的交通卡充值和查询功能", | |
"从0搭建公司的Java项目,主要用了SpringBoot,JPA和Gradle,这阵子打算引入ProtoBuf", | |
"杂项:写单元测试,搭建Jenkins,Bitbucket,Jira,服务器端自动备份脚本,etc" | |
] | |
}, { | |
"company": "上海四邻金融信息有限公司", | |
"position": "Android和PHP工程师", | |
"website": "https://www.40jr.com/", | |
"startDate": "2015-07-01", | |
"endDate": "2016-03-30", | |
"summary": "我在比较早期加入的四邻金融。我们的客户是一些没有研发能力的初创团队,我们帮助他们完成初期的业务平台,组建技术团队。我在公司的职位是Android和PHP工程师,也担任技术顾问解答琐碎问题。", | |
"highlights": [ | |
"写混合开发的移动应用,统一app-api登陆和app-webview登陆状态。", | |
"用Jsbridge完成app native端和app内嵌web端的方法互调。", | |
"构造有限状态机,完成订单系统(后端)", | |
"基于Http Digest和加盐md5解决多个业务服务器间互相信任难题。" | |
] | |
}, { | |
"company": "上海即科金融信息有限公司", | |
"position": "全栈工程师", | |
"website": "https://www.geexfinance.com/", | |
"startDate": "2014-09-01", | |
"endDate": "2015-07-01", | |
"summary": "我的第二份工作是在一家叫即科金融的初创公司。它是一家拿了红杉投资A轮的消费金融公司。 我们帮客户打造他们的网站和app,顺便提供我们的金融贷款服务。", | |
"highlights": [ | |
"协助完成初代的贷款业务平台开发(PHP)", | |
"独立完成Android pad端的贷款app", | |
"协助完成网页端贷款app,能在微信中使用(Angular)", | |
"基于Crontab和Redis完成非阻塞的订单处理模型" | |
] | |
}, { | |
"company": "上海万达信息股份有限公司", | |
"position": "Java工程师", | |
"website": "http://www.wondersgroup.com/", | |
"startDate": "2012-07-01", | |
"endDate": "2014-09-01", | |
"summary": "我第一份工作是编写企业级应用的Java工程师. 一个项目是给南京禄口机场提供每日排班和航班延误告警功能。一个项目是给上海申通提供企业OA如新闻发布,生成工单,项目预算。", | |
"highlights": [ | |
"构造基于Spring的服务器应用和Java桌面应用", | |
"写存储过程和视图来整合数据,最后导出pdf报表", | |
"构造Java和Groovy混编项目", | |
"有时候也会去救救火,比如修复iOS项目的bug(虽然并没学过oc)" | |
] | |
}], | |
"volunteer": [], | |
"education": [{ | |
"institution": "上海大学", | |
"area": "计算机科学与技术", | |
"studyType": "本科", | |
"startDate": "2008-09-01", | |
"endDate": "2012-06-01", | |
"gpa": "", | |
"courses": [ | |
"线性代数", | |
"操作系统", | |
"关系型数据库", | |
"数据结构" | |
] | |
}], | |
"awards": [], | |
"publications": [], | |
"skills": [{ | |
"name": "Java", | |
"level": "Senior", | |
"keywords": [ | |
"SpringBoot", | |
"Mysql, Redis, Mongodb", | |
"HBase", | |
"Dubbo", | |
"pt-online-schema-change", | |
"Gradle", | |
"UnitTest" | |
] | |
}, { | |
"name": "Android", | |
"level": "Senior", | |
"keywords": [ | |
"Dagger", | |
"Retrofit", | |
"Lottie", | |
"ReactNative" | |
] | |
}, { | |
"name": "Web", | |
"level": "Junior", | |
"keywords": [ | |
"Angular", | |
"Gulp", | |
"Bootstrap", | |
"Webpack" | |
] | |
}, { | |
"name": "PHP", | |
"level": "Junior", | |
"keywords": [ | |
"Codeigniter", | |
"Infinite state machine", | |
"Composer", | |
"Crontab", | |
"Nginx+fpm" | |
] | |
}], | |
"languages": [{ | |
"language": "中文", | |
"fluency": "母语" | |
}, { | |
"language": "英文", | |
"fluency": "流畅" | |
}], | |
"interests": [{ | |
"name": "阅读", | |
"keywords": [ | |
"小说", | |
"设计" | |
] | |
}], | |
"references": [], | |
"meta": { "theme": "kwan" } | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment