-
August 2018 - Present
R&D Technology Senior Project Manager
Symphony AI
Paris, France
Symphony AI is a leading provider of software for Retailers and Consumer Packaged Goods (CPG) Manufacturers with clients ranging from Dollar General in US, Carrefour in Spain, to Intermarche in France.
R&D Technology group of ten developers anticipates and drives the future of technology needed to best serve our clients. -
Managed a distributed R&D Technology team of 10 successfully integrating all members equally into a dynamic cross-functional team through even, merit based task distribution and pairings for tasks across the ocean divide.
Spearheaded adoption and migration to Microsoft Azure Devops. This included migration of source code, pull request development workflow, YAML based build scripts and adoption of Agile philosophy with biweekly sprints, estimation and retrospective sessions.
-
Modernized our mobile application by implementing Shared Device Mode (MSAL) and AppConfig on Android and iOS to enable automatic provisioning, single sign-on and automatic configuration through Microsoft Endpoint Mobile Device Management and Google Enterprise Play Store.
-
Drove adoption of testing as an integral part of the development process. Implemented automated unit testing using Karma+Jasmine and TestNG and automated functional testing using Katalon. For each pull request we are building and deploying an application and running battery of UI and REST API tests.
-
Implemented full mobile testing pipeline that includes building APK, loading it onto an Android emulator and running Katalon tests through it.
-
Improved product demand forecasting AI system by instituting better Python coding practices and model testing on sample canned historical data allowing to quantify improved model performance.
-
Overhauled server side to use Spring profiles to modify functionality based on various product needs to avoid manual modifications to XML files which was error prone and dreaded by the client support teams. This improved tremendously confidence during upgrades.
January 2014 - March 2018
Post Trade Team Lead
trueEx
New York, NY
trueEX is a global, electronic, CFTC-regulated exchange for interest rate swaps. The Post Trade team of eight developers was responsible for:
real-time processing of trades generated both on and off the exchange (from UI and FIX) during London and New York trading sessions
increasing product coverage (FRA, Swaptions, MAC) and business functionality (two sided price, batch clearing, ANNA ISIN integration mandated by MiFID II)
increasing capabilities of the Regulatory team to do trade surveillance using Nasdaq SMARTS application by adding context to transactions (market data, participant CRM details)
providing data for company dashboards which were used by sales and the executive teams and for billing purposes (to calculate charges for trades done on platform and discounts for customers streaming prices)
-
The real time trade processing included number of interfaces with external parties: clearing the trade at a clearing house (LCH or CME) using messages containing FpML (Financial products Markup Language) transmitted over Websphere MQ reporting trade to DTCC (a Securities Data Repository) by transmitting FpML using Websphere MQ (with security exit implemented) notifying the parties of the trade for straight-through processing over Markitwire native library using SWBML or SCML for the dealer and cleared flows respectively notifying the parties of the trade over FIX (either directly through ‘dropcopy’ or through Block Rock’s Aladdin offering) generating and sending trade confirmation emails (PDFs)
-
Developed internal regression testing methodology which compared over 40,000 artifacts generated by the Post Trade system (FpMLs, SWBML, Emails, etc.) with the same artifacts generated using previous version of the application. The resulting report was reviewed by Product and Onboarding teams to verify all changes going into a release were expected and correct. Technologies: Java, Python, Groovy, RabbitMQ, PostgreSQL, Git, Jenkins, Erlang, FIX, FpML, Aha, Grafana, Zookeeper, REST, JSON schema, Jetty, Websockets, Apache ActiveMQ, Sublime.
September 2004 - January 2014
VP in Capital Markets
Citigroup
New York, NY
Citigroup Inc. or Citi is an American multinational investment bank and financial services corporation. I worked in Capital Markets Fixed Income bonds offering system, finished on Foreign Exchange trading desk.
-
Developed proprietary FX trading algorithms employing various strategies (quickness, volume, price). Built a tool using kdb+ data to display the life of an order as a time series to spot additional trading opportunities and aid in debugging existing strategies.
-
Merged Fixed Income and FX KDB platforms and developed common KDB feed handler platform. The feed handlers were easily configured using q schema files used for TICK database. The handlers had variety of built-in parsers to handle FIX messages, de-normalize CME multi-depth messages, etc. Proficient in q programming language to perform variety of statistical analysis (through KDB Studio or MATLAB) as well as to develop distributed system (data listeners and transformers feeding trading algorithms).
-
Built a global distributed cache for FX applications (based on GemFire) containing over 100 caches with more than 4 million pieces of data spanning 6 data centers globally. The system is accessible over generic caching API (CCache; based on JSR107). Pluggable transports allow for using native GemFire connections as well as JMS (over Tibco EMS) or plain sockets. Propagation time from North America to Asia is <1s. HTTP REST and JMX interfaces allow for browsing, administering and monitoring the cache. This system is used by nearly all FX applications as it provides currency, calendar, warehouse routing, customer lookup and pricing branch functionality. The CCache library is loaded in hundreds of processes and provides in-process calculations based on pushed base data (currency calendars, existing warehouses, etc.). Depending on size, some data is lazy loaded while other fully preloaded.
-
Replaced custom Tibco EMS setup that was causing numerous outages with a new federated approach using standard packages sourced from Citi’s Engineering Team and using broker management application developed by Equities team (included change management process and rollback). This infrastructure was then handed off to Production Support team, which further reduced cost. The development teams were educated on the new process and given ownership and responsibility for their brokers. Number of instances grew from 4 to 26 (18 in North America, 6 in Europe and 2 in Asia). This process also upgraded all instances from version 5.3 to 6.1 as well as included remediation of various issues found by external audit.
-
July 1996 - April 2004
Senior Software Engineer
Instinet Corporation,
New York, NY
Instinet was the dominant electronic communication network in the early 90s operating in over 20 world markets and integral tool for traders on both 'buy' and 'sell' sides. My career started as an intern and after graduating from Pace University I accepted a position in Trading Technology.
-
Development lead for Targeted Orders (Instinet’s first application in the ‘block trading’ initiative). Targeted Orders are large orders that are advertised to parties selected based on filters created by the traders. Filters include criteria such as type of client (institutional, fund, etc.), holdings and other. This facility included a web application for creation of filters and viewing execution reports, middle-ware connecting to trading system and evaluator servers for target-client selection. Visited clients to seek feedback and recruit for beta testing. Trained support personnel.
-
Designed and developed ‘BookMark’ which was Instinet's web-based full book delivery product and answer to a Island’s (fast growing competitor) similar offering. The data was tunneled over HTTP to Java applet. Self-healing middleware managed interaction between the client and a number of Book Servers. Libraries from this product were used in Instinet's Newport product (full featured Execution Management System).
Trademark filed with USPTO
-
Lead developer for Server Management facility to manage and monitor server applications. The client console communicated with middleware (Hub) which acted as a multiplexer to hundreds of server processes that implemented a custom protocol. The console included template view of server's events, list of available commands and general health of applications. Hubs combined into domains to support multiple environments (development, user acceptance testing and production).