■ Objective: To apply for the permanent full-time position of Quantitative Developer, C++ Developer, Software Engineer in financial services industries in greater New York City area
■ Technical Skills:
● 10+ years (8 years in company and 6 years in research lab: Scientific high-performance grid parallel & distributed
computing, High-frequency low-latency large-size data exchange, Time-critical application development , Object-
oriented Design, Design Pattern, gprof, google CPU profiler, gcc/g++ compiler, GDB/Valgrind Debugger,
Cygwin-based UI experience with C++ development environment, Quantitative analysis, High-performance
messaging, Compute clusters, CPU architecture Intel/AMD/Multi-core processor parallelism) strong skills and hand-
on experiences of designing, debugging and technical troubleshooting of high-performance computing) C/C++
(STL/Boost) program from small to very large scale Unix/Linux (shared & distributed memory) systems (with 3000+
CPUs)
● 5+ years experiences with concurrent programming (Linux POSIX multithreading & multiprocessing, IPC, inter-
thread message passing, thread synchronization, boost thread pool usage, high-frequency message exchange among
threads); Solid understating of computer hardware/software architecture; Strong working knowledge of Linux;
Experiences of network (socket) programming (TCP/IP) and Python; Basic knowledge of SQL
● Solid understanding of data structures (e.g. Binary Search Trees, Linked Lists, Vectors) and algorithm
design/implementation techniques; Basic knowledge of High Frequency Electronic Trading
● Demonstrated knowledge of financial instruments (derivatives pricing, options, equities, futures and options,
arbitrage analysis for options by put-call parity, convexity analysis, bull/bear/butterfly spread, binomial pricing
models) and financial analysis for investment; Passed CFA level 1 exam
● 10+ years experiences of using C/C++ program debug and memory-leakage-check tool (gdb, Valgrind) to debug C/C++
Program and analyze/optimize program algorithm performance by Google CPU profiler
● 6+ years hand-on experiences of design and implementation operations research models (linear/integer programming)
by C/C++ and solid understanding of numerical methods to solve numerical optimization models
● 5+ years programming experiences of designing/implementing mathematical optimization techniques (linear/integer
programming models) by C/C++ and solving them by calling solvers’ APIs, e.g. CPLEX or Lp_solve5.5 (an open
source solver)
■ Projects of Statistics Analysis, Financial Derivatives Development and Classical algorithm/data-structure
Development
● Used binomial pricing (single/multiple period) models to perform pricing for American/European call/put options
● Designed and implemented a statistics class that computes the first four moments (mean, variance, skewness, kurtosis)
of a sample from Gaussian Distribution by C++ STL
● Designed and implemented a function (by C++ STL) that can generate random variables that obey Gaussian
distribution, it can transform uniform distributions to normal distributions with polar forms of the Box-Muller
transformation which is faster and more robust numerically than its basic forms
● Designed and implemented a Newton–Raphson routine (by C++ STL) so that it does not endlessly loop if a root is not
found within a given time budget. It can be used to find a reasonable solution in a reasonable time in the process of
searching solutions for option prices by Black-Scholes formula
● Designed and implemented some routines (by C++ STL) that can compute payoff of vanilla options with option names
and strike prices as input arguments
● Designed, implemented and tested a C++ routine that can build a singly linked list and print its elements backwards
with STL container – stack
● Designed, implemented and tested a C++ routine that can pre-order/in-order/post-order traverse a binary search tree
recursively or iteratively without stack overflow
● Designed and implemented SAS program that perform linear regression analysis for models (with 1000+ variables)
■ Summary of Experiences and knowledge of working and research (8 years in a company and 6 years in a research lab)
● 1995-2003 Software Engineer, RuanShuTong Software Development Company, Tianjin, China. Designed and
implemented parallel computing algorithms to improve the performance of solving large-scale numerical problems on multi-
processor systems
● Used STL library to design C++ programs (e.g. multiprocessing & multithreading) of parallel & concurrent (grid)
computing algorithms for large-scale numerical problems (with large-scale data computing)
● Used Object-oriented programming to design/implement (C/C++) high-performance parallel computing algorithm
for numerical models (e.g. designed and implemented parallel algorithms to solve large-scale multi-objective optimization
models with tens of thousands of variables on a 3200-cpus Linux cluster systems and obtained linear speedup)
● Used GDB to debug C/C++ programs; Analyzed and optimized the program by finding “hotspot” part of them with profile
tools, e.g. gprof
● Fall 2005 - now, research assistant of electrical and computer engineering department at Iowa State University, focus on solving
network flow problems by multithreaded/multiprocessed parallel low-latency high-performance computing algorithm
design and implementation with objected-oriented programming language (C++) for quantitative optimization models,
which require satisfying commodity demands meanwhile minimizing total commodity generation and transmission costs under
some tough constraints; This research work can be used to do (commodity supply chain) industry investment planning
● Used STL/Boost library to design/implement C/C++ programs (e.g. multiprocessing & multithreading, MPI,
boost::thread, pthread) of parallel & concurrent (grid) computing algorithms for large-scale network flow (mathematical
computing) problems multi-processer systems
● Designed and implemented a task scheduler (by C++) that can distribute computing tasks on Linux multi-core-processor
(cluster) systems and achieved linear speedup, e.g. 20x performance improvement by approximate 20 processors
● Used memory leakage check tools to debug C/C++ programs (e.g.Valgrind); Analyzed and optimized C/C++ program
with profile tools, e.g. google CPU profiler
■ Education:
● Fall 2005 - now, Ph.D. candidate (focus on multithreaded/multiprocessed low latency, high-performance algorithm design
and implement by C++, quantitative model/data analysis) of Computer Engineering at Iowa State University, USA. (I am
available in November 2011, willing to relocate)
● Fall 2003 - Fall 2005, Technical University of Denmark. Graduated with Master of Science (computer engineering) in Fall
2005
● Fall 1991 - Fall 1995, Tianjin Technical University, Tianjin, China, Graduated with Bachelor of Engineering in Fall 1995
■ Relevant Coursework:
● Advanced Mathematics (Univariate/Multivariate calculus; Linear algebra)
● Computer Processing of Statistical (data structure; content and programming aspects of SAS; advanced techniques in the use of SAS for data analysis including statistical graphics; regression diagnostics; and complex analysis of variance models)
● Design and Analysis of Algorithms (a study of basic algorithm design and analysis techniques; advanced data structures; applications to sorting, graphs, and geometry)
● Parallel Algorithms and Programming (parallel computation; performance measures; basic parallel constructs and communication primitives; parallel programming using MPI; parallel algorithms for selected problems including sorting; matrix, tree and graph problems)
● Convex Optimization for Systems Engineering Analysis and Design (abstract algebra, linear algebra, real analysis, functional analysis, and optimization methods in electrical engineering)
● Computer Systems Architecture (quantitative principles of computer architecture design)
■ Awards and honors:
● NSF-EFRI (National Science Foundation - Office of Emerging Frontiers in Research and Innovation) scholarship (August 2008- present)
● Session chair at the 20th International Symposium on Mathematical Programming Chicago, U.S.A., August 23-28, 2009 (the conference is held once every 3 years). Participants included five future recipients of the Nobel Memorial Prize in economics and six future recipients of the John von Neumann Theory Prize in operations research and management sciences
● Tuition Scholarship of Technical University of Denmark (Fall 2003 - Fall 2005)
● Iowa State University graduate student travel grants ($200) for presenting an academic paper in the above conference