Professional Experiences

Baymax Ltd.

Freelance Programmer,Web Developer • Mar, 2016 — Present

As Freelance full-stack programmer and Web Developer, I developed customized websites and web applications for our customers using ReactJs/JQuery/Angular/Javascript on the frontend, and NodeJs/Java/Web Services/PHP on the backend. The websites & Web Apps I developed are yoyochinese.com, housesitmexico.com, lhub.ca, aiabtech.com, hometown-construction.ca, baymaxconsulting.com, netcomponents.com, unihopper.com,ilufian.com entennialcollege.ca, idefence.com , chequeselect.com, etc. Web APIs/Services I developed are webConference, eCon CRM, iScheduler App, SharePoint Web Services, etc. Here is my technology stack:

  • Web Dev (e.g.Javascript/Php/ReactJs/Angular/NodeJs/WordPress)
  • Java EE(Servlet/Spring Boot/Camel/Hibernate)
  • Mobile Dev(Android/IOS Native and Hybrid based on Cordova/Ionic)
  • TCP/IP Communication & Live Streaming(Encoder, Decoder, Websocket, Flash & WebRTC on Wowza and Kurento )

D+H Corp.

Senior Java Developer • May, 2012 — Mar, 2016

As a senior developer, actively leads the team on the application architecture, design and developing software applications using the latest J2EE technology and SOA methodology. Projects developed include CCV3/CCV4 Cheque Ordering System, eCatalogue, iDefence system, etc. More projects can be found at the project section below

WebKrew Inc.

Full-stack Software Developer • Jun, 2009 — May, 2012

Working as full-stack software developer, developing internal online transaction applications and internal statistic tools using Core Java and J2EE technology; Maintain and enhance existing websites through frontend javascript/Ajax programming; Develop Unix cron job scripts to do auto cleanup for the existing application system.

Education Background

Wuhan University , China

Master of Computer Science      •      Bachelor of Computer Science

Project Examples

Web Video Conference System

• A web application with frontend built with websocket/webRTC/Ajax/Vue/Bootstrap, backend built on NodeJs, Media server uses Kurento

Thinking of own your own WebEx and GotoMeetings? I built the same thing in this project which has all the features that WebEx/GotoMeeting have. Actually, mine is better because I have made it highly customizable and stable and will continue to improve it until it becomes one of our major products

ezCon CRM Integration Component

• A Java service component built with Apache Camel, Spring Boot, RabbitMQ and Apache Karaf,

This is java service I developed using Apache Camel to integrate various of data sources of our CRM system. This component allows us to remove those original various of integration, transformation and encryption JARs in the existing CRM portal which often caused problems for strong coupling and complicate dependency. By using RabbitMQ, I also set up an in-memory queueing to prevent overloading of certain incoming feeds

2Way Communication Systems

•A Web application with frontend built by html5/Js/Flash, and backend built on Java and Wowza as Media server

Wowza based internal media systems, support 2way communication. Since Wowza just announced they start fully support WebRTC recently, I am improving this to work via WebRTC too. I am also adding more IP call features to make it be a customizable free-to-use internet video call app

eHR Mobile App

•A hybrid mobile app developed using Cordova/Ionic, therefore can run on both Android and IOS devices; backend is built on JavaEE as integration gateway, connecting to various of DB

digitize the HR approve process on all kinds of request. Developed using Cordova/Ionic/AngularJs/JQuery

eScheduler Mobile App

•Native mobile app developed on Android, its backend is built with Java , Spring Boot and Oracle

used to manage the process, time and place of internal conference, Developed in Java, built on Android platform

Sharepoint Web Services

• A Restful Java Web service developed using Java, Spring, Web Services, Sharepoint API, running on Websphere

The purpose of this project is to allow users to do common CRUD operations into Sharepoint system from the browser directly. One of the tricky problems that I resolved in this project is the special NTLM V2 authentication in Sharepoint system. There were no any existing web services can do it in the market, I finally developed a special JAVA HttpClient component that overrides the original "NTLMEngineImpl" class to support NTLM V2. This solution works well perfectly and is able to pass all the authentication no matter the browser end users come from the same domain or not.

Central Payment System

• A payment system built via JavaEE SSH(Struts/Spring/Hibernate) and Oracle DB

This is a web application provides the centralized step-by-step payment process to upper-level fulfillment applications. It incorporates a powerful template engine that allows each payment step to be customized according to the specific request of fulfillment applications and various adapters to update back the payment result.

Cheque Ordering System

•A typical comprehensive J2EE System(Servlet/EJB/Spring/AOP)

This is a very complex system to take and process the order of cheques from banks and their customers, its complexity is not caused by technologies it used, but caused by the business logic and security it needs to implement as it has to satisfy the needs of different banks, therefore, it uses many module adapters in every layer ,very complicate PL/SQL statement and various of encrypting/decrypting algorithms

eCatalogue Web Application

•A Java Web Application with backend built by Servlet/SpringMVC/Hibernate and frontend built by HTML5/Javascript/Ajax/JSON

For customers to browse and subscribe online catalogues of various cheques and related products

Dashboard Web App

•Web Application with backend built by php on wordpress,backend calls web services from the AWS Cloud

For staff to login,manage their working time, log their tasks,and also some statistics metrics and report

Skills Summary

FrontEnd Web Development (HTML5/Javascript/Ajax/Bootstrap/AngularJs/NodeJs/React/Vue)

Frontend development is much more active than before, it is also my focus in the most recent 4 years. Customers feel our product mostly from frontend rather than backend. Javascript and its related frameworks have been growing explosively in recent years and are sometimes even overused by FE developers. My principle on JS and FE dev are: 1) Separate the UI from the controllers(business logic) as possible as you can, that is why I like using page template framework like handlebars Js.etc.; 2) Simplify the interface between frontend and backend because users might need to change frontend UI more often than before; 3)Take account of and try to resolve those security concerns and put Js in server side if no other better way because Javascript is easier to be compromised.

BackEnd Software development (CoreJava, JavaEE, Spring Boot, Apache Camel, Apache Karaf,Oracle PL/SQL)

I can present you hundreds of fancy design and frontend (or mobile) prototypes with smart navigation, but without a backend, none of them is useful. I have been developing backend JavaEE solution for 10+ years, for every project that I developed, I also developed backend completely on my own. That's why I name myself as full-stack programmer. A proper System architecture is the most important during backend development, it should adapt to client's various business needs/logic, and at the same time, it should evolve as technology evolves(e.g. Cloud computing is popular now)

Mobile App Development (Android/IOS/Cordova)

There are many pitfalls here in mobile development because it is a system project, incorrect architecture and design might cause a big impact on your app's performance. I do mobile app design and development for both android and ios platforms.

Solutions Architecture, System Integration and Cloud Computing (AWS/Salesforce/EIPs/Apache Camel/WebMethods,etc.)

No matter you do it explicitly or not, Analysis/Architecture/Integration is always an inevitable very important step. The key here is stability, flexibility and cost saving. As a certified AWS Solutions Architect and senior J2EE Devloper, I have tons of experiences on this to do this on cloud in a perfect way which will significantly save your later development efforts and cost.

Certification

AWS Certified Solutions Architect

Amazon • 2020

Certified Mobile Developer

Google • 2017

Certified Systems Integrator

IBM / Software AG • 2010, 2014

Certified Java Developer

Oracle / Sun • 2009