C++/c# Software Developer Resume
Charlotte North, CarolinE
SUMMARY:
C++ developer focused mainly to work in investment and financial area with variety of IT skills. BA in financial and economics and Master of Degree in technical area, CFA (Chartered Financial Analyst) passed Level 1 of the CFA examination in 2000 and more then 7 years of relevant work experience. Have experience in trading, knowledge in machine learning and algo - trading programming.
OBJECTIVE:
Obtain a position utilizing my experience and work in a good team of developers.
WORK EXPERIENCE:
Confidential, Charlotte, North Caroline
C++/C# software developer
Responsibilities:
- Developing and support backend applications with C++, C# and some Java. For C++ actively use STL, Boost, C++11x. Work with multithreading. MSVS.
- Unit tests with GTest (GoogleTests) for C++ code and NUnit framework for C#.
- Work with FlatBuffers. Using Git and GitHub.
Confidential, Manassas, Virginia
Sr. Consultant (C++, Linux, HPUX, AIX)
Responsibilities:
- Extensive development in C++, C critical back-end applications in multi OS (including RHEL, Solaris, HPUX, AIX, Windows) - environment. Widely using boost, STL and multi- threading. Moderate experience in Java. Oracle database - programming using PL/SQL and OCI (C++).
- Extensive using of shell scripting (mainly korn and bash) and Perl and Python.
- Clearcase as version control system.
Confidential
Developer C++ (Linux) Ticker Plant
Responsibilities:
- My role is to develop and maintain the Confidential and utilities for broad range of the data feeds with strong requirements according to efficiency, speed and reliability.
- Confidential handle the flow of incoming messages from the exchanges, which can be in a variety of formats and transmitted (TCP or UPD multicast) via different protocols (FIX/FAST, TELETICKER and other) and numerous of exchange specific APIs.
- There are strong timing requirements (microseconds terms) to process the messages.
- After parsing the data packed in internal format and deliver to the customers.
- Confidential are server applications run under Linux (CentOS).
- Confidential are developed to not use databases, written in C++ with extensive use of contemporary paradigms of programming, templates, patterns (e.g. visitor, object factories, singleton, strategies).
- Widely used STL and boost. System building application is make.
- On developer boxes we use vim on personal computers use different IDE (Eclipse, NetBeans, etc.).
- Development process involves the use of a wide range of tools and resources of Linux. Version control system CVS and Git.
- Deployment is performed via bundle of scripts and methodology which carefully worked out and thoroughly documented.
- The workflow is well organized under variation of PSP methodology to produce the code with best quality. All the code is carefully reviewed with at least two reviewers and thoroughly tested by QA. All stages of product development include extensive documentation routine - every product begins with carefully designed and reviewed architectural analysis, requirements and reading documentation supplied by exchanges, operation manual and a lot of other documentation.
- Every defect or suggestion is documented after fixing by the established forms in terms of improvements, changes in configuration files, impact for customers and others.
- Customized MKS Integrity application is used as a support tool for tracking personal activities performed while development according to Confidential Implementation process and to monitor team and personal metrics.
- Customized SIABEL application is used to manage Customer Service Requests (CSRs), Internal Service Requests (ISRs), Defects and Suggestions, and Time off Requests.
Technologies and languages: C++ (GCC), STL, boost, GDB, shell scripting (Bash), and specific libraries and frameworks. All development under Linux (CentOS - RedHat branch).
Confidential
Leading developer C++/SQL
Responsibilities:
- I contacted with traders and investment managers closely to discuss various aspects of development. Since I have strong background in finance and investment, it gives me the opportunity to have a good and clear understanding the real needs of investment professionals. I have practical experience (equities, futures, Forex and fix income) in exchange trading on MICEX.
- The system is designed and developed as a client-server architecture, with the capacity to withstand high loads of incoming data. The core of the system is server part implemented as a UNIX (Oracle Linux - RedHat branch) background process (daemon) with extensive employment of the parallel programming concepts. Some server side modules were implemented in Windows Server 2008 as Windows Services. For Windows development we use Visual Studio 2010, C++ and rich employment of the parallel programming (completion port, critical sections, semaphores, events, timers, etc) and sockets.
- Database developments involved all aspects of database design and development - table normalization, data design scheme, constrains, indexes, hierarchical data implementation as well as developing triggers, views and stored procedures because some part of business logic is implemented in database. We use Protobuf format and XML to develop our own unified standards and formats to handle data from the various sources and exchanges. For extensive and heavy computations (trading systems optimization and modeling) we began to use GPU calculation via OpenCL.
- Client part is developed as a Windows desktop applications mainly with C# and some applications in C++ (VisualStudio 2010, MFC, ADO). Some client modules was an interface between our system and application for technical analysis MetaStock v11 by Equis. (MetaStock API and C++).
- My role in this project as a leading developer is to participate in design and development a database, server software and sometime client applications.
- I used C++, STL, Boost, and the native database API (MySQL 5.5 and later Oracle 11.2g and OCI) for C/C++, SQL and C#. For database I used dbForgeStudio. IDE - VisualStudio 2010, Eclipse, NetBeans 7, CodeBlocks (for g++ compiler).
- We used Mercurial for versioning and RedMine as ticket assignment and bug tracking system and local Wiki to accumulate information.
Confidential
Senior developer C++/SQL
Responsibilities:
- Development team to support and redevelop various and numerous applications for derivatives (mainly currency futures, many legs products, options) and fix income.
- We use Visual Studio 2005 (C++, MFC, COM, ATL, STL, Boost). For database (Oracle) development in PL/SQL I use SQLDeveloper by Oracle.
- We use Perforce for version control, JIRA for bug tracking and ticket assign and TeamCity for continuous integration. Also we use numerous internal Confidential Bank applications and solutions.
Confidential
Senior developer C++/SQL/PHP5/JavaScript
Responsibilities:
- My role in the company includes redesign and development existing system as well as redevelopment critical server part for migration to UNIX (FreeBSD) and Ubuntu Linux.
- The system is distributed client - server, business process supporting, transactional, online and high loaded 23/7 software/hardware complex .
- The system runs to support work all together ATMs, game machines, operators and managers with appropriate ACL.
- The system is critical for errors because it handles money transaction, win/loss accounting and settlements, settlements and clearing like bank systems and provide robust 23/7 working with one hour technical break for administrative purposes.
- Development for migration to UNIX platform was essential part of the project and employ active using many of system programming aspects (threading, IPC s, daemons development) in C++ (gcc, NetBeans, IDE), modeling (normalization and informational schema design) main RDBMS because previous version of RDBMS was not designed well enough and implementation all sides database programming - tables, stored procedures, views, triggers design as well as implementation in SQL.
- The development with C++ includes development classes for robust and fast database access and includes intensive using STL, and native C/C++ database API.
- Developments for older version (Windows Server) involve T-SQL (Microsoft SQL Server), C++ (unmanaged C++ using Visual Studio 2005/2008, SQL, MFC, ATL) and VBA, XSLT, XML. One part of development for windows was creation Windows service application which supports custom network protocol based on pending specific gaming machines controllers. The service intensively works with COM ports and with MS SQL Server database using ADO library. The service was implemented with using Completion Port Windows kernel object.