PROFESSIONAL SUMMARY
- Over 17 years of experience in Software design, development, customization and optimization of commercial
and business applications.
- Excellent Project and Product Management skills
- Strong knowledge of Data Structures (STL) and Algorithms
- Excellent knowledge in Object oriented Analysis [OOA], Design [OOD] and Implementation [OOPS]
using C++/VC++/C# & Java. Distributed component development with CORBA / Java and ActiveX/COM/ATL
Controls using Visual C++ and the .NET Technologies.
- Developed general purpose Instruments Controls being used in embedded mailing systems.
- Excellent knowledge of Encryption techniques and Socket Programming
- Architected and implemented products, like visual-GIS, IoLyzer (Logic-Analyzer, hardware based),
Health-Monitor (Real-time App for visualizing the health of instruments), Stock Tracking System,
Point of sale (POS) system, Rule based software, Specialized Dialer using TAPI, and
Plant Mimic / simulation packages.
- Patterns Applied: - Façade, Factory, Adaptor, Proxy, Composite, Template, Iterator, Singleton, Builder,
Flyweight, Strategy, Mediator, Visitor and Observer patterns.
|
TECHNICAL SKILLS
|
|
Languages
|
Exp
(yrs)
|
Operating Systems
|
Development Tools
|
Technologies
& Libraries
|
Back-ends
|
|
|
|
|
|
|
|
|
C / C++
|
17
|
Windows 9x, NT, 2000, XP
|
CASE Tools JVision,
GD-Pro, Visio
Rational Rose-RUP, Enterprise Architect
|
Win32 API
|
MS-SQL Server 7x, 2000, 2005, Stored Procedures with Triggers
|
|
Visual-C++
|
12
|
Windows CE
|
MS Visio
|
STL
|
Oracle 8i, 9i
|
|
UML
|
12
|
UNIX
|
MS Visual Source Safe (VSS)
|
MFC,
OLE DB / ODBC
|
Internet Information Services (IIS)
|
|
MFC
|
8
|
Linux
|
PVCS
|
ATL
|
|
|
C# (C-Sharp)
|
6
|
DOS
|
IONA’s Orbix
|
ActiveX-Controls
|
|
|
. NET 1.1 / 2.0
|
6
|
|
Visibroker
|
CORBA
|
|
|
VB .NET
|
4
|
|
Visual Studio-6.0
|
. NET Remoting
|
|
|
WinForms .NET / Smart Clients
|
5
|
|
Visual Studio.NET
|
COM/DCOM/COM+
|
|
|
SQL
|
7
|
|
|
|
|
|
Asp.NET
|
5
|
|
Embedded Visual Tools
|
XML Web Services
|
|
|
MSMQ
|
7
|
|
|
TCP / IP, Sockets
|
|
|
XML/XSD
|
7
|
|
|
ADO/ ADO.NET
|
|
|
Java
|
4
|
|
JSP/J2EE/ J2SE/JRun
|
Multi-threading
|
|
|
Java Script
|
4
|
|
Xml-Spy from Altova
|
Winsock API
|
|
Professional experience
- Senior Software Engineer / Architect March. 2004 - Present
Responsibility: -
- Tools being used: Visual-C#, .NET Framework 2.0/3.0, Visual C++, Threading, MSMQ, UML modeling using Enterprise Architect, ADO.NET, ASP.NET, Win-Forms, XAML, Smart-Clients, WPF, Web-Forms, WF, XML, Web Services, Web Services Enhancements 3.0 Service [WSE], WCF, SOAP, Window Services, Drivers, MS-SQL 2000/2005, IIS-6.
- Work involves, requirements analysis, making use cases and realizing them, making prototypes, sequence diagrams, modeling class diagrams and implementing using visual C#. Developing service oriented architecture [SOA] so lots of interfaces are being developed in xml-web-services using SOAP protocols / SOAP messaging. We have a multiple tier system, Presentation, business and data layers, where data-layer is heavily using ADO.NET to communicate with the back-end MS-SQL2000. The Web-services consumers range from thick clients, Win-forms to Web-forms [ASP.NET] and smart-clients. Developed lots of trend diagrams, and imaging stuff using GDI+. All the messaging and load balancing is done via SOAP-MSMQ. We are using Web Services Enhancements 3.0 Service [WSE-3.0] that helps create interoperable Web services with advanced Web services features like secure your messages using digital signatures and encryption, send attachments, route messages through intermediaries, and more. Also using various design patterns like Façade, Model-View-Controller [Observer], Proxy and Factory patterns. Also using Application Blocks for .NET for Caching, Configuration, Data Access, Cryptography, Exception Handling, Logging & Instrumentation and Security Application Blocks. Used ASP.NET 2.0 Memberships, Role Management and Authentication.
· Developing a complete backup solution in .NET 3.0 that is highly scalable, secured, and robust and at the same time maintainable. Involves developing web services using Windows communication foundation (WCF) for publishing interfaces for different remote backups / restores like for FTP media etc., and building business components for facilitating different facades for encrypted backups and also utilizing LINQ for the data-access layers. The interfaces are published via Facades and are configurable and are based on the contract first principle that is all the business objects are conformed to xml Schemas (xsd). Also developing WinForm based Smart-Client as consumers using Windows Presentation Foundation (WPF) and XAML. The forms all uses the Data-binding features provided by the .NET. While developing the application developed all the workflows required, using Windows Workflow foundation (WF) and then implemented all the scenarios required for backups and restore using C#. Highly customizable for all the clients as a consumers for the backup/restore web services.
- Lead Architect Sep. 2003 – Feb. 2004
Responsibility: -
· Tools used: Visual C++, Visual-C#, .NET Framework 1.1, MSMQ, UML modeling using Enterprise Architect, ADO.NET, ASP.NET, XML, Win-Forms, Smart-Client, XML-Web Services using ASP.NET, MS-SQL 2000, Win-XP, IIS-5.1
- Architected, designed and developing distributed Task manager for thecompany Product Market-Master. The Software is composed of a smart client [Winforms] those records and controls the task scheduled and consumes two ASP.NET XML Web services One Web service is responsible for data access provides a consistent interface for data access layer using ADO.Net and provides serialization into XML format. The Other Web service implements the Business Logic, like how to deal with the daily, weekly, and monthly tasks etc. Since the Project was of Asynchronous and distributed nature, The Task Queuing is done using MSMQ.NET. This involves sending / receiving transactional Messages, Prioritization, and Journaling of the queues for Tracing and history management. Also all the messaging across different components is done using the in-house MSMQ framework. This way reliable loosely coupled and more cohesive reusable components were developed. UML is used for all the documentation like use-cases, Class diagrams, sequence diagrams and State Charts.
- Senior Software Engineer / Architect June. 2003 – September 2003
Responsibility: -
- Tools used: visual-C#, Visual C++/COM/COM+/DCOM/ActiveX/ATL, C#/ .NET, UML modeling, Windows-XP, ADO.NET, Winforms, SmartClient, XML, ASP.NET, MS-SQL 2000
- Remote Object browser is a prototype to create a thin web based client, which will provide services to multiple users to monitor and command BAS devices remotely. ROB consists of two parts Remote Application Services: - ASP .NET Web Services that get the device info and pass it back to client. Object Navigator: - Winforms, Smart-Client Application that allows user to read/write the BAS device data. Using Visual C#.Net. Developed the Front-end windows UI forms for ROC used for setting the configuration parameters of the controls and update the backend using Ado.NET and SQL-Server-2000 using XML / SOAP/ Webservices as a pipeline.
- Senior Software Engineer / Lead Developer Feb. 2003 – June. 2003
Responsibility: -
- Tools used: Visual C++/COM/COM+/DCOM/ActiveX/ATL, C#/ .NET, UML modeling, UNIX, Windows-XP, ADO.NET, XML, ASP.NET, MS-SQL 2000
- Porting an internet/intranet Client/Server based billing system developed in visual C++ to .NET technology using visual-C# and Winforms, .NET Remoting and ASP.NET Web Services. Gone through every phase of development, from requirement analysis, object oriented design and implementation using C# and documented with UML Diagrams using Rational CASE Tool. The Project is n-tier system, with pluggable presentation layers, business logic layer and multiple server-side layers with MS-SQL & ORACLE 8i on the backend. Used ADO.NET / XML for data querying from the server-side. Used Custom designed OLAP tool for viewing data in different perspectives for analysis purposes.
Senior Software engineer (Lead Architect) July 2001 – Jan. 2003
Responsibility: -
- Tools used: Acrobat 5.x, Visual C#.NET, Winforms, Smart-Clients, Computer Graphics, .NET1.1, Remoting, Visual C++/COM/ COM+/DCOM/ ActiveX/ATL, Java / Jbuilder / JSP / J2EE / J2SE JRun, UML using Rational-Rose, PVCS, Unix, Windows-2000, Sockets, XML, MS-SQL-7.0.
- Developing client/server based graphical analysis tool for real-time monitoring & trouble shooting of the Mailing system using Visual-C# and Smart-Client based WinForms , .Net Remoting, ADO.NET & ASP.NET. Gone through every phase of development, from requirement analysis, object oriented design and implementation using C#.
- Developed and ported a graphical tool for real-time monitoring & trouble shooting the Mailing machine system remotely using Sockets in Java / Jbuilder, product name is "Health Monitor". This includes all the phases from requirements gathering to use-cases to design using UML to Implementation and writing of all the design and user manuals.
- Developed a standalone distributed graphical tool for real-time monitoring/trouble shooting of the Mailing machine system in Visual C++. Product name is "Health Monitor" using Windows Sockets. Work is currently in progress to move the existing code base of the location server to C#.
Sr. Software Design Engineer October 2000 - July 2001
Responsibility: -
· Tools used: GNU C++/UNIX [SOLARIS]/CORBA (IONA Orbix) / Jbuilder / JSP / J2EE / J2SE, Visual C++ ActiveX /ATL /COM/COM+/ DCOM, DELPHI, UML, XML,
MS-SQL-7.0, ORACLE
· Developed interface in Visual C++/NMake/Java for a rule engine Jess/CLIPS, that will produce Jess Language structure and shall be used in developing rule based business Objects.
· Tools used: GNU-C++/UNIX [SOLARIS] + Visual C++/Windows2000 + Java + UML, Merant PVCS/PCLI (Version Control)
· Developed a distributed CORBA based FTP application and calling some of the scripts remotely and then merge those scripts in C++ Objects. The front end is in Java and at the server side employing C++ for developing the servant objects. The development involves writing interfaces in IDL, then using the compilers for IDL2Java and IDL2CPP. The design then uses the factory, adaptor & iterator patterns to implement these interfaces. The IONA’s Orbix is used as a CORBA Middleware for this project.
Sr. Software Design Engineer May 2000 - October 2000
Responsibility: -
- Tools used: Borland C++, Visual C++/ActiveX/COM/DCOM, UML, WinNT, WinCE, ODBC, MS-SQL 7.0
- Porting Borland C++ code to Visual C++/ MFC for Windows CE
- Communication with the sockets, using MFC ActiveX Controls
- Developed a reusable class for interacting front-end with the backend using ODBC, SQL
- GUI design and development using MFC/Visual C++
- Debugging and Maintenance of the software's
(Assistant Professor, Faculty) February 1999 - May 2000
Lead Analyst & Developer Responsibility: -
- Tools used: Visual C++/MFC/UML, WinNT, ODBC, SQL
- Developed IoLyzer Software
- Designed & Developed Interface software IoLyzer in VC++/MFC for an embedded system, being used in the synthesis of embedded systems, for a US based Company RDLabs.com.
- Here are some details regarding its development:
- Created UML diagrams from use-cases, class-diagrams and interaction diagrams.
- The GUI is MDI based and the software patterns applied in building this software are Factory, composite, observer, and strategy and iterator patterns.
- The IoLyzer has four main functions: Digital Logic Analyzer, Digital Pattern Generator (Patterns Playback) EPROM emulator, PCI Bus Monitor. I have implemented Both Digital Logic Analyzer and Playback part. The Hardware has four pods with each has 32 channels in it.
- What the program does it interacts with the hardware and Instead of the user being forced to specify more complicated triggers this analyzer will capture everything and let the software sort it out. Say when certain trigger or patterns is occurred, it grabs the data from the Pods and displays it on the Screen. The Engineer then goes through the details of the channel for synthesis as well as troubleshooting.
- The software has the option to set delays, trigger patterns and other Syntheses Related information. The software has the capability to play already recorded pattern and display that on to the screen.
- The IOLYZER combines a high-speed 50/100 MHz logic analyzer with great memory depth 32 Meg deep and width of 128/64 channels. Combined with its differential storage capability it provides the engineer the ability to store every event.
- Advanced Data Structures using STL
Project Leader October 1997 - May 2000
Responsibility: -
- OOD mentor, instructor, and practitioner. Responsibilities include working with development teams to solve design problems, implementation of critical designs. Aid development team in application of OOD and C++/JAVA.
- Web applications using HTML, XML, Java-Script, and Java.
- Developing general purpose SCADA in Visual C++.
- GIS: Involved in the R&D and up-gradation of a company product, Visual GIS, that's a complete visual mapping solution for the Oil companies fully integrated with layers, projections and symbol library. This is developed in visual C++ using UML diagrams and the software patterns like: Factory, Composite [for library. development], Iterator [Iterating through the composite list] and The Observer patterns that mostly is applied in Frame-work design.
The reusability was of important consideration, many reusable classes were developed that can be employed in any project. Like animated GUIs, owner-drawn Combo-boxes and Special purpose list-boxes, ODBC connectivity Classes.
- Porting of the GIS from VC++ to Java, so that an applet loads dynamically the designed GIS.
- Special Purpose Dialer: Developed a Special Purpose 32 bit Windows NT/95 based Dialer using Visual C++/UML/TAPI-2.0. It is a sort of Business-Audio Dialer with features like rescheduling/ Call logging facilities.
- Tools used: Java, Visual-Basic (VB), Visual C++/MFC/COM, UML, WinNT, ODBC, JDBC, Java/UNIX/Solaris, AutoCAD, Raster to Vector Conversion, Javascript, XML, SQL
o Stock tracking system:- Client “Islamabad Stock Exchange”
- Tools Used: Visual-C++/ COM / DCOM / ATL / Sockets
- Developed / designed complete distributed, COM based, “Stock Tracking System” software using ATL / Visual-C++ for Stock-Exchange, Islamabad. The application tracks symbols for all major markets and pulls quotes and news headlines from popular financial web sites around the world, organizes them into convenient views, and displays accordingly. Maintains multiple user profiles, user purchase information, and computes a summary of user positions. Also it provides a graphical representation of a stock’s performance. The application linked with “Internet Stock Server” to collect the required information and parses it for viewing.
Senior Software Lead January 1996 - October 1997 Responsibility: -
- Design, development, system analysis and software maintenance.
- Developed a GIS Package, Visual EMS, coded in Borland C++ /Visual C++ for Windows NT, using UML.
- SQL backend databases using ODBC.
- Responsible for gathering use-cases, making architectural decisions for the software and developing UML diagrams.
- Used such computer-graphics techniques such as Polygonal Clipping and Rendering.
- Developed an iterative solution for exact Polygonal Area calculation using the Green's Theorem.
- The program is available for demonstration.
Senior Design Engineer April 1986 - February 1996
Responsibility: -
- Developed Pipe Network Calculation Software in C++/DOS.
- Serial Communication using C++/DOS
- Polygonal Area Calculations Regression Analysis using C++.
- Pump Dynamics in C++/DOS.
- Automation with CNC machines using AutoCAD / Auto-LISP.
Publications:
Published some articles on a great portal for developers.
Ø Applying Robustness Analysis on the Model–View–Controller (MVC) Architecture in ASP.NET Framework, using UML (Prize Winner)
Ø An Extensible Master-Page Framework for ASP.NET 1.1 Using Pattern Oriented Design
Domains
- Computer Graphics (GIS, CAD)
- Telephony (TAPI)
- Process Controls
Certifications With BrainBench.com
EDUCATION:
- Masters in Computer Science.
- Bachelors in Chemical Engineering.

^ top
|