Phone: 718-***-****, E-mail: <firstname.lastname@example.org>
OBJECTIVE: A position as a C++ Software Developer.
Over 25 years of experience in Software Development.
Over 20 years in Programming with C++.
Over 10 years in financial software development (Trading Systems, Equity Derivatives FIX protocol, Credit Risk,).
Over 8 years in C++ compiler and runtime (including STL) development.
Over 25 years in UNIX/ Linux and over 5 years in WINDOWS development.
Over 3 years in Java development.
Ph. D. in Theoretical Physics.
LANGUAGES, COMPILERS AND TECHNOLOGIES:
C++, C++11/14, BOOST, STL, TCP, Multithreading, Sockets, RPC, Performance oriented design. Low level optimizations (including atomic-lockfree). C++ Templates and Meta Programming.
Low latency and high throughput asynchronous C++ servers.
High frequency low latency algorithmic trading system design development and optimization. Exchange connectivity and market data. FIX and binary protocols. Equity Derivatives trading algorithms and pricing.
Open source https://github.com/IgorHersht/proxygen_ih, apache committer status.
Folly, Wangle, Proxygen, FbThrift, Protobuf, ZMQ, Kafka, Zookeeper.
Java, C#, XML, Perl, SQL, SYBASE, Oracle.
C++ compilers (gcc, msvc), profilers, debuggers, and code analyzers (e.g. VTune, Valgrind). QuickFIX, VeriFIX, RogueWave, ACE, RPC, Corba, ICU, XML, XSLT, DOM, SAX, CVS, SVN, Perforce, Git.
Senior Software Developer (contract) July 2018 – present
1221 Avenue of the Americas, New York, NY 10020
Designed and developed “trade subscription”, “product subscription” and “position subscription” low latency and high throughput clients and servers.
Redesigning “product loader” multi-process infrastructure (~ 20 processes) into single multi-threaded concurrent application.
The business goal to decrease loading time ~ 10 times and to eliminate numerous problems related to assumed timing of the processes.
Fixed numerous bugs ( race conditions, deadlocks, memory problems … ) and implemented some optimizations in “request-response” service provider application (fsp).
Common C++ utilities development.
Provided with level 2 customer support.
C++, Linux, C++14, Multithreading, BOOST, Sockets, SYBASE, XML
Senior Software Developer (VP) Sep. 2017 – July 2018
200 West Street, New York, NY 10282
C++ platform and common libraries development.
Designed and developed low latency and high throughput “transaction subscription” C++ server (based on boost::asio).
Performance oriented asynchronous design.
C++, Linux, Windows, C++11/14, Sockets, Multithreading, BOOST
Senior Software Developer June 2014 – Sep. 2017
Rocket Fuel Inc ( X+1)
50 Washington Street, South Norwalk, CT 06854
C++ low latency server development.
Designed and developed C++ low latency and high throughput C++ http server (based on Folly, Wangle, Proxygen). Moved company DMP to CentOS 6, C++11/14, latest BOOST, low latency http server.
Designed and developed Kafka, Thrift, Zookeeper, ZMQ C++ client APIs. .
Performance oriented design and implementation (atomic-lockfree multithreading, maximizing CPU caching. no data copy … ).
C++, Linux, C++11/14, Sockets, Multithreading, STL, BOOST, Folly, Wangle,Proxygen, FbThrift, Protobuf, ZMQ.
Senior Software Developer (VP) Nov. 2012 – June 2014
Algorithmic Trading System
245 Park Ave, New York, NY 10167
C++ high frequency low latency algorithmic trading system.
Development, optimization and support of equity options trading system, which includes options Price Server (C++ on Linux), high frequency low latency algorithmic trading system (C++ on Linux), pilot (C# on Windows).
Price Server development and optimization. Redesigned and optimized the pricing system to make it scalable and to increase throughput. Numerous pricing model improvements. Implemented international markets pricing .
High frequency trading system development. Performance optimization (compile time mapping and recalculation, no virtual functions, atomic-lockfree multithreading, no data copy and no memory allocation on hot path, TCPIP optimizations, maximizing CPU caching … ). Implemented numerous trading algorithm improvements. Designed and developed manual order subsystem. Adapted the new regulations (integrating "external" security components …).
Pilot (C# on Windows). Designed and developed new Pricing Server interface. Rewrote historical options pricing. Optimized network communication with the Price Server and the Pilot.
Worked on improvement of configuration and monitoring tools. Bug fixing, trading support, monitoring and troubleshooting.
C++, Linux, C++11, BOOST, STL, Template Design and Meta Programming, Multithreading, Sockets, VTune, Valgrind, C#.
Options pricing, high frequency algorithmic trading system.
Senior Software Developer
Trading System development May 2011 – March 2012
BGC Partners (ESpeed)
499 Park Avenue, New York, NY 10022
C++ high frequency low latency trading system (matching engine) development and optimization.
Designed and developed C++ FIX adapter infrastructure from scratch (FIX –> Espeed Protocol -> Trading System-> Espeed Protocol -> FIX, as well as FIX –> Trading System->FIX). Implemented support for multiple Trading Systems and FIX versions. Performance oriented design (compile time mapping and precalculating, no virtual functions, atomic-lockfree multithreading, no data copy and no memory allocation on hot path, maximizing CPU caching … ) The first version met performance requirements and showed ~ 10 times performance improvement compared to existing Java FIX adapter. Implemented and tested basic business functionality.
Provided conditions (placeholders for not implemented business functionality, docs, design and code explanations) for developers who joined the C++ FIX adapter project later. Conducted regular code reviews.
Started working on redesigning and rewriting of FIX engine (QuickFIX). Main goals are: fixing QuickFIX functionality, improving QuickFIX performance ~ 5 times, changing interface to allow the C++ FIX adapter further optimizations. Using C++11 with g++.
Worked on Espeed protocol trading system decoder and encoder optimizations.
Designed and developed multiplatform C++ XML based trading system configuration infrastructure(include and merge functionality, Schema types and validation).
Software: C++, Linux, BOOST(asio, thread, lockfree, atomic, endian, …), STL, C++11, Template Design and Meta Programming, TCPIP, Multithreading, Sockets, FIX protocol, Espeed Protocol, XML, XML-Schema, QuickFIX, Verifix, SYBASE, g++, VTune, Valgrind.
Senior Software Developer (VP) Oct 2009 - May 2011
Bank of America (Merrill Lynch)
Equity Linked Technology
222 Broadway, New York, NY 10038
Trading System and Market Risk development .
Abstraction Layer client API (XML over TCPIP). Template-based performance oriented design (from scratch), and development.
Optimization (including multithread and socket optimization) and redesigning, server components (Request Router, Transport Layer). Rewrote the Request Router connection pool.
Working on replacing RogueWave libraries with BOOST, STL, DAL client API.
Support, bug fixing, code refactoring and cleaning, reorganizing build and runtime environment.
Profiling, optimization and bug fixing trading system back-end.
Software: Linux, C++, BOOST, STL, Template Meta Programming, Multithreading, RogueWave, ACE, TCPIP Sockets, XML, SAX, DOM, SQL, Oracle. TinyXML,
Equities, Derivatives ( Options, Futures), Real-Time Market Data Feeds, Valgrind.
Senior Software Developer May 2008 – Oct 2009
Trading System development
BGC Partners (ESpeed)
499 Park Avenue, New York, NY 10022
High frequency low latency trading system (matching engine) development.
Ported majority of BOOST libraries (including, asio, date_time, thread, smart_ptr, serialization) to VMS. Worked on TCP BOOST asio optimization (both synchronous and asynchronous).
Porting trading system components to C++ Linux.
Market data development. Wrote real time monitor (back-end and TCPIP parts).
Software: C++, Linux, BOOST, STL, TCPIP(boost::asio, boost::thread…), Template Meta Programming, Multithreading, RPC, Low level system development(paging, alignment, …). XML, XML-Schema, Xerces,VeriFIX, SYBASE, VMS,
Derivatives ( Options, Futures), Real-Time Market Data Feeds, VTune, Valgrind,
Software Developer (AVP) Nov 2006 – Apr 2008
Credit Risk Department
1633 Broadway, New York, NY 10019
Credit Risk framework development.
Worked on market generator components of the Credit Risk framework.
Main focus on this work was improving performance of the framework in the distributed environment. Redesigned and redeveloped market builder (‘What If” stress application) for not simulated markets. Rewrote database interface for simulated markets (FX, Interest Rate, and Equity ). Designed and wrote new market generator engine for simulated markets. Adjusted Commodity and Credit Spread models to work with this framework.
Designed and developed new pricing framework for linear (Forwards, Futures, Swaps, Cash Payments) Commodity based derivatives.
Software: Linux, C++, SQL, Perl, Rogue Wave, Powerllel, STL, BOOST, SYBASE, VTune,
Derivatives (Forwards, Futures, Swaps, Cash Payments, Options).
Senior Software Developer (Contract) Jul.,2005 –Nov 2006
Thomson Financial (Ronin Capital)
230 S LaSalle St Ste 8-100
Chicago, IL 60604
Trading System development
Wrote support for CBOE Exchange FIX (Hybrid) connectivity (including Order Routing and Market Making). Certified the implementation and supported traders. Helped with development of FIX code and bug fixing for CME and ISE Exchanges.
Worked on extending functionality and improving performance of Algorithmic Trading (Electronic-Eye) and Quote Processing (Market Making) sub-systems. Designed and implemented Quote-Size and Quote-Edge distribution tables. Wrote performance monitor functionality. Designed and developed trade registration functionality.
Implemented new enhancements according to traders requirements in different part of the Trading System.
Fixed Income project:
Started working on Fixed Income project. Wrote IDL (ExBond) parser, which
injects Bond Pricing, and Terms and Conditions (daily and historical) into database.
Started working on Floating Coupon analytics.
Software: WINDOWS, C++, SQL, MS Visual Studio 2005, MS SQL Server 2005, Win32 API, STL, BOOST, ACE, Multithreading, QuickFIX, FIX simulators, VTune.
Option, Fixed Income.
Staff Software Developer Aug., 1999 – Jul.,2005
Compiler Technologies team
Toronto Software Lab.
8200 Warden Avenue, Markham, Ontario L6G 1C7
VisualAge for C++ Project:
Main work has been done in AIX and OS390 environments. Considered to be one of the most productive members of the compiler Front-End team.
Took part in porting of VisualAge for C++ Front-End on OS390 (versions zosv1r2, zosv1r4, and zosv1r6).
Designed and developed support for OS390 file systems. Using this support one can “mix” HFS(UNIX), PDS, and DD:NAMEs within one compilation unit and compile the unit from both OE(UNIX) and TSO(native OS390) environments. File system “related” functionality (like tempinc, listing ...) has been reworked correspondently.
Designed and implemented functionality for both native OS390 and emulated IEEE floating types (binary image, arithmetic, conversions and so on). This work has been done by modifying existing (shared between front-end and back-end) arithmetic library and using the library in the front-end.
Worked on porting of Object Model related functionality (alignment on 64 bit AIX, alignment on OS390).
Designed and developed options and pragmas FLOAT, ROUND, OE, SEARCH, LSEARCH, TEMPINC, STRICT, EVENTS, EXPMAC, WARN64, pragma pack, pragma map, pragma align ... .
Opened about 200 defects. Fixed more than 400 defects in different areas of the Front-End and arithmetic library.
Owner of arithmetic library and C++ Front-End preprocessor.
Started working on implementation of Common Debug Architecture.
OS: UNIX (AIX 4.3 ), WINDOWS 2000, OS390.
Software: C++, STL, UML, Perl, Unix Shell Scripts, REXX, CLIST, JCL,
VisualAge for C++, Rational Rose, Visual C++ 6.0
XML parser and transformation (XSLT) Project:
Supported and implemented new functionality for IBM (in particular as part of the IBM JDK and Open Source XSLT processors (Xalan and XSLTC).
Designed and developed new (XSLT2.0 and XPath2.0) functionality. Main focus of this work was on the new base frameworks – Schema types and Collation. Schema types work includes both built-in and user defined types with implementing XPath as a strongly typed language.
Designed and implemented Internationalization (Unicode standard - 4.0.1) support for the new XSLT2.0 and XPath2.0 standards, including Collation, international friendly string search, Unicode normalization, number formatting and date-time formatting.
Designed and developed new XSLT2.0 and XPath2.0 elements, operators and functions.
Worked on improving performance of Open Source (apache) and IBM XSLT processors (XALAN and XSLTC). Analyzed and profiled exiting benchmarks and wrote new ones. Fixed some performance bugs. Redesigned and rewrote some performance critical functionality. Wrote new performance driver and integrated over 200 benchmarks.
Fixed functional defects in both XALAN and XSLTC.
OS: UNIX (AIX 4.3 ), WINDOWS, OS390.
Software: Java, UML, C++, STL, C#,
XML, XSLT, XML Schema, DOM, SAX, XPath,
UNICODE,WebSphere/Eclipse, Rational XDE, Jprobe, MS Visual Studio .NET, MSXML, Xalan, XSLTC, Xerces, Saxon, ICU.
Senior Software Engineer (Web Developer) Feb. 1999 – Jul., 1999
Front-End Team, Drugstore.com,
13920 SE Eastgate Way, Bellevue, WA 98005
Wrote and documented “Performance Monitor Adapter” - a tool flexible enough
to export various custom performance counters from different kinds of applications into NT Performance Monitor. Implemented some performance counters on Front-End of Drugstore.com Web Server.
Analyzed performance of Drugstore.com Web Server using created counters,
Vtune and VC Profiler. Fixed “critical” performance bugs in Order Processing Components.
Software C++, STL, COM, ATL, ASP2
WINDOWS NT 4.0 Sever, (Win32 API, NT 4.0 Option Pack – IIS 4.0, MSMQ),
NT Services, Visual C++ (Debugger, Profiler), Vtune, Visual Source Save.
Senior Software Engineer Nov., 1997 – Feb. 1999
VC++ Compiler team
Digital Equipment Corporation
14775 NE 24 Street, Bellevue, WA 98007
Worked on VC Compiler Performance. Wrote Test Drivers and measurement tools.
Analyzed results of measurements and started performance debugging on Alpha.
Took part in porting of Visual C++ Compilers (VC5 and VC6) on NT4 on Alpha.
Helped NT team in debugging of NT5 on Alpha.
Considered to be a “Language Layer”, helped team people with understanding
bits of code (test-cases, libraries, compilers and NT5 source code) containing
new C++ features (e.g. template code, namespaces and STL implementation).
Software C++, STL, COM, Perl,
WINDOWS NT 4.0, 5.0 (Win32 API, Tools, Debuggers, Resource Kit, SDK ),
Visual C++ Compilers (VC5 and VC6) tools and debugger. Visual Source Save
Test Suites and Drivers
Software Engineer (contract AiC) Oct., 1996 - Nov., 1997
VisualAge 4.00 for C++ Compiler Team
Toronto Software Lab.
1150 Eglinton Av., E., North York, Canada
Took part in porting C++ Standard Library on VisualAge 4.00 for C++ compiler. The challenge was in building the library with ALL new C++ features (like member templates and partial specialization) turned on.
Worked on testing of VisualAge 4.00 for C++ kernel (the first compiler which must support ALL new C++ features) against latest Drafts (September 1996, December 1996, and September 1997 ) of C++ Standard. The focus and challenge of this testing is on new ANSI Features e.g. templates - partial specialization, member templates, default template parameters …) as well as placement delete, exception specifications and so on.
OS: UNIX (AIX 4.3 ), WINDOWS, OS390.
Software C++, STL, Perl, Unix Shell Scripts.
VisualAge 4.00 for C++, Visual Age 3.5, Visual C++ 4.2, Visual C++ 5.0 Borland 5.0,
Test Suites and Drivers, CMVC,
Ph. D. in Theoretical Physics, 1986 – 1989
Department of Physics
Perm University, Perm, Russia.
M. Sc. in Theoretical Physics 1976-1981
Department of Mathematical and Theoretical Physics
Ural University, Sverdlovsk, Russia.
REFERENCES AND THE LIST OF PUBLICATIONS : available upon request.