my newest resume

4
Han Yan Address: Room1002, Building 14, 1166 Guanglan Road, Pudong District, Shanghai, China Mobile: +86-13041619832 Email: [email protected] Skills Java programming, backend architecture, database related skills: Solid knowledge about OOP, 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 Proficient in MySQL and skilled at ORACLE, handled various database performance tuning cases Experienced in using NOSQL database, especially with MongoDB Substantial data caching skills with GemFire and Redis, especially with large- scale server-side architecture Python programming, machine learning, scripting languages related skills: Very skilled at Python, 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 SciPy and NumPy Skilled at PHP and shell scripting, basic experience with Ruby On Rails Research skills: Computer graphics and vision algorithms in C, C++, MatLab, OpenGL, OpenCV Studied recommendation systems deeply through research and real work experience Fundamental study about data 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

Upload: han-yan

Post on 18-Aug-2015

44 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: MY NEWEST RESUME

Han YanAddress: Room1002, Building 14, 1166 Guanglan Road, Pudong District, Shanghai, China

Mobile: +86-13041619832 Email: [email protected]

SkillsJava programming, backend architecture, database related skills:

Solid knowledge about OOP, 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

Proficient in MySQL and skilled at ORACLE, handled various database performance tuning cases

Experienced in using NOSQL database, especially with MongoDB

Substantial data caching skills with GemFire and Redis, especially with large-scale server-side architecture

Python programming, machine learning, scripting languages related skills:

Very skilled at Python, 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 SciPy and NumPy

Skilled at PHP and shell scripting, basic experience with Ruby On Rails

Research skills:

Computer graphics and vision algorithms in C, C++, MatLab, OpenGL, OpenCV

Studied recommendation systems deeply through research and real work experience

Fundamental study about data mining and Hadoop technologies

EducationNew 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 ExperienceShanghai 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 important features 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

necessary indices 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

Page 2: MY NEWEST RESUME

Han YanAddress: Room1002, Building 14, 1166 Guanglan Road, Pudong District, Shanghai, China

Mobile: +86-13041619832 Email: [email protected]

Senior Software Engineer (Java and Python)

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 abstract each 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 obviously improved.

b) Develop LIFELOG, a wedding photos sharing APP (Java Project)

Strictly followed Scrum agile development and 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 thoroughly tested with all kinds of tests.

Managed the whole project with Gradle, and integrated auto deployment into 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 of the trade state the message contains.

Page 3: MY NEWEST RESUME

Han YanAddress: Room1002, Building 14, 1166 Guanglan Road, Pudong District, Shanghai, China

Mobile: +86-13041619832 Email: [email protected]

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

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 rest of 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 emergency manual 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 memory limit during running.

Other works:

Refactored and tuned performance of QcFig Service ---- a service that provides all the financial quality control

works and validations for messages that come 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 Harmonix Music Systems to develop Dance Central 3, a global Kinect-based XBOX360 game.

Accomplishments:

Build the whole achievement system from last generation and other trivial features

Design and edit game UI contents

Create handy utilities for testing and support use

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