|
|
|
ASP.NET 2.0
|
|
Cascading Style Sheets
|
|
Javascript
|
|
C#
|
|
Windows Services
|
|
AJAX (ASP.NET AJAX/Anthem.NET/Telerik)
|
|
XML WebServices
|
|
MSSQL/MSSQL Express |
|
Multi-Tier System |
|
.NET Remoting |
|
Generics |
|
VS2003/2005 |
|
Microsoft Active Directory
|
|
Web Farm
|
|
PhotoShop CS 8.0
|
|
User Interface Design
|
|
Dynamic PDF Creation
|
|
R&D / Intrests
|
|
|
|
|
Senior Engineer
|
Industry (Finance)
|
|
•
Create the Online Vendor Finance Center System - Composed of a web site and a windows service, it allows Direct Capitals Vendors' customers to apply for financing and allows Vendors to manage their business online.
Site Examples
System Diagram
|
|
•
|
Converted the old ASP based application to a 3 tiered (User Interface, Business and Data layer) ASP.NET 2.0 web application, employing Ajax technology by using Microsoft ASP.NET AJAX and Telerik controls including menus and 'please wait' screens (that dynamically appeared; centered, like on a thick client).
|
|
• |
To avoid having hundreds of Direct Capital's customers change links on their web sites to a new OVFC site on Direct Capitals web servers, the old default webpage page was rewritten to redirect itself to the new OVFC site, passing the vendor's name. The new OVFC is one site; each vendor has its own configuration data which is stored in a sub folder using the vendors name, to display its individual information, like name, logo, Direct Capital representative, etc. This allows the OVFC to be scalable. |
|
• |
So a classic upgrade process could be avoided, the OVFC checks the validity of the new web site based on the vendor name. If the new site doesn't exist, it dynamically creates a new OVFC from old the OVFC by creating the new folder, the new XML configuration files and retrieving and coping any data it may need. This also guaranteed that the new sites would work properly on the productions servers, since deployment of the new site didn't interfere with the old site; they were able to run side by side (till the change was made to the default web page). Created a small utility that changed the default asp file to do the redirection, the change over from the old site to the new site took under one minute. Also in the case of catastrophic failure, this process allowed for an easy rollback. |
|
• |
Authentication of vendors is taken care of by using the ASP.NET 2.0 Login controls and MSSQL to store membership information. The site allows for automatic password recovery and new user account requests. New account request are stored in MSSQL and initiates an email to the OVFC administrator, notifying them of that request. Once approved, an automated email is sent with account information and links to the website. The OVFC administration application authentication is taken care of by adding and removing employees from Microsoft Active Directory. |
|
• |
The first major piece of the OVFC is the eBay listing tool, a multi-step wizard, that allows vendors to easily add items to eBay with a minimal amount of effort and steps. Used Visual Studio 2005 to connect to the eBay WSDL page and created a proxy object. Using this proxy, the OVFC can search eBay, show the items user has sold, unsold and are active. It allow allows the vendor to add items to eBay to include custom title, description, category selection, prices, duration, images and more. As the vendor finishes steps in the wizard, breadcrumbs are created to allow them to easily navigate back and forth to modify or fix data. Simple switches in the web.config allow the site to communicate with the live eBay site or the development eBay site. All events are tracked, and a history is kept. All eBay functionality is in a separate assembly to allow for unit testing. Tips are displayed to the user that are housed in XML files so they may be changed with recompiling or deploying the site. |
|
• |
Created custom controls like standard error controls and page title controls (rendering CSS to achieving desired effect like rounded corners, square corners or a mixture of both). These are portable so that they may be used by others in other Direct Capital web site development. |
|
• |
Vendors are allowed to calculate payment information for their clients based on Direct Capital rates and loan amount using quote calculator. They are able to create proposal for their customers with this information. PDF’s are dynamically created base on a PDF template and the site either directly email the proposal to their client or allows them to download it. |
|
• |
To allow the Online Vendor Finance Centers to run autonomously and efficiently, the Online Finance Center Support Server; a C# Windows Service, was written. At start up, it gets information from SQL like representative names, emails, vendor rates, etc and caches it, storing that data multiple efficient C# 2.0 generics structures emulating a mini database in memory complete with indexes. Implementing interfaces, .NET remoting allows access so that the web site so can get information. Microsoft Message Queue is used to pass metrics and customer information from the website to the service. This was engineered so when the service was updated the website could still function with out relying on the service. So that Direct Capital can measure web hits, I create the Metrics Service. A multi-threaded, multi-queued windows service relying heavily on generics, it accepts data place on Microsoft Message Queue from the website. Metrics are saved in SQL and used in reporting to marketing. Vendors are also allowed to view their site statistics online which are graphed out in a pie chart. |
|
•
FolderSync - since the OVFC is deployed on a web farm, the FolderSync web service synchronizes folders and files. Source and target folders are added to the app.config that the service will monitor. If files are created or modified, the service gets a notification and will then copy the file to the target. Services are run on both web service thus guaranteeing that files are always in sync. This service allows the OVFC to avoid having to copy uploaded image for eBay to both web servers.
|
|
|
|
|
|
ASP.NET
|
|
C#
|
|
AJAX
|
|
XML WebServices
|
|
Message Queue
|
|
2.0 Data Web Controls
|
|
XML/XSLT
|
|
MySQL/MSSQL
|
|
VS2003/2005 |
|
Distributed Systems
|
|
UML
|
|
Multi-Tier System
|
|
.NET Remoting
|
|
Windows Services
|
|
Generics
|
|
|
From:
|
June 2005
|
|
To:
|
July 2006
|
|
Explorica
|
Boston MA / Portsmouth, NH |
|
Senior Engineer
|
Industry (Student Travel)
|
|
•
|
SiteCatalog – The main search engine for Explorica’s web site. Using webservices to expose search functionality, data like specific tour information, availability, pricing, airports, was constructed by using MSSQL’s full text engine and dynamically generated SQL statements based XML criteria. Data was returned as XML to allow the website to use XSL to transform data
|
|
•
|
SiteCatalog2 – Migrated version 1 of the SiteCatalog to version 2. Replaced Microsoft SQL Server with MySQL Server, migrated all data and stored procedures, change data layer to work with MySQL. Wrote a full text engine in C# to replace the full text search engine in MySQL which was able to self index 75,000+ words. Using generics and linked lists, it completed a full text search in less than one second and retrieve necessary information. SiteCatalog2 was a Service Based application, complete with administration utility written in C# to manage the SiteCatalog2. The application and webservices use .NET Remoting to communicate with the Windows service. Data was saved to a cache so loading would be faster during start up. It also merged the NotifyEvent application and employed the use of Microsoft Message Queue to receive messages from other Explorica systems.
|
|
•
|
NotifyEvent – Allows systems to post events using Microsoft’s Message Queue. Other Explorica systems needed a way to update the SiteCatalog. Microsoft’s Message Queue was used to guarantee event delivery. Once the SiteCatalog receive the message, the appropriate data was successfully retrieved, the message was deleted.
|
|
•
|
Archive Project – Using MySQL as a backend and webservices, added new functionality to the Product Management System to allow to archiving of tour information. Constructed some webpages to allow management and employees to use this data as an easy and direct way to calculate tour costs of different currencies for different date periods with different archives. AJAX was employed to allow for an assisted tour name search. Architected using UML 2.0.
|
|
|
|
|
|
ASP.NET 2.0
|
|
C#
|
|
XML |
|
Data Web Controls |
|
MSSQL |
|
.NET Remoting |
|
|
Senior Engineer
|
Industry (Anti-spam and Anti-virus for Email)
|
|
•
|
Currently developing DecludeConfigure, a C# .NET application that allows a user to configure settings using a graphical user interface (GUI) instead of a cryptic configuration file. Work includes the following:
|
• |
Allows an administrator to configure Declude software on any PC on the network from their local machine |
|
• |
Integrated a previously written side application that provided an easy way to notify Computerized Horizons for technical support. User configuration files, diagnostics, registration information along with customer questions are uploaded to a SOAP-based Web Service which saves the data into a SQL Server database using ADO.NET. A support ticket number is generated for the customer. |
|
• |
To guarantee data integrity of a complex grid control, specialized self aware objects were attached to each cell. Using reflection and events, polymorphic objects save and load their own data using generic functions. This cut down in development time with newly created object types, the saving and loading of data was automatic due to the inherited abstract base class, forcing this functionality. |
|
• |
Using XML Web Services, new updates are automatically downloaded to customers’ machines and copies of the configuration files are backed up to Computerized Horizons to safeguard customer-specific data. |
|
|
•
|
Eliminated the need for a higher end, more expensive installer by developing six MFC C++ DLLs that were used in conjunction with each other to extend the functionality beyond the scope of InstallShield Express. If an error occurs during the installation process, a detailed trace log is created and forwarded to support for troubleshooting.
|
|
•
|
Prototyped a SMTP Sink to Microsoft SMTP service. Using Visual Studio 7.0, built a working 'proof of concept' C++ DLL that would hook into Microsoft's SMTP service, captured email to be scanned by the Declude product and reintroduced the email back into the mail system as clean email.
|
|
•
|
Took over Declude, the company’s main anti-spam application. Instituted coding standards, refactored major parts of the code, introduced concrete, repeatable testing methodologies using Virtual Server 2004/05 to help measure results accurately. To overcome Declude being run on the same email, devised a method to allow each stateless DOS instance to communicate during runtime.
|
|
•
|
Created Multi-Threat Level Database - a system of applications that receive Virus information from Declude's Antivirus in DNS format, adds them to a SQL server database (holding millions of records) using Stored Procedures and leveraging COM as the pass thru medium.
|
|
|
|
|
|
From:
|
Jan 2004
|
|
To:
|
May 2004
|
|
Infinidex
|
Boston, MA |
|
Senior Engineer - Contract Position
|
|
•
|
Created a Microsoft Outlook COM add-in extension which added a toolbar and toolbar button giving Outlook users the ability to launch Interdex, the main application of Infinidex, from within Outlook. Intercepted when a user clicked “Reply” to determine if the email message was sent from an Infinidex server, which would then display a custom reply form
|
|
•
|
Merged specialized UI control and menu C# sources from a .NET DLL assembly into the main application.
|
|
•
|
Provided development support and maintenance for Interdex, a system designed to leverage members’ contact information to others in the organization, allowing users to establish business relationships.
|
|
•
|
Created an Intranet web site with forums to Harvard Business Schools in C# and ASP.NET. Stored and retrieved data in a SQL database that captured user information, allowing them to join the site
|
|
|
|
|
|
Palm SDK
|
|
CodeWarrior
|
|
Visual Source Safe
|
|
C/C++
|
|
|
From:
|
Nov 2003
|
|
To:
|
Dec 2003
|
|
PHT
|
Charlestown, MA |
|
Senior Engineer
|
Industry (Pharmaceutical)
|
|
•
|
Provided C++ support on eProDesigner, an eDiary product that allowed companies to collect conclusive data on palm handhelds, to enable successful clinical trials. Handheld devices were configured to notify patients when to input data via alarms. This data then was collected at PHTCorps servers, transferred over the Internet on the HTTP protocol, resulting in reporting and data mining capabilities for the companies conducting the trial. Each trial had some amount of custom coding to be done.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
MFC
|
|
Borland C++
|
|
Visual C++
|
|
CodeWarrior
|
|
TCP/IP |
|
MSSQL |
|
Symbol Palm OS |
|
StarTeam |
|
Multi-tasking and Threads |
|
StarTeam |
|
Symbol SDK |
|
|
Senior Engineer
|
Industry (Vending)
|
|
•
|
In charge of handheld development of VendMAX, an inventory application using barcodes, designed to manage routing and warehouse functionality for vending and office coffee supply companies. Comprised of Symbol handhelds using Palm OS (68K Processor), which communicates with a TCP/IP server written in Borland C++ to sync data between handhelds and a SQL server database. Upgraded the software to the next version to include the ability to track the use of cold food.
|
|
•
|
Ported handheld applications to Palm Object Library (POL) and WinCE.
|
|
•
|
Modified Palm Emulator to easily load and save sessions by introducing a UI dropdown. Added the ability to export certain databases from the emulator. Began version that allowed for automated testing through the recording and playback of events.
|
|
•
|
Viewed the data in the exported databases using Vendmax DatabaseInspector, a Windows MFC-based application that reads palm databases to assist in easy debugging.
|
|
|
|
|
|
MFC
|
|
Visual C++
|
|
Symbol Palm OS
|
|
Visual Basic
|
|
Installshield |
|
ATL - COM |
|
Access |
|
ASP |
|
FrontPage |
|
CodeWarrior |
|
Palm SDK |
|
Symbol SDK |
|
TCP/IP |
|
|
Senior Engineer
|
Industry (Trade Show Registration)
|
|
•
|
Wrote four lead applications and a menuing system on the DataGenie, Data General’s hand-held computer. Devised a system that automates the downloading of data from the DataGenie to the Lead Download system so that no interaction, other than physically connecting it to the computer, would be required.
|
|
•
|
Developed the ExpoScan and Swipe and Go applications using both Symbol’s and Palm’s SDK. ExpoScan used the symbol 1740’s internal bar code scanner to gather 1D bar codes. Swipe and Go used the attachable badge reader to gather lead information and was able to display a pre-defined set of questions and answers. Wrote Conduits for both applications, which downloaded the saved leads from the devices. Also created an InstallShield extension DLL that upon installation completion spawned a wizard that guided the user through configuration settings.
|
|
•
|
Built ExpoSerialDecode with Visual C++, an ATL COM based object that aggregated the Microsoft Comm control using smart pointers. The control would enumerate the serial ports, open them and wait for data. Once received, encrypted badge information would be decoded and returned in a set of properties and methods. This ActiveX control was able to accomplish in three lines of code what previously took hundreds in Visual Basic.
|
|
•
|
Developed a method to read and write information to and from the binary, allowing it to save registration information directly into the DLL. This allowed the reuse of the DLL without reinstalling it. Built a configuration application that allowed anyone to enter this information without having to recompile code. This completely freed up an engineer from modifying code for each show.
|
|
• |
Created our flagship product, the Attendee Profiling System, using Visual Basic and Visual C++. This application would gather attendee information at trade shows saving the data to an Access database using DAO. Two wizard tutors would guide the users to connect a badge reader to the computer and input a set of questions with answers. Reports were created in standard HTML from the lead data so it could be viewed in any browser. Using the ExpoSerialDecode ActiveX object to read and decode badges, it also performed the licensing task, expiring at the end of the trade show. The client then could purchase a ‘license disk’, allowing it to be used for the next show. Worked on a Web Site using ASP that would allow a client to pay for this disk over the web. This meant that they could be totally independent of Expo International to gather their lead information. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
MFC
|
|
Visual C++
|
|
Win32
|
|
RPC
|
|
UNIX |
|
Network Development |
|
|
Engineer
|
Industry (Network Administration Software)
|
|
•
|
Helped produce StreetMeter, a client-server based product designed to meter applications running on Banyan file services. The administrative client, written in Visual Basic, referenced functions in a DLL written in C, to communicate via remote procedure calls to a UNIX-based service. Each client agent, written in C++, would monitor system calls and retrieve access and license rights to allow or disallow running instances of the metered application.
|
|
•
|
Was lead engineer of a team of three that migrated an earlier version of Server ScanMaster, a 16 bit, client-server based application, designed to scan and clean Banyan network file services from viruses, to a new MFC 16/32 bit application sharing most source code. Using MFC, the administrative client would also communicate via remote procedure calls to a UNIX-based service that scanned the file services for viruses.
|
|
|
|
|
|
|
|
|
|
|
|
Web Services
|
|
.NET Remoting
|
|
SOAP/WSDL
|
|
XML
|
|
C# 1.1/2.0 |
|
MFC |
|
Visual C++ |
|
ATL/COM |
|
Win32 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Consiliumsoft |
www.consiliumsoft.com |
|
Lead Engineer |
|
Founded Consiliumsoft, a shareware company |
|
|
•
|
CSFastRunII – a drop-down menu (combobox) that becomes part of the taskbar that holds a list of previously added shortcuts, allowing the user to easily execute an application.
|
|
•
|
CSPrintingEngine – a COM object that allows software engineers to add printing capabilities to their applications with no printing knowledge required. Allows for printing of images, different text fonts, shadows, bullets, tables, lines and rectangles.
|
|
•
|
CSBuildIt! - A content management application consisting of CSBuilder, a MFC Windows-based WYSIWYG authoring application and CSPalmBrowser, a POL palm-based browser. CSBuilder allows anyone to dynamically create screens by dropping interface controls within a form, adding logic behind the objects, linking them to other pages to create XML output source. This source is read by CSPalmBrowser which recreates the view by reading the XML and producing the page. Once the interactive session is finished (test, survey, etc) the data is saved back in XML format, and once transmitted back, can be reported on, viewed or printed out. This project is in development with future additions to add support for Windows CE, RIM Blackberries, HTML and cell phone support.
|
|
•
|
Consulting Work
|
|
•
|
Convergent Learning - Created a Palm micro browser that displayed text, images, edit controls, standard buttons and radio buttons (not native to Palm). It used smooth scrolling to display its information. It also used an authoring tool to create a markup language based on HTML; it used these rules to display its information. Activity is saved and downloaded. Paths are determined with conditional branching. |
|
•
|
CMP Staffing - Created Employee Time Tracker, an application designed to track employee work schedules using assigned 2D barcodes that are printed and scanned. Employees checking out of work would sign out using a Welch-Allyn signature capture pad (like one sees in Home Depot) which was saved. This would be validation that the employee was there when signing out. Reports generated HTML and could be viewed and printed via a browser, saving consulting costs. |
|
•
|
Reed Registrations - Contracted to write a registration application that allows Reed to keep track of exhibitors at trade shows. Calculates totals, allotted and remaining values, prints out 3 different canned reports and badges that allows entry to show floor. |
|
|
|