Resume

Sign in

Software Developer Engineer

Location:
Stamford, Connecticut, United States
Posted:
May 20, 2018

Contact this candidate

Resume:

IGOR HERSHT

*** **** ****

STAMFORD CT, *****

Phone: 718-***-****, E-mail: <ac5i7w@r.postjobfree.com>

OBJECTIVE: A position as a C++ Software Developer.

HIGHLIGHTS:

Over 20 years of experience in Software Development.

Over 17 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 20 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.

EXPERIENCE:

Senior Software Developer (VP) 09/18/2017 – present

Goldman Sachs

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 06/09/2014 - 09/15/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) 11/26/2012 – 06/06/2014

Algorithmic Trading System

Societe Generale

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 05/16/2011 – 03/28/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) 11/23/2009 - 05/11/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 05/26/2008 – 11/20/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) 11/13/2006 – 03/14/2008

Morgan Stanley

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

IBM Canada,

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

IBM Canada,

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,

EDUCATION:

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.



Contact this candidate