Post Job Free
Sign in

Software Engineer Developer

Location:
Manhattan, NY, 10007
Posted:
February 23, 2023

Contact this candidate

Resume:

Zoran Nedeljkovic

917-***-**** Senior Software Engineer advirm@r.postjobfree.com

Senior IT professional with over 20 years of experience in design and architecture at various financial companies in Greater New York City region.

Superior client relationship-building and communication skills.

Solid knowledge of C#.

Excels at using design patterns that are easy to maintain, develop and re-use.

Focused on solving problems for clients.

Professional Experience

Senior Software Engineer at JPMorgan (Banking & Financial Services): 04/2018 – Work for the pre-trade analytics team covering ABS, Agency, Non-Agency & CMBS secondary trading desks managing/maintaining several trading applications built in excel VBA that utilize use of Bloomberg/Yield Book/Bond-Studio/Intex Analytics to load reference data, calculate risk and real time prices/yields and interface to set of services through an excel add-in. [C#, multi-threading, COM, Excel 2010/2013/2016/365, VBA, Excel-DNA, DevExpress, REST, WCF, WPF, MVVM, Reflection, Bloomberg Desktop Services, Markit, Yield Book, INTEX, LINQ, Unit Testing, Python, SQLServer 2008/2016, Oracle 10g/11g, Sybase & Vertica, REST services, TIBCO, VBScript].

• Liaised with traders to fix and upgrade various aspects of their sheets to diagnose & fix problems and/or add improvements.

• Created documentation around the existing state of the application.

• Refactored Non-Agency Bloomberg messaging logic to build Bloomberg messages that were customizable by the desk.

• Upgraded & deployed application to Production Environment combining the multiple variants into a singular package with configurations that were deployed within a single package and could be managed more effectively.

• Refactored Excel Client Add-in implemented with excel-DNA using SOLID principals. The application utilizes TIBCO messages to interface with a service that generically connects to multiple databases and various services enabling users to integrate positions & referenced data from multiple sources & different analytical methods.

• Rebuilt package process for deployment to simplify it by combining all nodes into one singular package, to handle office 2013 deployments and clean up user groups, file groups and security.

• Created an options screen in WPF to allow change of environment details and sending of support messages.

• Created a log screen in WPF that is docked in excel and allows filtering based on various levels.

• Created real-time IHS Markit price/yield calculations that can be utilized by the traders via an Excel User Defined Function

(UDF) which runs asynchronously and is used to return data to any cell in the workbook.

• Created a utility to pull hedge ratios for CMBS desk from an analytical service and output the data within an excel template. It allows traders to run various different look backs and different comparisons. A number of screens were created to allow power users to manage the inputs of the analytical service and the batch job. Screens were also added to allow users to customize the display of data in Excel. Due to the size of the data used, a dynamic pivot organizes the time series data into a format people can handle. The output was upwards of 1000 columns and consisted of 2-5 years of data. Users can load the batch data or run ad-hoc processes.

• Created an Excel UDF to asynchronously load reference data and calculate prices/yields from Bloomberg DAPI. These functions were defined as non-volatile which enabled traders to control when they wanted to refresh all or some formulas in their sheets to help them reduce the likely-hood of blowing their data limits. They operated asynchronously with Bloomberg data services (DAPI) and used Excel-DNA to output data using throttling to ensure that traders could utilize 2

their sheets continuously without locking up. They allowed uses to setup calculations using daisy-chains so that calculations could be setup based on results of previously defined calculations.

• Created an Excel UDF to asynchronously load deal, deal-info, cashflow & historical fields associated with deals/tranches.

• Created an Excel UDF to lookup data from the Data Query service enabling users to load time series data either for specific date ranges, specific dates time intervals and/or excel ranges. Data that consisted of multiple days was outputted as a pivot of each specific data across the reference/analytical data making it faster and easier for traders to reference large amounts of reference for custom analytical functions.

• Created a Converter using a User Defined Functions (UDF) to convert to/from between ticks and Decimal handling various formats used across desks by different traders.

• Created A Historical PDF report using an INTEX service to load deals and the related historical data to output the history of various characteristics for a selected number of deals/tranches. A summary table showed relative values across all deals/tranches specified.

• Upgraded and maintained a desk created Python utility for Agency CMO that used time series data maintained in excel to analyze the relative value of the bonds.

• Worked with L1 operations/infrastructure teams to help diagnose excel related issues across SPG business teams in sales, trade support and trading.

• Worked with all secondary desks (Agency CMO/Agency Passthrough/ABS/Non-Agency/CMBS/Project Loans) to upgraded all trader sheets from Excel 2010 to excel 2013. A number of sheets had to be refactored to ensure that they calculated correctly as sheets were running out of memory and working with traders to ensure they were satisfied with the stability and performance.

• Updated ABS dashboard to handle loading larger lookbacks so traders could load 100k to 200k records using a memory mapped file that could be used to load multiple pages in parallel, organize the data set, display & format the data set.

• Refactored ABS Dashboard save methods to allow multiple traders to operate on the records simultaneously and ensure that records were not overwritten.

• Upgraded ABS Dashboard with trade search facility that allowed users to load various enriched BWIC, Trace, Blotter and Pot list details together via excel utilizing a WPF control. An excel User Form was used with an exposed active x control to show to form quickly as a lag time existed in showing the WPF screen.

• Created an CMO Agency VBA add-in to help traders start their files within the same/new process and read-only/editable. This tool allowed them to customize an input excel file to maintain the dynamic menu.

• Refactored Agency Hedges sheet to allow them to run them to continue to run their analytics with the excel Yield Book add-in.

• Diagnose issues with the Yield Book Excel Add and built scripts to reset the Add-in for traders that were unable to calculate their real-time analytics due to certain cache errors.

• Built scripts which allowed traders to setup or reset their excel add-ins. Sometimes excel add-ns would ‘disappear’ either due to add-in errors or conflicts or excel issues.

• Built a work around to calculate P Spread manually instead of using Bloomberg’s calculation SOFR Curve for CMBS and Project loans desks.

•Upgrade Bloomberg SYT/YT calculation/messages on CMBS/ABS excel files to handle p spread and j spread. 3

Senior Software Engineer (Contract) at Arrowgrass (Hedge Fund): 11/2017 – 02/2018 Built a dispersion trading application that consumes real time positions and enriches data utilizing Bloomberg desktop services. It is used daily by the company’s New York & London portfolio managers to monitor conditions and analyze options to buy or sell [C#, DevExpress, Excel 2013, VBA, WPF, MVVM, Reflection, Bloomberg Desktop Services, Java 1.6, LINQ, Unit Testing, SQLServer 2008].

• Refactored and corrected stability issues with a java utility that is used to retrieve the forward prices and volatility data from Bloomberg and calculate the implied volatility for the positions.

• Migrated java utility to command line process using LINQ, improving the speed by 80%. Created unit tests for each function to calculate the forward implied prices and interpolated volatility.

• Added a basic framework with logging & caching services using the single responsibility pattern. Added business objects to handle synchronization, binding of data and monitor state changes.

• Added a generic type builder to create a new type that dynamically emit generic fast access properties.

• Created a shell object to customize the look & feel of window objects and better handle events from the window and changed the splash screen to show progress changes.

• Extended the Early Expiry view to add some extra columns. Added a row style that alters the color of rows using a multi-value converter.

• Created an Expiry view to show that displays all book positions about to expire and a docked universe view to track tickers to monitor details of securities that are not booked.

• Updated the application to use behaviors for column formatting, filtering, grouping and sorting. Added converter to handle more complex events with the command pattern.

• Added a position matrix view to summarize position data of each unique strike/expiry for each ticker. Used lambda expressions to compile property assessors to enable aggregation of data generically. Senior Software Engineer (Contract) at Guggenheim Partners (Banking & Financial Services): 07/2015 - 10/2017

1. Created the Liquidity desktop application using WPF. This application is used to model liquidity curves via different characteristics of securities. The application is deployed to trader desktops and allows them to update characteristics by importing them from Excel [C#, DevExpress, WPF, MVVM, multi-threading, REST, Excel 2013, VBA, PowerPoint, LINQ,GDI+, IIS, SQLBulkCopy, SQLServer 2012].

• Built multiple Liquidity Screens to show characteristics security grouping, mappings and curves.

• Implemented a set of bulk operations using bulk copy to update/logically delete and insert larger sets of data. Utilized Sequences to create data in memory and then push the data to the data based in one transaction.

• Created a set of service tasks to build curves by matching characteristics generically with the securities defined for a given day. These services were built to run in parallel to improve performance across the server. 2. Designed & Implemented the Power Point Builder desktop application using WPF. The application is used to build customized power point presentations for CIO (Chief Information Officer) - level reporting on a quarterly basis. It extracts ranges from Excel as images, builds templates using portfolio and performance information and combines the templates as presentation in power point [C#, DevExpress, WPF, MVVM, multi-threading, REST, Excel, PowerPoint, GDI+, ASP.NET (MVC), IIS, SQLServer 2008/2012]. 4

• Added a base REST service layer that can be used to handle GET and POST messages as generic base methods. Each data service used the base service layer to define the GET methods as formatted URLs and POST messages as generic functions.

• Built multiple user views to handle add/edit and deletion of the deck and its details.

• Created an Excel Reader to extract images from each excel file and save it to a file and a Power Point writer to generate power point files for each template and write the performance and portfolio data. A cloak room pattern was used to use a ticket reference for each extracted image allowing for better memory usage until the final image had to be used. To load the images correctly several lower level functions are invoked to load the EMF data. Lead Software Engineer at Citigroup (Banking & Financial Services): 09/2010 – 07/2015 Designed & Engineered the Account Master Central (AMC) desktop application. The application was deployed to over 5000 users across 90 countries using ClickOnce. It ran on XP, Vista, Windows7, Citrix and terminal services for both x86 and x64 systems and handled multiple business workflows, search/reports and various tools for administration [C#, WinForms, DevExpress, CAB, SCSF, Win32, User32, multi-threading, Clickonce, Mage, QTP, QTP extensions, VBScript, WPF, MVVM, SOAP, WSDL].

• Lead a team of 3-10 developers. Building agile frameworks that allow reuse and components that can plug in to existing infrastructure to scale functionality.

• Designed a common container that allows common operations from each console displayed (busy, message, dialog). This was added to render a common look & feel and avoid blocking the main thread with popups.

• Re-designed Inbox screen to utilize Master Detail Grid together with customized filtering and incremental updates. Senior Software Engineer (Contract) at Citigroup (Banking & Financial Services): 09/2009 – 09/2010 Designed & Engineered the Account Master Central (AMC) desktop application [C#, WinForms, DevExpress, CAB, SCSF, Win32, User32, multi-threading].

• Built the base framework utilizing a navigation service to handle customized MDI workspace and simplify interaction between the child views and the main workspace by automatically building the main workspace entry points using the bootstapper.

• Designed a business model layer utilizing business objects provided by the web services to enhance the modelling of data utilizing change sets that can determine what has changed in the hierarchical model in order to improve performance of web service calls.

• Implemented Centralized docking feature to display transaction/error log information. Senior Software Engineer (Contract) at UBS (Banking & Financial Services): 11/2008 – 08/2009 Built a portfolio reporting application for fRisk group within Fixed Income area. Customized reports allowing the user to select extra fields and create different risk reports [C#, WinForms, WPF, DevExpress, CAB, SCSF, PRISM, OLAP, SSIS, WCF, LINQ].

Senior Software Engineer (Contract) at Bridgewater Associates (Hedge Fund): 12/2007 – 09/2008 Built a desktop application to facilitate the daily execution of trades. The application was designed to work a small number of high end work stations. The application covered repos and options [C#, WinForms, DevExpress, NUnit]. 5

Senior Software Engineer (Contract) at Paradyz Matera (Digital Advertising): 07/2007 – 11/2007 Built the Bid Management system to optimize keyword bids used for browser search results. Added a new module to gather client metrics and costs per click. Developed a service was developed to automate optimize a larger capacity [C#, Excel, VBA, WinForms, Syncfusion, multi-threading,PL/SQL, SQL Server, Oracle, .Net Remoting, Windows Service, Web Services, ASP.NET, IIS, JavaScript].

Software Developer, Systems Engineering positions at various companies in Australia: Metering Product Support Engineer at Metering Dynamics (Energy Distribution & Trading): 11/2006 – 06/2007 [C#, Winforms, multi-threaded, Windows Service, Javascript, ASP.NET,IIS, SQL Server] Systems Specialist (Contract) at ALCAN (Mining): 01/2005 – 01/2006 (ASP.NET, C#, Oracle 10g/11i) Software Developer at Sanford Securities (Online Stock Broker): 05/2000 – 12/2004 [WinForms, WebForms, VB6, C++, Oracle 8i/9i, COM/COM+/DCOM, SWIFT/FIX]

Test Engineer at Dynamic Technology (Engineering): 01/2000 – 04/2000 [WinForms, VB6] Skills

Databases Oracle 8i/9i/10g,11i, SQL Server 2000/2005/2008/2012, OLAP, SSAS, SSIS Languages C#, VB6, VBA, JAVA, XML, PL/SQL, SQL, Javascript, HTML, C++ Platforms Windows XP/Vista/Windows7/Windows10, Windows Server 2003/2008/ 2012, Linux Technologies

.NET - 2.0/3.5/4.5, 4.6, WinForms, WPF, WCF, ASP.NET, Windows - Win32, User32, GDI+, COM, DCOM, COM+,

Frameworks - CAB SCSF, PRISM, Castle Windsor

3rd Party Controls - Syncfusion, DevExpress,

Messaging - Tibco, Rabbit MQ, SOAP, WSDL, XML

Applications - Visual Studio 2003-2017, Microsoft Visio/Project/Office 2003-2016, AutoCAD, Ecliplse, IIS, Entity Framework, QTP, Clickonce, Mage, MageUI, NuGet, JIRA, TFS, TeamCity, ANT, msbuild, SourceSafe, ClearCase, Subversion, BitBucket

Education

University of Western Australia, Bachelor of Engineering (IT), Jan 2000



Contact this candidate