Contact Information


Personal Information


Work Experience

PricewaterhouseCoopers Information Technologies (Shanghai) Co., Ltd (2022/04 - Now)

Smart Rebuild

This project was build on micro service architecture, using Springboot and Angular framework, as a fullstack developer, I was resposible for user story efforts estimation, implementation and unit test for both front end and back end services based on the team capacity.

Tiandi (Changzhou) Automation Co., Ltd (2019/04 - 2022/03)

Belt Conveyor Control Mobile APP

In this project, I was responsible for developing the belt conveyor control mobile app based on the ModBusTCP protocol and accessing the belt monitoring video based on the RTSP stream. This project was developed base on the Smart Mine Basic Information Platform For Mobile.

Smart Mine Basic Information Platform For Mobile

In this project, I was responsible for creating the Smart Mine Basic Information Platform For Mobile based on the SCADA Software Framework, Boilerplate, and Boilerplate-cordova. I am also responsible for the development and maintance of basic modules and prodving the common solution of intergating with the platform for other subsystems.

Product Authorization System

Product Authorization System was designed for preventing devices from being couterfeited. It contains an sdk invoked by business systems for communicating with the server of Product Authorization System, the sdk was developed using the Golang Programming Language and was compiled as a C shared Library. Another part was the server that providing the api for sdk and the database sync service, it was implemented with the NestJS framework. There was also a Javascript library built using Webpack for prodving a bridge between the sdk and the server in a specific network enviroment, and a management system for managing the contents that involved with the Product Authorization. I was acted as the project manager and the sole developer in this project. The system was delivered on time according to the quality.

Smart Mine Basic Information Platform

In this project, I was responsible for creating the Smart Mine Basic Information Platform based on the SCADA Software Framework, the development and maintance of basic modules and prodving the common solution of intergating with the platform for other subsystems.

Report Component

I was responsible for system architecture and development of the project, it was implemented with the Angular framework and the datasource was implemented with GraphQL. The Project used the interactive design of some commercial softwares for reference such as FineReport and Huozige, and implemented functionalities such as data expansion, data association, data grouping and spreadsheet design.

Software Authorization Component

I was responsible for system architecture of the project and development of the management system. It includes functionalities such as offline authorization, online authorization, licenses management. It has improved my ability of business analysis, software design and system architecture.

Software Update Component

I was responsible for system architecture of the project and development of the client and the management system. The client was implemented with Electron and shell, it includes functionalities such as running as daemon, executing the update strategies, pretreatment of upgrade and post-treatment of upgrade. The management system was implemented with the Angular framework for managing the update strategies, it could be integrated with the client to view the logs.

SCADA Software Framework

I was responsible for construting the front-end framework based on Angular, the framework includes an event bus library named rxbus, an animiation library based on lottie, and a dynamic theme render library. I learned from the NG-ZORRO project and created a repo which includes business components gain from projects, so that the developers can reuse the components in the repo and contribute to the repo.

Others

Gitlab Issues Analysis (based on Angular), Nexus Repository Manager Private Package List (based on Groovy and Angular), Management of Micro Services (based on Angular).

Jiangsu Guoguang Information Industry Co., Ltd (201307 - 201903)

Control System Of The Bank Queuing Machines

I was responsible for developing the system on Android which is used to control the wireless devices placed in the bank, such as window panes, primary pane and wireless speakers and provide restful api for other business systems. The main problems were communication protocol and encoding conversion between different platforms, serial port communication with wireless devices, announcements implemented with audiotrack api, switching between master and slave services, concurrency issues, sequential issues and performance. This project was implemented by using the Kotlin programming language, the performance of the system is closed to the one on Windows OS.

Hubei Bank Mobile Marketing rebuild

In this project, I was responsible for the rebuild of the android client and the development of some new businesses. Through the application of dynamic hook technology, the optimization and perfection of multiple functions are completed under the demand of reducing the modification of source code as much as possible. I didn’t participate in the early project development before, but I can quickly master the project architecture and complete the corresponding modifications with minimal intrusion.

Liaoning Rural Credit Cooperative Mobile Marketing

In this project, I was responsible for the architecture design and coding of android client and business system based on HTML5(Cordova + member. JS). According to the business characteristics of the bank, I have developed multiple business templates to facilitate the maintenance personnel to configure based on the business template according to the needs to complete the secondary development of subsequent businesses. Deepened my understanding of hybrid application architecture development.

Internet Identity Authentication of Changchun Administration for Industry and Commerce

In this project, I was responsible for the development of apps under Android and IOS(Kotlin and Swift respectively), the development of background micro services(Kotlin,Blade). This project enables me to have a deep understanding of kotlin and swift languages, and achieve a high degree of similarity and portability between app source codes under Android and IOS. In a similar situation, I personally worked with friends on an outsourced application, Miquaner. I am also responsible for the app architecture and main coding under Android and IOS. At present, it is downloaded in major application markets and Apple store.

Bidding of Anhui Rural Credit Cooperative Android Tablet

In this project, I was responsible for developing the system interface required by the bidding.Because the tablet provided by the company is purchased from a third party, the tablet system cannot be customized according to the requirements of the bank. In this case, I thought of completing the corresponding interface development through the transformation of xposed(an application that needs root and replaces some core programs of the system to realize hook, so as to change the system logic) and the preparation of plug-ins, but the test application puts forward requirements for system security, The device is required not to allow root, and then I blocked the interface obtained by root permission through hook, so that the test application and other applications cannot obtain the root permission of the device(only the application providing the interface can obtain root permission), and passed the test successfully. Although the subsequent bidding failed to be implemented for various reasons, this project deepened my understanding of Android system and reflected my self-study ability and research spirit.

Dandong Bank Intelligent Counter

I was responsible for writing HTML5 business code in this project, which mainly involves business logic. The logic of cash business gives me the most profound image. Deposit and withdrawal is not as simple as it is written. It includes a lot of logic for interacting with devices and recovering exceptions, which not only deepens my understanding of logic and process, but also has a certain grasp of JavaScript ES6 syntax.

Sichuan Rural Credit Cooperative Centralized Authorization Phase II

In this project, I was responsible for the rebuild and implementation of Sichuan Rural Credit Cooperative Centralized Authorization client and background management system. This was my first project after joining the company, and I had a deep understanding of Linux server deployment and implementation. The centralized authorization servers of rural credit cooperatives in all prefectures and cities in Sichuan Province were finally automatically installed from the RedHat system installation package customized by me(using the kickstart of RedHat for customization. All servers in phase I were deployed by operations person one by one. Of course, internet companies may choose docker as the solution, today.).

Others

Internet Trusted Identity Authentication(Android and iOS), Mobile Recording(Android), Universal Bluetooth Library(spp and ble), Mobile Phone Hearing Aid(Android), drivers of various mobile financial peripherals(Android).

Open Source Projects and Works

Open Source Projects

  • Filter: Filter is a plug-in crawler application in the form of DSL syntax inspired by the DSL syntax of Gradle. Users can write groovy scripts to fetch data from favorite websites and display it in the application. Filter provides several general layouts. The newest Filter was implemented with Kotlin. At present, it has been hosted on the Pgyer, Download.
  • Boilerplate: As the name suggests, Boilerplate is a development template. It is some common things accumulated and summarized from daily development, which is convenient to quickly start the development of Android applications.Boilerplate-util, Boilerplate-ipc and Boilerplate-cordova are also commonly used development templates.
  • Lab: This project is a front-end project developed in the process of angular learning, including some common components and features of angular developed by myself. A client based on electron is provided.

Works

  • Miquaner: A Taoke app that supports Android and IOS.
  • Jixiangjia Customization: A roller shutters custom APP, support WEB, WeChat mini program, Alipay mini program.

Skills

The following are the skills that I have mastered and used

  • Web Development: Java/Node/Golang
  • Web Framework: Spring/NestJS/Gin
  • Front-End Framework: Angular/Vue.js/React
  • Front-End Toolkit: NPM/Less/Gulp
  • Mobile Development: Kotlin/Swift/Dart/Cordova/WeChat Official Account/WeChat mini program/Alipay mini program
  • Database: MySQL/SQLite/Oracle/DB2
  • Version Control and Deployment: Git/Travis
  • Unit Test: JUnit
  • Cloud and open platform: WeChat Official Accounts Platform/Alipay open platform/Tencent Cloud/Baidu Cloud

Thanks

Thank you for taking the time to read my resume and look forward to the opportunity to work with you.

联系方式


个人信息


工作经历

普华永道信息技术(上海)有限公司 (2022年4月 - 至今)

Smart Rebuild

此项目采用微服务架构,使用Springboot和Angular框架,作为一个全栈开发,我主要负责User Story的工作量评估、功能实现以及单元测试。

天地自动化股份有限公司 ( 2019年4月 ~ 2022年3月 )

胶带机控制移动端

我在此项目负责开发基于ModbusTCP协议的胶带机控制移动端程序、以及基于RTSP流的皮带监控视频的接入,该项目基于智慧矿山基础信息平台移动端开发。

智慧矿山基础信息平台移动端

我在此项目负责基于监控类软件框架、BoilerplateBoilerplate-cordova,搭建智慧矿山基础信息平台移动端框架,负责开发维护基础模块,并提供其他子系统接入平台的统一方案。

产品授权系统

产品授权系统负责公司产品的防伪验证,主要模块包括提供给其他系统的sdk(采用golang编写,导出为c shared library)、负责与sdk交互以及与公司产品生命周期相关系统的数据同步(基于Nestjs)、用于查看和管理产品授权相关内容的管理系统(基于Angular)以及负责在特定网络环境协助sdk和服务器交互的javascript库(webpack)。

智慧矿山基础信息平台

我在此项目负责基于监控类软件框架搭建智慧矿山基础信息平台前端框架,负责开发维护基础模块,并提供其他子系统接入平台的统一方案。

报表组件

我在此项目负责整体系统设计、开发,采用Angular开发框架引入GraphQL作为报表数据源交互方式实现自定义报表单元格等常见功能,借鉴帆软报表、活字格等商业软件的交互设计,实现数据扩展、关联分组和表单设计等扩展功能。

软件许可授权功能组件

我在此项目负责系统设计和管理端的开发,包括离线许可授权、在线许可授权、许可授权管理等功能。提升了对项目的需求分析、设计以及系统架构的能力。

软件在线更新功能组件

我在此项目负责系统设计、客户端以及管理端开发,客户端部分使用Electron框架结合批处理脚本实现后台系统常驻、在线更新策略执行,更新预处理、后处理等通用在线更新功能。管理端基于Angular框架实现更新策略管理等功能,同时也能运行在客户端中进行本地的日志查看。项目采用了非平台原生架构,能在满足需求的同时保持较高的质量。

监控类软件框架

我在此项目负责基于Angular的前端框架和UI搭建,封装包括基于rxbus思想的事件总线库、基于lottie的动画组件库、基于less的动态主题渲染库以及一些常用的工具和组件。同时参考NG-ZORRO官网,搭建了一套业务组件库的开发框架,开发成员可以针对公司的业务更细化的进行业务组件的开发和重用,使用markdown进行组件文档编写并且动态生成组件库官网。此项目中我充分借鉴了已有的移动端开发经验,确保了开发效率和项目质量。

其他项目

其他开发的项目包括GitLab项目看板统计(Angular)、Nexus Repository Manager私有库列表(Groovy、Angular)、微服务管理平台(Angular)。

江苏国光信息产业股份有限公司 ( 2013年7月 ~ 2019年3月 )

排队叫号机安卓控制盒服务

我在此项目负责叫号机安卓控制盒服务的开发,控制盒服务主要负责控制无线设备包括窗口屏、综合显示屏、呼叫器、无线音箱等设备的工作,同时对外统一提供排队叫号的接口。该项目需要解决各平台之间的通讯协议、编码等转换问题,无线设备的串口操作、本地语音的高效播放(基于android的audiotrack流播放)、主从控制盒切换以及实现业务逻辑的高并发和时序队列等性能和功能要求。该项目使用kotlin语言开发完成,性能接近基于windows系统的控制盒服务,在此之前公司还未有在安卓平台下的相关产品。

湖北银行移动营销二期改造

我在此项目负责安卓客户端主程序、部分业务子程序的改造,以及部分新增业务的开发。通过应用内动态hook技术,在尽可能减少源代码修改的情况下,完成多处功能的优化和完善。之前并未参与前期的项目开发,但是能快速掌握项目架构并以最小的侵入方式完成对应的修改。

辽宁农信移动营销

我在此项目负责安卓客户端主程序以及基于html5实现的业务系统的架构设计和编码(cordova+ember.js),根据银行的业务特征开发了多个业务模板,方便维护人员根据需求基于业务模板进行配置来完成后续业务的二次开发。加深了我对hybrid应用架构开发的认识。

长春工商局互联网身份认证

我在此项目负责Android和iOS下的app开发(Android下采用最新的kotlin语言、iOS下采用最新的swift语言)以及后台微服务的开发(微服务采用的kotlin语言,使用类似springboot的超轻量框架blade),此项目使我对kotlin和swift语言有了较深的认识,同时做到Android和iOS下app源代码之间的高度相似和高度可移植性(原生层面上的架构、语言共性等,未采用任何跨平台框架技术)。类似的情况,我个人还和朋友合作过一个外包的应用,觅券儿,也是由我负责Android和iOS下的app架构和主要编码,目前在各大应用市场和Apple Store均有下载。

安徽农信安卓平板招标测试

我在此项目负责安徽农信安卓平板招标测试配合,负责开发招标要求的系统接口。由于公司提供给的平板采购于第三方的原因,平板系统并不能按照银行要求进行接口定制,在此情况下,我想到通过对xposed的改造(一款需要root并替换系统部分核心程序来实现hook从而改变系统逻辑的应用)以及插件的编写完成了相应的接口开发,但测试应用对系统安全性又提出要求,要求设备不允许root,之后我又通过hook将root权限获取的接口封死,使测试应用和其他应用都无法获取到设备的root权限(只有提供接口的应用可以获取root权限),并顺利通过测试。虽然后续招标因为种种原因未能落地,但这个项目加深了我对Android系统层面的认识,也体现了我的自学能力和钻研精神。

丹东银行智能柜台

我在此项目负责html5业务代码的编写,主要涉及的都是业务逻辑,其中关于现金业务的逻辑给我的映象最为深刻,存取款并不像字面那么简单,其中包含了大量和设备交互以及恢复异常的逻辑,加深了我对逻辑和流程的认识,同时也对JavaScript ES6语法有了一定的掌握。

四川农信集中授权二期

我在此项目负责四川农信集中授权客户端和后台管理系统的改造以及实施。这是我加入公司的第一个项目,对linux服务器部署实施有了较深的认识,整个四川省所有地市农信社的集中授权服务器最后都是由我定制的redhat系统安装包自动安装的(采用redhat的kickstart进行定制,一期的所有服务器都是前辈一个地市一个地市跑去部署,当然现在互联网公司可能会选择docker这样的方案)。

其他项目

其他开发的项目包括互联网可信身份认证(Android和iOS)、移动录音录像(Android)、通用蓝牙库(支持spp和ble)、手机助听器(Android)、以及各类移动金融外设驱动开发(Android)

开源项目和作品

开源项目

  • Filter:灵感源自于gradle构建器的dsl语法,Filter是一款通过采用dsl语法的形式来实现插件化的爬虫类应用,用户可以自行编写groovy脚本来获取喜爱的网站数据并在应用中展示,Filter提供了几种通用的布局展示。最新版本的Filter采用kotlin语言开发,目前已托管在蒲公英平台,强烈推荐下载体验。
  • Boilerplate:Boilerplate顾名思义就是开发模板,是日常开发中积累和总结出来的一些通用的东西,便于快速的开始进行安卓应用的开发。另外Boilerplate-utilBoilerplate-ipcBoilerplate-cordova也是几个常用的开发模板。
  • Lab:此项目是在Angular学习过程中开发的一个前端项目,包含了自己开发的一些Angular通用组件和特性,基于Electron封装客户端并提供下载。

作品

  • 觅券儿:一款淘客类APP,支持Android和iOS
  • 吉祥家私人定制:一款卷帘定制APP,支持WEB、微信小程序、支付宝小程序

技能清单

以下均为我熟练使用的技能

  • Web开发:Java/Node/Golang
  • Web框架:Spring/NestJS/Gin
  • 前端框架:Angular/Vue.js/React
  • 前端工具:NPM/Less/Gulp
  • 移动开发:Kotlin/Swift/Dart/Cordova/微信公众号/微信小程序/支付宝小程序
  • 数据库相关:MySQL/SQLite/Oracle/DB2
  • 版本管理、文档和自动化部署工具:Git/Travis
  • 单元测试:JUnit
  • 云和开放平台:微信公众平台/支付宝开放平台/腾讯云/百度云

致谢

感谢您花时间阅读我的简历,期待能有机会和您共事。