Sign in

Engineer Software

Miami, Florida, United States
March 07, 2018

Contact this candidate

Phone (857) *** ****


web site:

*** ** *** **,

North Miami Beach, FL

Nick Polyak


US Citizen


Ph.D. from RPI

One of the top WPF architects in the US with comprehensive experience in software architecture and development.

Created Roxy - a powerful Roslyn based proxy generation and IoC container package.

Created NP.XAMLIntellisenseExtensionForVS2017 Visual Studio extension for enhancing XAML intellisense.

Published numerous articles on the website and twice was a CodeProject MVP.

Published a book “Instant Silverlight 5 Animation”.


Contract position as an Architect/Mentor/Lead Developer in.NET, WPF, XAML, C# and/or enterprise applications development


Languages and


C#, .NET, WPF, MS Expression Blend, Roslyn, Prism, WCF, MEF, Silverlight, PL SQL, XML, XAML, MOQ, Transact-SQL, MS SQL Server, Oracle, HTML5, JavaScript, JQuery, Knockout.js


Windows, UNIX


Very strong understanding of OOD/OOP, distributed computing principles, design patterns, MVVM, multithreaded programming concepts and Client/Server applications

Design Style

Emphasis on software flexibility, extensibility, testability and code reuse

Highest Degree

Ph.D. Electrical, Computer and Systems Engineering

Rensselaer Polytechnic Institute, Spring 1998

Thesis title “New Wavelet-Based Algorithms for Signal Decomposition and Reconstruction via the Theory of Circular Stationary Vector Sequences and the Zak Transform with Applications to Image Compression”

GPA: 3.9/4.0

Capital Group

WPF, C#,


Apr. 2017 – Sept 2017

Senior Consultant

Created a new architecture for the Visual Components

Created and styled most of the custom controls for the application including the numerous buttons, the combo boxes, the text boxes, the date picker, section controls etc

Completely changed the layout of the application

Evangelized and taught WPF best practices


WPF, Roslyn, Rules Engine, Telerik, DevExpress LayoutControl, Customization

Oct. 2015 – Dec. 2016

Senior Consultant

Created a Roslyn Based Rule Engine, allowing the expert users to create application components containing custom C# code that determines their behaviors. The code is dynamically compiled and becomes part of the application. The Roslyn powered functionality was providing the users with complete intelli-sense for the custom C# components.

Designed and built a View Model component based architecture for extending the application. Each VM component can be developed and tested separately and then placed into the application. Various components communicate between each other using so called Global Variables.

Created Hot Buttons for the Trading Dashboard application. Such buttons can be dragged and dropped anywhere within the application UI and can be customized to perform different actions.

Added a number of new various features to the Trading Dashboard application.

Tutored other members of the team and helped them with understanding of WPF concepts.

Franklin Templeton

WPF, Prism, Architecture,

Dev Express, SciChart

Jan. 2012 – Sept. 2015

Senior Consultant / Project Lead

Designed and built the UI for the prize winning Investment Dashboard product.

Created View-Widget based architecture allowing to assemble various views out of widget very fast.

Designed and built most of the widgets for the application – among them, Tables, TreeMaps, PieMaps, Charts.

Built the geographical map showing distribution of change in investment over the globe.

Built the detailed organization chart for the investment organization.

Tutored other members of the team.


Silverlight, WPF,

ADO.Entity framework,


MS SQL Server

Sept. 2008 – present


Build web-sites using HTML5, JQuery and Knockout.js.

Building a Silverlight product with MS SQL server with ADO.Entity framework at the back end. Using WCF to connect to the back end from the Silverlight application.

Built a Silverlight application allowing to view information about Hedge funds for Five Nine Seventy Integration LLC.

Looking for contracts in hands-on-help and mentoring in the areas of Silverlight, WPF, LINQ, WCF and Enterprise Project Development.

More information at

Dimensional Photonics International

Touch Screen WPF GUI Application, MVVM, Internationalization, UI Design

Oct. 2011 – Jul. 2012

Senior Software Engineer

Designed and developed in record time a full-blown touch screen WPF based GUI application for taking 3-D dental scans.

Created a library of custom controls and styles to be re-used across the application.

Designed and built an IPad-like keyboard for this touch screen application with internationalization capabilities. Just like popular touch screen tablets and phones, the keyboard allows the user to choose special characters by pressing a corresponding key for a two-second time period.

Incorporated the C++ code that actually handles 3-d processing into the application.

Adhered to a strict MVVM development.

Fully internationalized the application.

Created functionality for login, authorization/authentication, managing the users, and user permissions.

Created functionality for auto-logout for the application.

Created functionality for changing and monitoring system parameters like current time, date and time zone, and the battery. The application will be run in Kiosk mode, so that the clients won’t have access to windows OS, so I had to provide the ways to change the system parameters via the application.

Created functionality for monitoring network connections (including wireless networks) and for managing wireless networks connections: one can type a password for WPA2-PSK connections, save a profile, connect to the wireless network using the saved profile. One can break a wireless connection and delete an outdated profile.

Designed and developed GUI functionality for monitoring and controlling uploading the data to the back end.

Designed and developed GUI functionality for the remote support of the application.


Tech Leadership,

Team Development,




UI Design,


Feb. 2011 – Oct. 2011

Architect Engineer Consultant

Worked on building a multi-tier application for viewing and modifying financial data.

Proposed and evangelized prototype based development for the UI which involves creating small prototypes to nail down the business features and potential for code re-use and then assembling them into the application. Junior engineers will only be able to check in their code after it’s been tested and code reviewed as part of a prototype.

Serve as the “code watchdog” ensuring correct application of the MVVM design pattern, good re-use, adherence to the styles.

Lead a team of several engineers located in India. Serve as a business proxy/project lead for them.

Work in close contact with the business owners/UI designers on the behaviors and the look and feel of the application.

Built a number of generic visual and non-visual components that everybody else on the team reuses, including a data grid (built on top of the DevEx grid).

Participate in design across the application tiers, nailing down the database and services contracts.

Do a lot of hands on C#/WPF development and UI layout design.

ITG, Inc.

Team Development,




MS Expression Blend,


Sept. 2009 – Dec. 2010

Senior Software Consultant

Worked on a single stock trading application as part of an agile team.

Worked in close contact with the product managers on nailing down the product managers on nailing down the application look and behaviors.

Worked with the Graphic Designers on the visual aspects of the application.

Use MS Expression Blend extensively designing the visual components and their behaviors.

Worked in close contact with visual designers building the prototype of the trading application.

Taught a WPF class for the developers in order to facilitate transition from WinForms to WPF.

Was one of the MVVM pattern evangelists.

Integrated financial charting functionality into the application.

Customized and extended some of Telerik’s controls to comply with our business requirements.

Implement components of the application in WPF including, but not limited to Generic Grid View with a column chooser, Hot Buttons, In-line Menus etc.

Participate in work aimed at improving performance of the application.

Work on different parts of the WPF/MEF based trading application.

Also (before December 2009) worked on a Forms OMS application.

Built support screen that displays information about different parts of the application running on different machines.

Created hot buttons functionality allowing the users to drag and drop a current drop-down menu button to a special hot buttons toolbar and then use that button for filtering, sorting or changing the layout instead of the drop-down menus.

Worked on fixing bugs.

Created NUnit and Fitnesse tests.


C#, Silverlight, WPF, .NET, Oracle, Windows, Java, C++, UNIX

August 2007 – Sept. 2008

Senior Software Engineer

Work on designing and developing a Silverlight front end product connected to the oracle database via the WCF web services.

Created and modified Siliverlight custom controls that Silverlight 2.0 Beta 2 does not have yet. Among them was the TreeView that could be bound to an underlying C# tree structure with data templates used to present each of the elements on the tree, ComboBox and WrapPanel.

Published several WPF articles on the Codeproject.

Designed and developed a WPF visual tool for scanned document Quality Control.

Designed and developed several WPF controls, including TreeView with multiselect drag and drop capability and ListView with multiselect drag-drop.

Designed and developed some prototypes using WPF including an image viewer allowing to annotate and rotate the images and drag the annotations over the image. Another prototype provided interface for calling the Oracle DB sprocs in a generic way.

Gave C# classes to ChartOne engineers.

Ported some old C++ code to .NET 3.5 and provided a managed interface to call it.

Investigated oracle UCM functionality creating Web Services interface for calling some parts of it.

Created notification agent in Java that gets the deficiency info from the DB and sends e-mail notifications about them to the corresponding users.

Fixed numerous bugs and configuration issues related to the old product (java, C++, UNIX).


C#, .NET, WPF, Windows Forms, MS SQL Server

January 2007 – July 2007

Senior Lead Software Engineer

Designed and developed the new shipping system including the functionality for shipping, closing and manifesting.

Used Crystal Reports for manifesting.

Worked on supporting and fixing the current shipping system.

Created a set of tools for populating rates of the shipping system and for testing it.

Created functionality for configuring and running closing and manifesting workflows.


C++, C#, .NET, Apache, IIS, lucene, clucene

April 2005 – December 2006

Chief Architect

Designed and developed quosa server: a web based piece of software that allows sharing the information between the clients. This is a full-blown server with capabilities to add and retrieve information, to manage the user – permissions functionality to do back-ups etc.

Worked extensively on multithreading and synchronization issues within Quosa server.

Developed a test harness in C#.

Developed and designed parts of the Quosa flexupdate functionality.

Modified Clucene indexing software to allow searching multiple indexes, to provide simultaneous multi-read – write functionality.

Greatly improved Clucene indexing performance.

Created a set of command line tool for investigating the Clucene indexes.


C++, C, I18N, L10N, ICU, Windows,

UNIX (Solaris, Linux, HP, AIX),



June 2001 – April 2005

Software Engineer

Redesigned a C++ utility for cleaning up the ClearCase databases, which resulted in it becoming 5-10 times faster.

Helped to tutor newcomers to the team

Implemented a set of C++ class templates facilitating the conversion between different character sets. This template library was built on top of International Components for Unicode (ICU) libraries.

I18N Project: implemented a C++ module for MIME wrapping the SMTP mail messages, allowing non-Latin characters (including multi-byte, e.g. Japanese, characters) both inside the message body and parts of the message header. Used the International Components for Unicode (ICU) libraries for conversions between the character sets. Implemented both Quoted-Printable and Base64 encoding.

Created a set of Remote Procedures that improved the way the ClearCase works on NAS devices.

Dealt extensively with ClearCase server including ClearCase database and RPCs.

Changed the ClearCase Windows code to work on the paths that are larger than 260 characters long (a hard-to-get-around limit on Windows). It was a large, architectural change, which added a lot of value to the product.

Modified the ClearCase code to work better with large (>2G byte) files on different platforms.

Gained a multi-platform C++/C development experience. Worked with Windows, and different flavors of UNIX: Solaris, HP, Linux.

Improved my understanding of the Windows system programming APIs.

Work on developing and maintaining the ClearCase software.

Gained intimate knowledge of the ClearCase both as a developer and as a user.

Newsphere (Quosa)

Apache Tomcat 3.2.1, J2EE (Servlets),MS SQL Server 7.0, PoolMan 1.4.1

January 2001 – June 2001

Senior Server Side Consultant

Worked on a prototype for my own idea of a code generator for generating both the database and java parts of the web sites that contain business logic.

Built some server side functionality for the Newsphere product. The functionality is used in order facilitate the storage, search and retrieval of some data. On the storage side, the user sends some binary file to the server and the file containing certain “phrases”, a collection of lines of text. The binary data file is stored in the file system, while the mapping of the phrases into the binary data file name is stored in the MS SQL Server database. On the search and retrieval side, the user sends a fragment of a phrase to the server. The server searches the database for all of the phrases that contain this phrase fragment and returns all the binary data files corresponding to those phrases.


Boston, MA

Solaris, NT, Weblogic 5.1, J2EE (EJB, JSP, Servlets), Tamino, Java,

J2EE (EJB, JSP, Servlets), Oracle 8i

October 2000 – January 2001

Senior Consultant

Worked on an Internet project. The purpose of the project was to build the mass user web site helping teachers to choose and modify the educational material, and also facilitating communications between teachers, parents, students and school administrators. The Internet site was Java based, with Weblogic Server 5.1 used in the middle layer, Oracle 8.1i and Tamino XML database are used at the back end.

Developed an EJB code generator for the project. The generator produces EJBs based on the table creation script and some Java “properties” files. There is a central property file containing the properties most likely to be common for all the beans and defaults. The other properties files correspond to individual beans contain the properties corresponding to those beans.

Worked with Software AG consultants, testing Tamino XML database different features and resolving issues.


Boston, MA

Solaris, Java, Oracle 8i, PL SQL, Tibco Rendezvous

June 2000 – October 2000

Senior Consultant

Designed and built several Java components for a decision support system. These components include Trend Service, Migration Tool and Report Service.

Trend service retrieves from different sources and processes information about the trading trends.

Migration tool converts the old models represented by the restriction files into the new models stored in the Oracle database.

Report Service prepares information for batch reporting. It retrieves the report information from the database, and produces tables of information which it puts into the text files. Report service is capable of ordering and grouping the information inside the tables.

NetNumina Solutions

Boston, MA

NT, Java 2, WebLogic, J2EE (EJB, JSP, Servlets), Server 5.1, Oracle 8i, PL SQL, SQL Plus

February 2000–May 2000

Senior Consultant

Designed and built several components of an on-line e-commerce system allowing to purchase advertisement related information. Among them is User Session functionality, Session Garbage Collector, Licensing functionality, Configuration Service, Configuration Service Updater. The components were implemented based on WebLogic EJB, RMI and time services.

Designed Session Data entity EJB, allowing storing, retrieving and managing the life cycle of any serializable object belonging to a session.

Designed and implemented an RMI framework for notifying each of the Java instances of an Entity EJB about an update of the Java instances of the same bean. This framework allows invoking the read only methods of the Bean Managed Entity Beans without contacting the database.

Designed and implemented a generic method for fast updating attributes of the Java objects representing an entity EJB which are not a part of the entity (i.e. is not represented in the corresponding database row), whenever the corresponding value has to change.

Participated in design discussions with our Clients (MediaMap).

Designed the functionality allowing to invoke the bean methods dynamically and to protect the access to the System’s objects using Entitlements and Sharing.

Designed the generic XML inspired functionality for implementing the objects that can be accessed, created, destroyed and viewed by the users. The examples of these objects include Contacts, EdCals, Searches, Folders and Lists.

Customer Analytics

Woburn, MA

NT, Java 2, MS SQL Server, Transact-SQL

November 1999 – February 2000

Senior Consultant

Designed and developed Java SQL generator for the Data Pump project. The purpose of the Data Pump was to pump the data into a data warehouse from the database with a normalized schema. The SQL generator was generating the Transact-SQL code for versioning, mapping, assignment and some other transformations.

Wrote Transact-SQL code for populating some of the Data Pump fact tables, generating the keys for the new rows and populating some of the database non-versionable dimension tables.

Thomson Financial Services

Boston, MA

Solaris, Java 1.1, WebLogic4.5, J2EE (EJB, JSP, Servlets) Oracle 8i, PL SQL, SQL PLUS, SQLJ,

WebLogic Enterprise,

TUXEDO, Sybase, C++

July 1998–November 1999

Software Engineer

Designed and built a full featured set of Java Server Pages tools for adding and removing authorization groups, setting up the group permissions, adding and removing clients, setting the client permission group, client log on and registration front end facility and a tool, allowing to display the permissions for a client.

Designed and built Oracle and Java based session tracking facility, allowing to store in the database information about client actions: action name, action start and end times, client login name, action input, error messages, whether the action has succeeded.

Designed and implemented Oracle and Java based client registration and authorization mechanisms, allowing the client to register, set up the login name and the password and authenticate himself. Designed and built user entitlement mechanism, allowing to configure the user groups having access to different sets of the server functionality.

Designed and built a set of JSP and Servlet based tools for a database application. These tools allow to set up the client names for the stored procedures and their arguments in order to substitute their real names by those which are more meaningful to the client. The client names of the stored procedures and arguments were stored in the database. Another tool allowed to enter input arguments of a stored procedure and display its output.

Developed a generic Java EJB middleware based on WebLogic. The middleware allows retrieving the meta-data about the database stored procedures, dynamically creating a JDBC request for any of the stored procedures, pushing it to the database and pushing the output back to the client. The middleware can connect to several databases at the same time, making the stored procedure functionality of these databases transparent to the authorized clients.

Developed a generic C++ CORBA middleware based on WebLogic Enterprise and ORACLE OCI, contacting an ORACLE database and retrieving the meta-data about all of the stored procedures, then allowing the client to build a request for any of the stored procedures, transfer the request to the database and push the output of the stored procedure back to the client.

As a part of a team work on developing specifications for a new financial trading product. Participate in high level design and writing proposals.

Evaluated BEA WebLogic Enterprise CORBA implementation. Compared it with TUXEDO.

Worked on supporting, maintaining, debugging and developing TUXEDO based C++ middleware piece, responsible for communications between the client and the database. This middleware had functionality authorizing the client requests, establishing the database connection, translating the requests from client format into the database format. Gained intimate knowledge of both administrative and programming sides of TUXEDO. Learned JOLT, TUXEDO Java interface. Removed memory leaks due to the fact that TUXEDO does not call the destructors of the stack objects with dynamically allocated parts.

Developed a TUXEDO server, contacting TUXEDO management information base to determine whether the machine it is running on a master or a secondary node.

Developed a TUXEDO server for turning the secondary node into a master in case of a network failure.

Designed and developed a C++ software piece for copying data from the online into the offline database. The online database contained the run-time information about the clients and transactions. The offline database was needed in order to save information for longer periods of time, while being less accessible to the clients. My software was opening SQL files, obtained as a result of Log Analyzer run on the transaction log of the online database. It was filtering out unnecessary information, doing some other modifications and putting the information into the database. I also developed full controlling and configuring capabilities for this piece.

Designed and developed a message log filter. It is a C++ software piece, functioning as a string filter. It was using two sets of strings. One set contained strings for filtering in and the other for filtering out. Given a (possibly growing) input file, it writes to the output only lines containing the strings from the first set and not containing the strings from the second. That was done in order to help the product support to filter out the needed messages from the log files.

IDD Information Systems

Waltham, MA

Solaris, C++, ObjectStore, Java 1.0

Feb. 1997–June 1998

Software Engineer

As a part of a team, worked on design and development of a Client/Server object oriented database system to store historic pricing information for domestic and international financial instruments. The system was being developed using C++, ObjectStore OO database and proprietary FIREngine middleware. Created the functionality for storing and retrieving the integrated statistics parameters in the database

Designed and implemented a generic Client that takes the information about the keys, key types and values from files, in which these parameters are supposed to have been stored and sends the key – value pairs over to the database server. Then receives and unpacks the replies from the server. Developed a Server, to test the communications with the Client. First I implemented both the client and the server using RogueWave libraries, which turned out to be to slow, especially regarding their streaming capabilities. Because of it I re-implemented them using basic C++ libraries.

Designed and developed a proxy socket server that enables a user to access two databases via a single pathway. Any number of clients can establish connections to the server and send requests simultaneously. First a request is channeled to the primary database server. If it sends back valid data, it is passed back to the client. In case the requested data is not found in the primary database, the request is channeled to the secondary database. Full control and maintenance capabilities are provided for the server. The server is built using C++ and Ibus proprietary software package

Designed and developed a controller for the proxy server, for sending the control signals to it.

Designed and developed a Java GUI client for forming and sending requests to a database server as well as receiving and displaying the responses. The GUI was heavily relying on Java awt, net, util and io packages

Developed a database socket server translating from one message format to another. Any number of clients can establish the connections with the server simultaneously. After receiving a request in a certain format the server would translate it into a message, understandable by a database. The response is translated from a database message format into the format, used by a client. The server was built in C++, with the use of the Ibus proprietary software package and RogueWave package

Designed and developed middleware performing financial data roll-ups (obtaining pricing parameters for different periodicity based on daily data). The roll-ups were performed for weekly, monthly, quarterly and yearly periods. Also present to past and past to present data orders were processed. Communication capabilities with the front and back ends of a database were provided. The software was built in C++ with the use of the RogueWave class libraries

Debugged and partially re-designed a database server, responsible for information retrieval and adjustment processing

Created a test process, testing the information retrieved from a database on consistency (which is important in case of the multithreaded applications). The process was sending thousands of requests of several different types to a database server and checking that all the responses to the same request type would be the same. The test process was built in C++, with the use of the Ibus proprietary software package and the RogueWave package

Alphatech, Inc Burlington, MA

Irix, Solaris, C++


Oct. 1995–Feb. 1997

Software Engineer

Developed and implemented image processing algorithms in C++, C, and MATLAB. The algorithms involved image filtering, clustering, morphological processing, multi-scale algorithms

July 1995–Oct.1995

Software Engineer

Tested software designed for modeling and optimization of economic infrastructures. Created generic testing routines in C shell, awk and MATLAB

Debugged parts of the software

Dec. 1994 – June 1995

Traveled abroad

June 1994–Dec. 1994

Engineer Programmer

Developed software for fault detection in mechanical devices; used neural network and wavelet technology. Built part of the GUI to make the software user friendly


Spring 1998

Took a course in ORBIX

Jan. 1991–May 1998 Rensselaer Polytechnic Institute Troy, NY

Ph.D. Electrical, Computer and Systems Engineering

Thesis title “New Wavelet-Based Algorithms for Signal Decomposition and Reconstruction via the Theory of Circular Stationary Vector Sequences and the Zak Transform with Applications to Image Compression”

Extensively used C++ for simulations

GPA: 3.9/4.0

1990–1991 Rensselaer Polytechnic Institute Troy, NY

M.S. Electrical, Computer and Systems Engineering

GPA 4.0/4.0

1983–1988 Electrotechnical Communications Institute Leningrad, USSR

B.S. Electrical Engineer

GPA 4.5/5.0

Contact this candidate