This document provides a summary of Han Yan's skills, education, and work experience. It lists Han Yan's contact information and outlines his extensive experience in areas such as Java programming, Python, machine learning, databases, and computer graphics. Specifically, it describes his current role as a senior backend engineer developing features for a healthcare app, and past roles developing recommendation systems, financial trade processing systems, and a dance video game.
1. Han Yan
Address: Room1002, Building 14, 1166 Guanglan Road, Pudong District, Shanghai, China
Mobile: +86-13041619832 Email: hanyanggg@hotmail.com
Skills
Java programming, backend architecture, database related skills:
Solid knowledge aboutOOP, data structures,algorithms,and common design patterns
Rich experience in core Java, J2EE, JVM optimization and multithreading programming
Specialized in Spring, nice understanding about its core,DATA, RESTFUL, JMS, JMX, TEST modules
Enough experience in building SOA, MVC, RESTFUL projects
Proficientin MySQL and skilled at ORACLE, handled various database performance tuning cases
Experienced in using NOSQL database,especiallywith MongoDB
Substantial data caching skills with GemFire and Redis,especiallywith large-scale server-side architecture
Python programming, machine learning, scripting languages related skills:
Very skilled atPython, Proficient in Django
Experienced with database migration with South and asynchronous processing with Celery
Basic searching engine skills with Elasticsearch and Haystack
Enough experience in constructing recommendation systems using SciPyand NumPy
Skilled at PHP and shell scripting,basic experience with RubyOn Rails
Researchskills:
Computer graphics and vision algorithms in C,C++, MatLab, OpenGL, OpenCV
Studied recommendation systems deeplythrough research and real work experience
Fundamental studyaboutdata mining and Hadoop technologies
Education
New York University New York, NY
Master of Science in Computer Science,January 2012 Overall GPA: 3.700
New York University New York, NY
Master of Science in Chemistry,January 2010 Overall GPA: 3.646
Nanjing University of Aeronautics and Astronautics Nanjing,China
Bachelor of Engineering in Material Science and Engineering,June 2006 Overall GPA: 3.37
Working Experience
Shanghai Kangkanghui Tech (Mobile healthcare startup) 09/2014-present
Senior Backend Development Engineer (Python)
Working as the core backend engineer in charge of developing major features of “Green Apple Healthcare”,
a professional social networking APP solely to ease communications between doctors and patients, providing
CRM and marketing solutions for doctors.
Accomplishments:
Created many importantfeatures such as conversation,broadcasting,gifting, leaderboard and so on.
Refactored the architecture of the entire project, adding service layer to separate logic of concerns, adding unit
test, optimizing the performance of Celery tasks and so on.
Enhanced MySQL database, performing denormalization for tables, separating reading and writing, adding
necessaryindices and so on.
Creating all business reports of the company and performing business data analysis on demand to help
leaders making decisions.
Dodopipe (Shanghai) Info Tech (Japanese Company) 03/2014-09/2014
Senior Software Engineer (Java and Python)
2. Han Yan
Address: Room1002, Building 14, 1166 Guanglan Road, Pudong District, Shanghai, China
Mobile: +86-13041619832 Email: hanyanggg@hotmail.com
Worked as the major backend engineer to develop the entire backend architecture and take charge of data
analysis and machine learning related projects.
Accomplishments:
a) Create the supplier recommendation engine for Deecorp Corporation (Python Project)
Extracted data from Oracle data and abstracteach transaction into a specific preference value about supplier.
Used MeCab to perform word segmentation for searching keywords and keywords in transactions.
Used Gemsim to convert word segments into feature vectors and find similarities between searching keywords
and transactions to find similar transactions.
Used Crab lib from Scikits to create preference matrix as corpus, and tried both K-Nearest Neighbors (KNN)
algorithm based on collaborative filtering and Singular Value Decomposition (SVD) algorithm based on
Latent Factor Model (LFM) to build the recommendation system.
Compared accuracy and coverage of two algorithms using LFM with different factors, and picked the SVD
algorithm under the optimal LFM as final recommendation model.
Used Django to build the web views of recommendation engine.
SVD algorithm tuning:
Dramatically enhanced LFM model generation process by training the entire corpus in advance using
Python multithreading and stored the result in several files, so that each recommendation can directly read
trained model from a target file instead of real-time training.
Greatly enhanced the Dynamic Programming algorithms and other details in SVD process, so that
extremely slow recommendations (due to the generation of very large preference matrices) is shortened from a
couple of days to tens of seconds,and the user experience is obviouslyimproved.
b) Develop LIFELOG, a wedding photos sharing APP (Java Project)
Strictly followed Scrum agile developmentand Test-Driven Development (TDD) process and cycles.
Built controller layer with Spring Restful and persistence layer with Spring Data JPA architecture.
Built service layer with Hexagonal Architecture (posts and adapters) so that the service layer is completely
separated with other layers, and the business logic can be thoroughlytested with all kinds of tests.
Managed the whole projectwith Gradle, and integrated auto deploymentinto Gradle with shell and Groovy.
Compared accuracy and coverage of two algorithms using LFM with different factors, and picked the SVD
algorithm under the optimal LFM as final recommendation model.
Used Django to build the web views of recommendation engine.
Citigroup Software Technology and Services (Shanghai) 10/2012-02/2014
Java Developer
Joined the investment-side of Citigroup to develop and enhance its Fixed Income Trade Processing System (TPS)
under its Institutional Clients Group (ICG) Department.
Concentrated on tuning the logic and the performance of Query Service ---- the core service in TPS that is
a distributed message processing and delivering platform based on TIBCO Enterprise Message Service (EMS)
and VMware GemFire caching technology.
Accomplishments:
Enhanced performance by adding a filter to filter out messages reporting intermediate states and set priority
in message header based on the importance ofthe trade state the message contains.
Dramatically improved performance by enabling concurrent message processing using auto member
detecting mechanism with GemFire locators via maintaining a group of Query Serivce servers in a distributed
3. Han Yan
Address: Room1002, Building 14, 1166 Guanglan Road, Pudong District, Shanghai, China
Mobile: +86-13041619832 Email: hanyanggg@hotmail.com
system, delivering only a portion of messages to each server based on selectors in message consumers in
each service, and using GemFire auto replication to get the restof messages through synchronization.
Dramatically improved starting time by skipping initial loading from database via establishing reliable
GemFire region replication mechanism between servers.
Reorganize the structure and boosted up the service by separating initial data loading logic from real-time
message handling logic via reconstructing the architecture of the handler classes and interfaces.
Achieve high availability by pairing servers into master and slave mode and adopting considerable auto
failover solution and emergencymanual failover strategy.
Strengthen the stability by enabling Concurrent Mark Sweep Garbage Collector (CMS GC) to avoid full GC
and inserting a cleaner in the code to auto clean stale messages which are removed from Gemfire region to
avoid hitting memorylimitduring running.
Other works:
Refactored and tuned performance of QcFig Service ---- a service that provides all the financial quality control
works and validations for messages thatcome from upstream systems.
Wrote all kinds of utilities in Java, Shell,Perl, and PL/SQL to for testing and repetitive tasks.
Backbone Entertainment (Emeryville, CA) 03/2012-09/2012
Software Engineer (C++ and Python)
Collaborate with HarmonixMusic Systems to develop Dance Central 3, a global Kinect-based XBOX360 game.
Accomplishments:
Build the whole achievementsystem from lastgeneration and other trivial features
Design and editgame UIcontents
Create handy utilities for testing and supportuse
Perform version control and all kinds of code merging tasks using Perforce
Fix various crushes, delay factors, and malfunctions, and solve frequent conflicts between game features due
to design changes