Senior Software Engineer Resume
Barclays, NY
SUMMARY:
- Confidential is a senior C++ developer with over eleven years’ experience in object oriented design and development of Financial applications using C/C++ in both Unix (Sun Solaris, HP Unix, RHEL) and Windows environments.
- He has expertise in programming with C/C++, Object oriented design, data structures, Boost, Shell Scripting, Multithreading and STL.
- He has good experience in implementing Design Patterns. He has exposure to Socket Programming, TCP/IP Sockets and UNIX IPC.
- He has working knowledge of Perl and Python. He has worked on both Waterfall model and Iterative model of software development.
- Confidential has extensive experience working with good financial domain knowledge with Real - time market data, Treasury Bonds, Forex (FX SWAPs, Options) etc.
- He has excellent inter-personal and communication skills and problem solving capabilities.
TECHNICAL SKILLS:
Languages: C, C++, Python
Operating Systems: UNIX (Sun Solaris, IBM AIX), Linux (RHEL 4+), Windows
Databases: MS SSL, Sybase, Confidential Object Database.
Debugging: gdb, dbx
IDEs and other tools: Makefiles, Clearcase, MS Visual Studio, NetBeans, waf framework.
Libraries and APIs: UNIX Sockets, Multi-threading (Windows and UNIX), STL, UNIX system calls, Boost Framework
Source Control: Git, Subversion, ClearCase.
PROFESSIONAL EXPERIENCE:
Senior Software Engineer, Barclays, NY
Confidential
Responsibilities:
- Used SCRUM/Agile Methodology to manage the development life cycle. Interacted with Clients to understand further improvements/changes and implemented them.
- Designed and developed new MIFID 2 regulatory fields using C/C++, STL, BOOST. After this change, Confidential was able to send the MIFID 2 information to the clients.
- Developed a Cleanup script in Python to remove control characters (CTRL-M, \n) from Sybase database. The Load Timesten script which loads data from Sybase database to Timesten (in memory DB) used to fail because of Control characters in the database and thus this Cleanup script proved useful in successful loading of data into the Timesten.
- Added SubNickel checks to reject orders that do not comply SubNickel rule using C++, STL and Templates.
- Fixed issues related to Root Allocation status (a record that holds allocation information for an order) used to occur when an order is pending acknowledge and an amendment is sent by the client using C++ and STL.
- Worked on various bug fixes and provided production support in Confidential Appserver using log analysis, debugging with GDB, C++, STL, Boost and Rogue Wave library
- Responsible for migrating from Sybase SQL Server to MS SQL Server that included understanding the data types. This included fetching the date from Sybase using free bcp and moving the same to MS SQL Server using free bcp.
- Developed Perl / Shell scripts for data migration from Sybase to MS SQL Server.
- As part of development cycle, maintained code in SVN based repository, make CMake and Shell Script based build and installation system for the product.
Environment: C/C++, PThread Multithreading Library, STL, BOOST, Tibco (MiddleWare), Shell Scripting, Python, Perl, Git, Rogue Wave library, Sybase 4.x, Redhat Linux.
Technology Specialist
Confidential
Responsibilities:
- Enhanced Confidential to support Fat-finger and daily notional checks for FX instruments. Also, enhanced it for having 24*6 availability in Foreign Exchange (FX) markets using STL and Boost library.
- Prior to this change, the compliance engine had no Fat-finger and daily notional checks for FX instruments. The compliance engine also used to get restarted daily. Since FX trading happens continuously during week days, it was a requirement from Business to keep the compliance engine up for 24*6.
- Standardized the low-level design to conform to globally accepted design patterns such as Observer, Factory Method, Singleton and Architectural Patterns such as Object Pooling, Thread Pooling….
- Enhanced Confidential to support new instrument type in U.S Treasury Bond (USTBond) using Sybase, STL and PThread Multithreading Library. Prior to this change, there was no support for USTBond.
- Worked on latency optimization using Boost Thread Pool and lockfree spsc queue. Used Callgrind(a tool within Valgrind) to identify functions taking significantly more execution time and used this information to analyze the code for optimizing the latency. For example, passing the logging information to the logger thread instead of doing sprintf (takes some latency while dealing with float variables).
- Added a new feature to reset shared memory position values for given Client, Symbol, Side combination by subscribing to a new handler that gets called when a message is published on a particular topic on RTServer.
- Implemented a variety of tests including integration and regression tests.
- Wrote a python script for log comparison. This script compares logs from production and parallel production. Only when the comparison is successful, the parallel production environment is moved to production.
- Extensively used Perl scripting to produce graphical representation for the reports in the inline mail from batch job.
- Worked on various bug fixes and provided production support in Confidential using log analysis, debugging with GDB, C++, STL, Boost library.
Environment: C/C++, STL, RTServer(MiddleWare), BOOST Libraries, SVN, Shell Scripting, Python, Perl, PThread Multithreading Library, Redhat Linux.
Sr. Software Engineer
Confidential, PA
Responsibilities:
- Wrote an interface to receive XSP5 messages for Cash Dividend and Dividend in stock corporate action and code to process the same using C++, STL and Boost library.
- Worked on bug fixes and maintenance of overall XSP5 interface in Global Plus using C++.
- Designed a new AFQ 5.9 which can be used to provide basis percentage for corporate actions that were originally executed with unknown basis percentage. This feature allowed organizations to execute corporate actions even with unknown basis percentage and later modify the CA with AFQ 5.9. The code was implemented in C++ using templates, STL and Boost library.
- Added a new feature to AFQ 5.9 which supported selling of positions on both sides of the Corporate Action. The code was implemented in C++ using templates, STL and Boost library.
- Worked on overall maintenance of AFQ 5.9.
- Worked on bug fixes and enhancement in Corporate action queue including corporate actions like Stock Dividend, Cash Dividend, Merger, split up, Split off, Spin off, Dividend in stock etc.
- Worked on Multi-Currency feature in Corporate Actions using exchange rate from market and applying the same to calculate the position value is Base currency of a portfolio using C++ and STL.
- Consulted and worked with other developers and business analysts to clarify issues.
- Interacted with support teams to resolve the customer issues.
Environment: C/C++, STL, BOOST and STD: Threads Libraries, ClearCase, Shell, GDB, TCP/IP, Sockets, Shell Scripting (Bash), AIX.
Associate Software Engineer
Confidential
Responsibilities:
- Implemented and Maintained the addvol utility using C TCP/IP and Sockets programming, IPC.
- Troubleshot and fixed bugs for various upstream feed systems.