Senior Software Developer Resume
New York, NY
SUMMARY:
- 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.
TECHNICAL SKILLS:
- 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 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.
PROFESSIONAL EXPERIENCE:
Vice President
Confidential, 200 West Street, New York, NY
Responsibilities:
- 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.
Environment: C++, Linux, Windows, C++11/14, Sockets, Multithreading, BOOST
Senior Software Developer
Confidential, 50 Washington Street, South Norwalk, CT
Responsibilities:
- 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 … ).
Environment: C++, Linux, C++11/14, Sockets, Multithreading, STL, BOOST, Folly, Wangle,Proxygen, FbThrift, Protobuf, ZMQ.
Senior Software Developer
Confidential, 245 Park Ave, New York, NY
Responsibilities:
- 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 precalculating, 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.
Environment: 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
Confidential, 499 Park Avenue, New York, NY
Responsibilities:
- Designed and developed C++ FIX adapter infrastructure from scratch (FIX - > Confidential Protocol -> Trading System-> Confidential 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 Confidential 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).
Environment: C++, Linux, BOOST(asio, thread, lockfree, atomic, endian, …), STL, C++11, Template Design and Meta Programming, TCPIP, Multithreading, Sockets, FIX protocol, Confidential Protocol, XML, XML-Schema, QuickFIX, Verifix, SYBASE, g++, VTune, Valgrind.
Senior Software Developer
Confidential 222 Broadway, New York, NY
Responsibilities:
- 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.
Environment: Linux, C++, BOOST, STL, Template Meta Programming, Multithreading, RogueWave, ACE, TCPIP Sockets, XML, SAX, DOM, SQL, Oracle. TinyXMLEquities, Derivatives ( Options, Futures), Real-Time Market Data Feeds, Valgrind.
Senior Software Developer
Confidential, 499 Park Avenue, New York, NY
Responsibilities:
- 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).
Environment: 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, VMSDerivatives ( Options, Futures), Real-Time Market Data Feeds, VTune, Valgrind
Software Developer (AVP)
Broadway, New York, NY
Responsibilities:
- Worked on market generator components of the Credit Risk framework.
- Designed and developed new pricing framework for linear (Forwards, Futures, Swaps, Cash Payments) Commodity based derivatives.
Environment: Linux, C++, SQL, Perl, Rogue Wave, Powerllel, STL, BOOST, SYBASE, VTuneDerivatives (Forwards, Futures, Swaps, Cash Payments, Options).
Senior Software Developer
Confidential, Chicago, IL
Responsibilities:
- 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
Responsibilities:
- 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.
Responsibilities:
- 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
Confidential Canada Toronto Warden Avenue, Markham, Ontario
Responsibilities:
- 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.
Environment: C++, STL, UML, Perl, Unix Shell Scripts, REXX, CLIST, JCLVisualAge for C++, Rational Rose, Visual C++ 6.0
XML parser and transformation (XSLT) Project
Responsibilities:
- Supported and implemented new functionality for IBM (in particular as part of the Confidential 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 Confidential 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#,
Environment: XML, XSLT, XML Schema, DOM, SAX, XPathUnicode,WebSphere/Eclipse, Rational XDE, Jprobe, MS Visual Studio .NET, MSXML, Xalan, XSLTC, Xerces, Saxon, ICU.
Senior Software Engineer
Confidential.com, SE Eastgate Way, Bellevue, WA
Responsibilities:
- 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 Confidential Web Server.
- Analyzed performance of Confidential Web Server using created counters,
- Vtune and VC Profiler. Fixed “critical” performance bugs in Order Processing Components.
- Software C++, STL, COM, ATL, ASP2
Environment: 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
Confidential NE, Bellevue, WA
Responsibilities:
- 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,
Environment: WINDOWS NT 4.0, 5.0 (Win32 API, Tools, Debuggers, Resource Kit, SDK ) Visual C++ Compilers (VC5 and VC6) tools and debugger. Visual Source SaveTest Suites and Drivers
Software Engineer
Confidential Canada Toronto Software Lab, Eglinton Av., E., North York, Canada
Responsibilities:
- 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.
- OS: UNIX (AIX 4.3 ), WINDOWS, OS390.
- Software C++, STL, Perl, Unix Shell Scripts.
Environment: VisualAge 4.00 for C++, Visual Age 3.5, Visual C++ 4.2, Visual C++ 5.0 Borland 5.0Test Suites and Drivers, CMVC