Post Job Free
Sign in

Data Application

Location:
2474
Posted:
October 14, 2010

Contact this candidate

Resume:

M Farid Zidan

* ******* **, #**

Arlington MA ***74

781-***-****

*****.*****@*****.***

Education Bachelor of Science in Computer Science, Boston University, May

1990.

Graduation GPA 3.44.

Skills C++, MFC, STL, SQL & Database Management Systems, ODBC API,

PowerBuilder, HTML, XML and XSLT, Python, multi-threading.

3/03-present ISV/Developer, Zidsoft, Arlington

Develop Windows Client/Server database data comparison and

synchronization application CompareData using Visual Studio

C++, MFC, STL and native ODBC API. Support most of the popular

DBMSs including SQL Server, Oracle, DB2, Sybase, MySQL, etc.

Application is written in C++ front to back including UI,

business logic and backend interface.

. Use native Windows threads to implement heavily-threaded

architecture for enhanced performance. Use critical sections,

events and semaphores for thread synchronization and

messaging. Design and implement application where tasks are

performed in worker threads and UI thread is only used to

update UI; worker thread tasks include parallel data

retrieval, comparison, sorting, filtering, data

synchronization, generate synchronization script, SQL script

generation, saving comparisons as HTML and generating XML.

Implement cancel functionality for all tasks including tasks

that may be blocking executing SQL statement or waiting on

resource handles.

. Use custom-draw, owner-draw, owner data, gdi/gdi+, Windows

controls and Windows theme API to implement application UI to

support both Windows classic theme and Windows themed UI

. Update application UI to be DPI-aware and to support Windows 7

and non-ANSI user locales (including right-to-left locales)

. Use memory device context class to reduce UI flicker

. Design and implement animation of data retrieval, sorting and

progress using gdi+

. Design and implement properties grid UI component to support

embedding comboboxes, method-driven value properties and

static properties.

. Implement create-on-demand interface for UI objects to

minimize user-object/gdi handle consumption whereas the C++

class is created but its corresponding Windows object is

created only when necessary.

. Implement tooltips (ANSI/Unicode) for all applicable UI

objects including indicators, counters, truncated text, etc

and implement in-place tooltips for UI objects as appropriate

. Design and implement font caching singleton font class for

caching and sharing fonts among UI objects

. Implement compound keyboard shortcut keys (two key strokes:

Ctr+K followed by Ctr+M, for example) and implement

hiding/showing MFC application menu by using ALT key (like

IE8). Update MFC message routing to pass messages in an order

that is tailored to the application and where the object that

currently has focus gets first crack at processing the

message.

. Use MSXML xml parser COM object and XML/XSLT to implement data-

driven generation of SQL scripts

. Support ANSI and Unicode data retrieval, comparison,

synchronization, display and conversion by the application.

Interface application to UTF8 Scintilla text editor for text

editing/display and handle both ANSI and Unicode text

. Extensive use of C++ templates to implement framework for

working with compile time and run time database tables and

front end UI. Use functors, singleton, factory templates,

mixin, service classes, inheritance, virtual

classes/Interfaces to consolidate application code to enhance

code reliability and quality. Use custom C++ classes for

application enumeration objects to enforce compile time data

type checking of enumerators and enhance code quality

. Use C++ output streams for generating script previews and

writing to the file system and handling both ANSI and Unicode

data and supporting non ANSI user locales.

. Use STL container classes and algorithms for working with

database resultsets and application objects including building

of topological sort maps, sorting, filtering and breaking of

cyclic dependencies in order to synchronize data in the

correct order

. Design and implement custom classes for working with native

ODBC API for optimal performance for retrieval and update of

database data that is cross-DBMS and is 10 to 100 times faster

than ADO or 4 GL middleware including the use of bound

parameters, prepared sql statements and parameter bind offset

pointers (depending on ODBC driver support for the

functionality). Test application ODBC compatibility with 40+

different DBMS/ODBC drivers

. Update application to 64-bit Windows and target both 32-bit

and 64-bit Windows platforms as native platforms

. Implement memory handling for data retrieval, update and

synchronization with strong exception handling including

retrieval and update of ANSI and Unicode data and retrieval of

blob and binary data in chunks and creation of application

properly aligned data buffers, deallocation and efficient

copying/moving of buffers.

. Implement connection management classes to allow caching and

sharing of database connections and automatic closing of idle

connections

. Partition application into 11 dlls and one exe and separate UI

from business logic to enhance application modularity,

development and compilation/debug cycles

. Implement command line interface to application functionality

including support for internal scheduling of tasks and logging

of application runs and results to the application repository

DBMS

. Convert application from using PVCS version control to IBM

Jazz version control

. Use Sybase PowerDesigner for data modeling of the application

backend repository database for 10+ databases.

1/01-3/03 Senior Software Engineer, McKesson, Newton

Use Microsoft Visual C++ to develop and enhance high volume

data warehouse data loader that uses ODBC to validate and load

data into MS SQL Server, Oracle, and Sybase backends.

Integrate loader with third-party dlls for additional analysis

of loaded data. Create new C++ classes/architecture to

retrieve/update database tables using ODBC and significantly

enhance loader functionality and performance by implementing

logging and caching of lookup data.

5/00-12/00 Programmer/Analyst, Harvard Management Company, Boston.

Use PowerBuilder and Sybase to develop object-oriented

reporting architecture for mutual funds application PAM and

Sybase for the Trusts and Gifts group. Design and implement

data-driven replication of PAM tables into Sybase.

9/97-5/00 Sr Programmer/Analyst, Key Education Resources, Boston.

Use PowerBuilder and PFC with Sybase to develop object-

oriented school support module of client/server system for

maintaining school information. Design and develop

PowerBuilder GUI, Sybase TransactSQL procedures and triggers,

use Erwin for data modeling, integrate PVCS version control

for team-development, develop Python scripts to integrate

development environment, enhance and extend PFC. Merge custom

class library into PFC. Responsible for development standards,

applications, tools, and environment.

1/96-9/97 Client/Server Developer, InfoCellular, Inc. (Sema Group

Telecoms), Marlboro.

Work in team environment on PowerBuilder development of new

client/Server system using PowerBuilder, Oracle and Windows.

Develop reference management, configuration tables, inventory,

file import, and database transaction management modules.

Implement and enhance framework/class library for PowerBuilder

development.

7/94-10/95 Programming Support Programmer, Collaborative Medical Systems,

Waltham.

Design and program in Microsoft Visual C++ and MFC Windows

installation program for external editor interface to M

database system. Program invoice interface between company

internal M accounting system and new Great Plains Dynamics

client/server accounting system.



Contact this candidate