|
2006-present
Sungard Consulting Services, former Finetix LLC
Senior Managing Consultant
Provided consulting services to major investment banks in New York City
Acted as an advisor and hands-on contributor for a Prime Brokerage financial application
(C#, WPF, WCF).
Acted as a hands on tech lead for a team responsible for a front-end and part
of a back-end of a trade clearing platform (C#, WPF, WCF, Java, CXF).
Led a team that implemented a CDO pricing solution for a hedge fund
(C#, WPF, SQL Server 2005).
Worked on a C#/WPF risk management application. Learnt WPF tips and tricks from some
of the best experts in the industry.
Implemented trade routing solution (C#) that connected a number of commodity trading
platforms (GL, TT). Worked with a team as a tech lead.
Implemented a price assessment and marketing application for a major utility company
(C#, Windows Forms).
Supervised architecture of a CAB-based GUI framework (C#) used by several financial applications.
Implemented a number of improvements to the Java back-end that communicates with the framework.
-
Developed a credit event notification system (C#, Java) based on the
aforementioned framework. Implemented the C# front-end and served as a technical
lead for a team of Java developers that implemented the back-end.
-
Analyzed, planned and developed Manual Confirmations processing for foreign exchange trades
(C#/Windows, Java/Linux, Sybase) in close cooperation with business users. Followed agile development practices.
Investigated and developed prototype for securing SOAP/HTTP communication
between Windows client and Apache AXIS server with Kerberos conforming to the
WS-SECURITY
Kerberos token profile.
Worked in both C#/Windows and Java/Linux environments.
Re-architected GUI front-end of a foreign exchange straight-through processing system
(Windows desktop application, C#). Split monolithic system into several parts (shell+plugins)
that are now developed independently by several teams. Introduced automated build and unit
tests, greatly improving system stability in the process. Trained a team of software developers
that continues to support this project.
Contributed to the Rhino Mocks open source
project. Greatly extended the set of types that can be mocked by adding mocks that use .NET remoting
real proxy mechanism.
2004-2006
Bloomberg L.P. New York, NY
Architect/Technical Lead
-
Hands-on architect and technical leader of Smart Client project.
Smart Client is a distributed n-tier application that allows publishing,
deployment, execution and automatic update of .NET plug-ins for Bloomberg
Terminal.
Smart Client uses C#, C++, Web Services, SSL, load-balanced web farm (IIS),
and SQL Server 2005 database cluster. It is highly available scalable
system that serves over 300,000 users worldwide. Multi-threading is
used heavily in several parts of the system.
Developed initial prototype of the system. Produced architecture and
high-level design of Smart Client, using Visio and "Enterprise Architect"
tool. Wrote functional specifications for the majority of system
components. Provided technical leadership to the team. Personally
developed most of the business logic and data access tier, and
portions of presentation tier.
Smart Client is developed by a team of 10 software engineers using
agile-style development process. The project extensively uses
unit testing (nUnit), and continuous integration.
-
Led the effort for the integration of Smart Client with homegrown
UNIX-based GUI environment called "Launchpad". Windows part of the
integration package is written in C# and C++, UNIX part is written
in plain C. UNIX part is portable code running on AIX, Solaris and
HPUX. Provided design and implementation of the key components,
and coordinated contributions of 3 other people to the project.
Created C API for UNIX developers, that allows invocation and
control over Smart Client applications from Laucnhpad. Created
messaging framework that allows Smart Client application authors
to communicate easily with Launchpad infrastructure.
-
Developed "Report control" for Bloomberg Terminal. Report control
is a Windows-based control remotely controlled by UNIX server.
Used C++, MFC (Windows side), portable C code on UNIX side
(worked on AIX, Solaris, HPUX and DG/Intel). Used XML for
communication between UNIX and Windows
(libxml library).
1999-2004
OptiMed Technologies, Inc. Fairfield, NJ.
Senior Software Engineer
- Pioneered with .NET technology in the company. Performed extensive research on web services, .NET remoting, XML, Windows Forms and other .NET technologies.
- Designed and developed an MSMQ component in C# for deferred storage of patient demographic reports.
Produced functional specification, architecture, design and implementation of new generation multi-modality medical imaging application (ReviewX). The application displays single-frame and multi-frame medical images stored in variety of formats (DICOM, AVI, proprietary), and provides a rich set of diagnostics and analysis functions to the doctor.
ReviewX is an n-tier distributed application that uses Visual C++, MFC, ATL, ADO, COM/DCOM, SQL Server, and Windows Services. Applied a number of design patterns: Model-View-Controller, Decorator, Composite, et al., in order to improve quality of the design.
- Designed and developed 2-tier Web-based medical imaging system (Optibrowse) using ISAPI extensions, Visual C++.
- Designed and developed DICOM print package for medical imaging application with print preview and annotation features. Connectivity to conventional printers, laser imagers, DICOM printers. Using Visual C++, MFC, Merge library.
1995-1999
CMT Medical Technologies, Ltd.
Haifa, Israel.
Software Engineer, then Team Leader
- Led a team of 4 software developers.
- Developed advanced image acquisition protocols for real-time medical imaging application; the protocols involved real-time control of third-party and in-house hardware. Multithreaded real-time programming in C++, inter-process communication, Windows NT device drivers for PCI and ISA boards, interrupt handling, scatter-gather DMA using PLX 9060/9080 chipset, etc.
- Performed maintenance of complex medical imaging application. Cooperated with service department, managing database of bugs and features, version control, work plans, ISO-9000 documentation, etc.
- Developed real-time simulator of X-ray generator (GUI, multithreaded programming).
- Developed a program that launches child process and "spies" on its Win32 API calls using Win32 debugging API.
- Participated in design and implemented core components of real-time medical imaging application. Sophisticated user interface development using MFC and Win32 API, multithreaded real-time programming, inter-process communication, control of custom hardware using Windows NT device drivers. Used ODBC, DAO, Microsoft Access.
- Implemented from scratch Windows NT device driver for custom frame grabber and image processing board. Real-time programming, using Windows NT DDK and WinDK library; Interrupt handling, scatter-gather DMA using PLX 9060/PLX 9080 chipset, system threads, DPCs, etc.
- Developed DICOM Print and DICOM Store solution for medical imaging application using Merge Library.
- Developed image processing algorithms using MMX and assembly language.
- Developed embedded program for custom keyboard with Intel 8051 processor using PL/M language
- Implemented diagnostics software for custom keyboards using Borland C++ and OWL library.
- Implemented major improvements to embedded medical application based on PDP-11 compatible processor, using Pascal and PDP-11 assembly language. RSX operating system.
- Participated in administration of e-mail and DNS systems on Sun OS machine.
1993-1994
Product Computers, Ltd. Haifa, Israel.
Software Engineer
-
Developed handwriting recognition system for Hebrew language.
Using Borland C++, OWL, Windows 3.1.
1992-1993
Interface, Inc. Tomsk, Russia
Software Engineer
-
Developed scientific applications (simulation of physical processes)
using Turbo Pascal, Borland C++ under DOS operating system.
|