Post Job Free

Resume

Sign in

C++, Multi-Threading, Socket Programming, Debugging Skill

Location:
Bellevue, WA, 98007
Posted:
April 11, 2009

Contact this candidate

Resume:

MANINDER SINGH

Visa Status: H*B

Availability: 1-2 weeks

Current Location: Redmond WA

SUMMARY:

 10+ years of strong professional experience with excellent skills in analysis, design, development, testing and maintenance of client/server, Network Programming, GUI development applications.

 Experience in C, C++, STL, Visual C++, Visual Studio 2008 Team Suit, Platform Builder 7, eVC++ 4.0 and MFC, Win32 APIs.

 Experience in Multithreading concepts

 Experience in DLL development.

 Experience of debugging and bug-fixing of Connection Manager of Windows Mobile 7.

 Experience in Socket Programming, SNMP, TCP/IP etc. using low level socket APIs

 Strong experience in debugging crash-dumps is using WinDBG, Platform Builder 7 on Windows and Workshop on Solaris and Unix Operating system.

 Good Experience in using the Third Party Tools and libraries like, Rouge Wave (STL wrapper), Ethereal, KIWI Log Viewer.

 Good experience in NDIS intermediate Kernel Mode Driver development and debugging kernel mode code, and using Win DDK

 Experience in ACM Codec of converting WAV file to MP3 using DirectShow APIs.

 Worked on Windows 95/98/NT/2000/XP, WinCE, Solaris/Unix Operating Systems

 Proficient in SQL, in Oracle 9i, Database Migration, Import/Export, used TOAD.

 Very Strong Analysis and Designing skills for Software Requirements Specification

 Strong Designing Skills using Software Design Patterns. Used Singleton Pattern, Factory Method, Observer Pattern, Strategy Method, Template Method, Proxy Pattern and Visitor Pattern.

 Strong OOAD Development Skills in C++ using Rational Rose, UML.

 Highly motivated, creative and versatile.

 Excellent team player with strong communication skills.

 Easily gets acquainted with the system.

 Able to adapt to change business situation and solve problems quickly and effectively.

 Good organizational skills and be able to handle multiple tasks and work independently as well as in a team.

 Excellent interpersonal skills.

Achievements:

 Good rate of bug fixing related to Connection Manager in Windows Mobile 7 at Microsoft, Redmond WA.

 Excellent appraisal ratings for evaluations at iPolicy Networks (a tech Mahindra company)

 Excellent appraisal ratings for evaluations at Canon India Pvt. Ltd.

 I am known for my quick learning and problem solving abilities, and so, am usually assigned complex tasks.

TECHNICAL SKILLS:

Operating System(s): Windows 95/98/NT/200/XP, WinCE, Solaris 8.0, Unix

Language(s): C, C++, STL

Technologies: WinSock, SNMP, SDKs, Win DDK, XML, Windows Mobile SDK

GUI: VC++, Visual Studio 2008 Team Suit, Platform Builder 7, eVC++ 4.0, MFC

Databases/RDBMS: Oracle 9i, SQL

Third Party Rouge Wave Libraries, Kiwi Log Viewer, ethereal, Net Monitor, Product Studio, Visual Source Safe, VmWare

Education & Training:

 Master of Computer Applications, Jammu University, India 1995-1998

 Bachelor of Science (Mathematics, Physics and Chemistry), Jammu University, India 1992-94

Professional Experience:

Client: Microsoft, Redmond WA

Project Title: Connection Manager (Windows Mobile 7)

Period : May 2008 - till date

Description:

Working as a developer-contractor in Microsoft Windows Mobile7’s Connection Manager (CM) team.

Connection Manager manages network connections for CellCore-enabled devices, Connection Manager implements fast and cost-effective methods to select connection optimally. It also provides a layer of Connection Manager APIs for a client to develop thier own application on top of the Connection Manager, these APIs centralizes and automates the establishment and management of various types of network connections for applications that connect to the Internet or to the corporate network. Connection Manager tracks which connections are in use or are requested by applications. It closes unused connections, automatically disconnects connections when they are idle for a specified period of time, and closes low-priority connections to open high-priority connections.

Connection Manager is written in C++, using Multi-Threading, and designed using various Design Pattern concepts, like, mainly Singleton Pattern, Factory Method, Observer Pattern, Visitor Pattern.

Responsibilities:

Involved in Bug-fixing, provide support to the team members by sharing their work load. Writing Unit-Tests:

Bug-Fixing: The bug-fixing comprises of crash-analysis, log files analysis. The bug fixing involves dead-lock detection, their mitigation, analysis of the connection related scenario failures. The debugging is done using Plateform Builder and Windows Mobile image running on CEPC.

Also involed in code review.

Writing Unit-Tests: The bug fixes require the bug scenarios to test and fix or figure out the scenario by writing unit-test cases in C++, Multi-threading.

Sample Code: Involved in writing sample code for the various Connection Manager scenarios in C++, Multi-threading, winsock. A little bit GUI is also developed to show the GUI user how to update various states and notification received from the Connection Manager. All these samples can run on the mobile device, CEPC.

Also developed a WebServer in 'C, running on Windows Mobile, to imitate a webpage download using UDP socket and Connection Manager.

 Developed Sample Code for various usages of Connection Manager, using C++, Multi-threading, Windows Mobile SDK and socket programming.

 Developed a sample WebServer in 'C'. The Webserver runs on the WinCE PC and mainly fullfills page download calls.

 The Sample code comprises of applications that updates the status of various connections using Observer Pattern, Visitor Pattern.

 Involved in Bug fixing, debugging crash-dumps/Core Files on CEPC running Windows Mobile image, debugging is performed using Plateform Builder.

 Code reviews, Memory-Leaks detection and Performance measuring.

 Used Gatekeeper for the version controlling.

 Creating and updating various documents like Detailed Design, Unit Test Plan and Review documents

 Preparing and executing Unit and System test cases

Environment: C++, Multi-Threading & Thread Synchronization, Windows Mobile SDK, Platform Builder 7, Windows Mobile Device Center 7, Socket Programming, WinDBG, Net Monitor, Ethereal, Rational Quantify and Purify.

Client: iPolicy Networks Fremont, California

Project Title: iPolicy Security Manager (ISM)

Period : Feb 2007 – March 2008

Description:

iPolicy Networks centralized security management system provides unified administration, configuration, monitoring and reporting of all security defense mechanisms across multiple Intrusion Prevention Firewalls.

The iPolicy Security Manager (ISM) delivers world-class administration, configuration, monitoring and reporting services for enterprises and service providers through a highly intuitive and very easy-to-use interface developed in Java. The ISM is highly scalable, allowing concurrent management of multiple defense mechanisms such as firewall, IDS/IPS and URL filtering for a large number of iPolicy Intrusion Prevention Firewall systems developed in C++ using STL, Multi-threading and Socket Programming. Its ease of use and collapsible multi-tiered architecture make it ideal not only for mid-size enterprises that require low overhead, plug-and-play deployments but also scales for large enterprises and service providers who need to deploy a large number of Intrusion Prevention Firewalls.

The ISM supports distributed deployment architecture to manage a large number of iPolicy Intrusion Prevention Firewalls (IPF) that may be installed in different geographical locations or across different departments within an enterprise network.

In new features implementing Alarm Manager, using SNMP Agent/Manager architecture.

Responsibilities:

Involved in the Designing, development and bug fixing of the core module like GSA, LSS and SDL.

The Global Security Administrator (GSA) module is the central component of the ISM and provides rule aggregation across multiple firewall defense mechanisms. It also provides network and security application co-management across multiple security administrators. GSA enables centralized, correlated, and consistent security enforcement across global distributed networks. Also, involved in writing a module to populate the security configuration from the database to the cache in the form of an Object Model.

The Local Security Supervisor (LSS) controls multiple iPolicy Intrusion Prevention Firewall systems for security deployment and management. In a distributed ISM deployment, a single GSA can manage multiple LSS systems over secure SSL links.

The Security Data Logger (SDL) is a dedicated, highly optimized logging solution from iPolicy that has the ability to securely collect logs from multiple Intrusion Prevention Firewalls (IPF) at high rates. The SDL can be deployed in a distributed mode with close proximity to the IPFs and can be used to view logs from the GSI or forward logs via syslog. The ISM provides a unified view of the distributed logging across all SDLs on the network.

The GSA, LSS and SDL is developed in C++, Multi-Threading, socket Programming and heavy use of the design-patters mainly Singleton Pattern, Factory Method, Observer Pattern, Visitor Pattern and Template Pattern.

 Developed GSA, LSS and SDL using C++, Multi-threading and socket programming.

 Used Factory Pattern to create and register pool of threads with a common interface.

 Used Visual UML Rational Rose to generate code, write test cases.

 There is a single instance of the Global Security Administrator in one ISM, hence, used Singleton Pattern.

 The SDL is designed using Observer Pattern, Visitor Pattern and Template Pattern.

 Involved in Bug fixing, debugging crash-dumps/Core Files on Windows XP using WinDBG and Workshop on Solaris and Unix.

 Database Migration, Import/Export of the database on Oracle 9i.

 Code reviews, Memory-Leaks detection and Performance measuring using C++ Test, Rational Quantify and Purify.

 Developed Security Configuration Report system using C++ and XML, Windows DOM document parser.

 Third Party tools and libraries Rouge Wave is used for data streaming, Rouge Wave provides wrapper around STL lists/queue/maps. KIWI Log Viewer used for viewing the Syslog alerts coming from SDL. The ethereal used for analyzing/debugging the network Packets.

 Used Visual Source Safe (VSS) for the version controlling.

 Involved in developing a virual layer for the whole product to seggragate the system specific calls. This was done because the whole product was supported on Windows ans Solaris both. This Virtual Layering was done in C. This was a static libray containing set of APIs to be used for the layers above it and give transparency to the user of the library.

 Used VmWare to create virtual nodes on a PC to test the network packet flow and filtering and packet forwarding from different nodes to the IPF firewall.

 Creating and updating various documents like Detailed Design, Unit Test Plan and Review documents

 Mentoring new joinees, monitoring their work and helping them become productive quickly.

 Training and guiding offshore team on functional and technical aspects

 Preparing and executing Unit and System test cases

Involved in Design and development of the Alarm Manager. The role of the alarm manager is to log the security related alerts in the database and also time to time forward the alarms to the front-end or GUI. Automated Response, Monitoring and Alert Management. The Alarm manager provides real-time monitoring and the ability to configure automated response options including logging, alerting, and intrusion prevention actions such as session termination which can block and thwart attacks in real time. The ISM also allows administrators to trigger custom scripts. Extensive notification and reporting capabilities include posting on the event console, syslog, SNMP, email and HTML or PDF reports. ISM provides real-time notification of security alarms and events. The ISM is capable of handling and filtering large volumes of alert and event data. Notifications can be displayed on screen in the GSI, dispatched via email or SNMP traps, and forwarded to a syslog server. The system also provides extensive real-time statistics support in tabular and graphic formats which can be viewed through the GSI.

 The Alarm Manager is developed using C++, Multi-threading, Socket Programming TCP/IP and SNMP.

 Alarm Purging is developed using self-developed timer manager.

Environment: C++, XML, Multi-Threading & Thread Synchronization, Socket Programming, TCP/IP, SNMP, WinDBG, Workshop, C++ Test, Rational Quantify and Purify, KIWI Log Viewer, Ethereal.

Client: Canon Development America(CDA- USA)

Project Title: Print-Along (a Miniature version of the main product “Print Server Appliance – PSA”)

Period: Aug 2006 to Feb 2007

Description:

The Canon Print Server Appliance (PSA) is designed primarily to help IT Administrators manage their network printing. When the PSA is first connected to a network, it will automatically discover all print devices using SNMP - Canon and non-Canon brand that utilize the standard printer MIB - and then automatically create print shares for those devices and publish them on an intranet page generated by the appliance. In the case of certain Canon imageRUNNER devices, the appliance will automatically detect the exact configuration of the device and enable the appropriate finishing features in the driver. The IT Manager can then direct his/her client users to a separate intranet page so that they can - with a single click - download the driver and start printing.

Right out of the box, the Canon PSA is a highly capable print server that competes very favorably against any general-purpose server. Additionally, because of the PSA's underlying technology, it can also be positioned as a platform to host additional software applications geared specifically for network printing under the Enterprise Services Platform™.

The miniature Print-Along was the replica of PSA with very less hardware capabilities. The Print-Along was designed and developed to reduce the cast of Hardware and easy to port.

Responsibilities:

 Used Visual UML Rational Rose for designing and generating code for the application part for the Print-Along hardware.

 Involved in the Designing, development and bug fixing of the Print-Along’s network device/printer discovery module using C++ and SNMP.

 Developed SNMP Manager in WinCE. At the time of development due to the scarcity of the Hardware configuration, the SNMP support was not ported in the Board-Support Package’s configuration. And hence, the SNMP was supported using the Socket Programming and C++ and following the SNMP RFC 1157 and Printer MIB 1759 specifications.

 Developed Producer Consumer Threading Model.

 C++ Test used for code review

Environment: C++, eVC++ 4.0, VC++ 6.0, Multi-Threading & Thread Synchronization, Socket Programming, TCP/IP, SNMP, C++ Test, Rational Rose, Rational Quantify and Purify, WinCE.

Client: Canon USA/India

Project Title: Variable Print Editor

Period: April 2005 to August 2006

Brief Description:

Enabling document personalization through the creation of variable text or graphics fields linked to a database source. The Variable Printing Editor is basically a utility to print Invitation cards/Personalized logos/Greeting Card etc. The Variable Printing Editor provides the user a flexibility to link its document with the Variable Data and later on it can print the data by using a client application. Multi-lingual support was provided in this project that includes FIGS and Japanese language support.

Since the Variable Print Editor supports Windows95/98/ME/2000/XP and also supports all French, Italian, German and Spanish i.e. FIGS, in lieu of that the testing cycle was bit complicated and demands more PCs to test, to handle this VmWare.

Responsibilities:

 Designed and implemented a Regular DLL using VC++, MFC that provides a Variable Printing Editor for the main product. This DLL contains the entire GUI.

Environment: C++, VC++, MFC, C++ Test, Rational Quantify and Purify, Windows 95/98/ME/2000

Client: Canon USA/Japan/India

Project Title : Network Driver for Bandwidth Management (a prototype Project)

Period: Jan 2004 to April 2005

Description:

This tool works in two parts, one part is responsible for the Bandwidth management/Firewall and second part acts as a monitoring tool that show the statistic in a graph. This Bandwidth Management/Firewall part is implemented in the kernel mode as NDIS driver for filtering and scheduling the network packet. Class Based Queuing algorithm is used to classify the packets and later send them.

Responsibilities:

 Involved in the Designing, development and bug fixing of the NDIS driver using C-language.

 Kernel Mode threading and thread-synchronization techniques used.

 Used WinDBG for debugging the kernel mode driver code.

 Used WinDDK for writing/compiling the kernel mode source.

 C++ Test used for code review

Environment: C++, Multi-Threading & Thread Synchronization, WinDBG, WinDDK, NDIS Driver Specifications.

Client: Canon Japan/India

Project Title: Bug Tracker

Period : June 2003 to December 2003

Description:

This tool helps QA team to log bugs found in the Bug Tracker in a project and later Project Manager of the concerned project allocate these bugs thru this tool to the team members. Team members can see the allocated bugs or status of the bugs thru this tool.

Responsibilities:

 Designed and implemented a Bug Tracking tool based on the client/server architecture. And used Oracle 9i as Back-End data store.

Environment: C++, VC++, MFC, C++ Test, Rational Quantify and Purify, Socket Programming, Multi-Threading, Windows 95/98/ME/2000

Client: R-Systems ( I ) Pvt. Ltd.

Project Title: Report Generator

Period: Jan, 2003 - June, 2003

Description:

Report Generator fetches the data from the database and based on the pattern of the report chosen by the user, it generates the report.

Responsibilities:

 Designed and implemented a report generator using C++, and a third party DLL to interact with database.

Environment: C++

Client: eInfochips ( I ) Pvt. Ltd.

Project Title : Gerber Master

Period : April, 2000 – Jan, 2003

Description:

This tool was developed for editing/designing Printed Circuit Boards. This tool is an interactive editor that parses the standard Gerber/PCB files and allow user to edit it.

Responsibilities:

 Involved in developing Teardrop, Polygon Enlarge/Reduce, an Editor to create custom-shapes, Move / Delete / Cut / Copy / Paste / Undo / Redo features(using C++, VC++, MFC, Win GDI).

Environment: C++, MFC, VC++, Win GDI

Client : eInfochips ( I ) Pvt. Ltd.

Project Title : The Laws Encyclopedia

Period : Sept, 1998 – March, 2000

Description:

The idea behind the encyclopedia was to provide lawyers/Judges to search or view LAWS related material. Since searching a judgment in a book is a very time consuming task, the encyclopedia provides an efficient way to search or mange the LAWS related information.

Responsibilities:

 My role was to develop a Judgment Tag editor, this editor helps creating judgment information by inserting tags between the judgments and later creates HTML links to present this information. This Tag editor also updates the search engine information. (using C++, VC++, MFC).

Environment: C++, MFC, VC++

Client : eInfochips ( I ) Pvt. Ltd.

Project Title : eExtractor and eMailer

Period : March, 1998 - Aug, 1998

Description:

eExtractor is designed to enhance the Internet marketing by collecting the email addresses from the web and send common/personal message individually/in batch. There is another utility "eMailer", eMailer helps in sending the bulk mails.

Responsibilities:

 My role was to develop an eExtractor and eMailer using C++, VC++, MFC, Socket Programming.

Environment: C++, MFC, VC++, Socket Programming



Contact this candidate