Post Job Free
Sign in

C++

Location:
Atlanta, GA
Posted:
January 11, 2016

Contact this candidate

Resume:

VISHAL SANGHANI

Mobile: +1-678-***-**** * E-mail: ******.********@*****.***

PROFESSIONAL SUMMARY

A Software Engineer with strong understanding of Software Development Life Cycle (SDLC), Security Development Lifecycle (SDL), Object-Oriented Analysis/Design and Development, Design Patterns.

More than 12 years of experience in C/C++, COM, Multithreading and Concurrency, Network Programming, Socket Programming, TCP/IP, Windows Internals, IPC, STL, OpenSSL, Boost, cURL, WMI, CIM/WBEM, and XML.

Strong understanding of Computer memory and sub-systems.

Working knowledge on C++11.

Experience in C#.Net and .Net Framework.

Experience in SAN, NAS, CIFS, NFS, Thin Provisioning, Data De-duplication.

Experience in Scrum and Agile Software Development.

Experience in Security Development Lifecycle (Secure Coding & Review, Static and Dynamic Code Analysis, Threat Modeling, Penetration Testing, Fuzz Testing).

Experience in Virtualization platforms like Hyper-V, CSV (Cluster Storage Volume), VMware ESX Server.

Experience in High Availability (HA), Microsoft Failover Cluster and Storage Backup.

Experience in Amazon Web Services (AWS) and Microsoft Azure development.

Experience in Microsoft SharePoint development using SharePoint Object Model, and Microsoft Exchange Server development using Exchange Web Services (EWS).

Experience in various Design Patterns, MVC Framework, UML, Unit Testing, and Code Coverage.

Experience in developing Resource DLL using Microsoft Cluster API.

Experience in open source languages: Perl, Python.

Experience in web technologies: HTML, JavaScript, JSON, SOAP, and RestAPI.

Experience in RDBMS databases like SQL Server and Oracle.

Conversant with Windows Device Driver Programming and Debugging.

Good team leading skills and innovative in approach.

Good at problem solving and advanced debugging using WinDBG.

Excellent communication, analytical skill and ability to drive task to completion.

Good experience in liaising with clients, sales, top management, QA, technical, documentation, and support specialists.

Domain experience in Storage/SAN and Software Security development.

Worked extensively on EMC CLARiiON and Symmetrix Storage Systems development.

One year international experience of project development and deployment (USA and Singapore).

Authorized to work in the US (holding valid H-1B Visa).

KEY TECHNICAL SKILLS

Languages C++, C, C#, Java, C++11

Libraries/Frameworks WinAPI, STL, Boost, .Net Framework, COM, cURL, EWS, WMI, OpenSSL, CIM/WBEM, MS Cluster API, AWS, Azure API

Concepts & Protocols OOA/OOD (UML, Design Patterns), Multithreading, Synchronization, IPC, TCP/IP, SOAP

Operating Systems Windows XP, Windows Server 2003/2008/2008 R2, Windows Server 2012, UNIX

Scripting Languages Perl, Python, UNIX Shell Script

Relational Databases MS SQL, Oracle 8i – PL/SQL, PostgreSQL

Tools Rational Purify, Coverity, BoundsChecker, Microsoft Visio, Remedy, VersionOne, NUnit, CPPUnit, PerfMon, WireShark, Burp

Software Configuration Management ClearCase, SVN

Web Technologies HTML, JavaScript, JSON, RestAPI

Development Tools Visual Studio 2003/2005/2010/2012, Eclipse

Debugging Tools WinDBG, Visual Studio Debugger

EDUCATION

Master of Computer Application, 1st class

Department of Computer Science, Saurashtra University, Rajkot, India, July’99 May’02.

Bachelor of Science (Industrial Chemistry), 1st class

V. P. Science College, S. P. University, Vallabh Vidya Nagar, India, June’95 April’98.

EXPERIENCE

Intel Security

Nov’13 to date

(Formerly McAfee Software India Pvt Ltd)

Software Development Engineer

Bangalore

MSMS (McAfee Security for Microsoft SharePoint)

MSMS protects Microsoft SharePoint server from various threats that could adversely affect the computers, network, or employees. It scans all files that are uploaded or downloaded from the SharePoint server. It uses advanced heuristics against viruses, unwanted content, potentially unwanted programs, and banned file types or messages.

Responsibilities:

Produced coherent technical proposals that meet the requirements

Architected and designed software solutions for various components

Maintained architectural documents based on changes and new trends & technologies

Led the team technically in development and design phases

Designed and developed ePO rule and configuration migration tool by using Bridge Pattern

Redesigned and developed communication mechanism between Scan Engine and SharePoint hook module. With this, achieved great performance improvement in scanning, resolved denial of service for document download/upload

Performed static code analysis with Coverity and dynamic code analysis with BoundsChecker

Followed Security Development Lifecycle to reduce security vulnerabilities

Performed Unit Testing and Code Review

Debugged, diagnosed and fixed defects reported by QA

Technology Environment: C/C++, C#, MS SharePoint Object Model API, Windows SDK, WinDBG, JavaScript, HTML, XML/XSD, Visio, Python

MSME (McAfee Security for Microsoft Exchange)

MSME protects Microsoft Exchange server from various threats that could adversely affect the computers, network, or employees. It uses advanced heuristics against viruses, unwanted content, potentially unwanted programs, and banned file types or messages. It also scans:

Subject line and body of the email messages

Email attachments (based on file type, file name, and file size)

Text within the email attachments

This product also includes the McAfee Anti-Spam add on component that protects Exchange server from spam and phishing emails.

Responsibilities:

Architected and designed software solutions for various components

Maintained architectural documents based on changes and new trends & technologies

Led the team technically in development and design phases

Designed and developed MSME – MQM HTTP feature by using C#, C++, Windows SDK, cURL’s libcurl (HTTP interface), JavaScript, HTML

Performed static code analysis with Coverity and dynamic code analysis with BoundsChecker

Followed Security Development Lifecycle to reduce security vulnerabilities

Performed Unit Testing and Code Review

Debugged, diagnosed and fixed defects reported by QA

Technology Environment: C/C++, C#, MS EWS, Windows SDK, libcurl, WinDBG, JavaScript, HTML, XML/XSD, Visio, Python, JSON

EMC Data Storage Systems India Pvt Ltd

June’10 to Oct’13

Associate Principal Software Engineer

Bangalore, India

SRDF/CE (Symmetrix Remote Data Facility/Cluster Enabler)

SRDF/CE is a software plug-in module to EMC Cluster Enabler for Microsoft Failover Clusters software. The Cluster Enabler (CE) plug-in architecture consists of a CE base module component and plug-in module for SRDF.

This plug-in module provides a software extension of failover clusters functionality that allows Windows Server 2003 and 2008 (including R2) Enterprise and Datacenter editions running Microsoft Failover Clusters to operate across multiple connected Symmetrix arrays in geographically distributed clusters. Each cluster node is connected through a storage network to the supported Symmetrix array. This expands the range of cluster storage and management capabilities while ensuring full business continuance protection. An iSCSI or Fibre Channel connection from each cluster node is made to its own Symmetrix array. Two connected Symmetrix arrays provide automatic failover of mirrored volumes during a Microsoft failover cluster node failover. This product is best suited for Cloud based applications which give high data availability.

The CE is extension to the Microsoft’s Cluster architecture having WMI Provider, ResourceDLL, Arbitration Service, and Class Filter Driver (for disk arbitration) having GUI implemented using MMC.

Responsibilities:

Prepared Functional and Design Specs for External Consistency Check feature

Designed and developed External Consistency Check feature by using C++, Windows SDK, and SYM APIs

Designed and developed feature to support CSV (Clustered Shared Volume) on Windows Server 2008 R2 and Windows Server 2012

Performed Unit Testing and Code Review

Debugged, diagnosed and fixed defects reported by QA

Developed feature and resolved defects for class filter driver

Technology Environment: C/C++, C#, COM/DCOM, WMI, CIM, Windows SDK, Windows DDK, Cluster API, MMC, CVS, WinDBG, TraceView

TxIM (TimeFinder SQL Server/Exchange Integration Module)

The TxIM extends the basic Symmetrix Command Line Interface (SYMCLI) command set to include the commands that allow integrating the SYMCLI offerings with various Windows server database applications and streamlining the management of their associated database objects.

The TxIM developed for Windows servers that support MS SQL Server databases and MS Exchange databases residing on Symmetrix storage, provides complete backup and recovery management interface. It supports backup and recovery using both the MS Virtual Device Interface (VDI) and the database snapshot functionality (VSS). It integrates and automates the command actions and behavioral features of EMC TimeFinder and SRDF.

Responsibilities:

Prepared various Specs for Snap of Snap module

Designed and developed of Snap of Snap module by using C++, Windows APIs, SYM APIs

Performed Unit Testing and Code Review

Debugged, diagnosed and fixed defects reported by QA

Technology Environment: C/C++, C#, COM, Windows SDK, VDI, VSS, CVS, WinDBG

Stratify Software India Pvt Ltd

Jan’10 to June’10

(An Iron Mountain Company)

Senior Software Engineer

Bangalore, India

Connected Backup

Connected Backup is a product which provides backup/restore facilities. As part of this software, a client called Agent runs on PC/MAC machines and Backup Server called Data Center runs on a centralized standalone or clustered mirror server. Agent is responsible for recording all the changes made to “to be backed up” directories/files and sends them to Data Center for backup. Connected also provides facility to download backed up files over internet via an interface called MyRoam.

Responsibilities:

Debugged, diagnosed and fixed defects reported by QA

Performed Unit Testing and Code Review

Analyzed user dumps using WinDBG to find root cause

Technology Environment: C/C++, COM, Windows SDK, VSS, CVS

TATA Consultancy Services

Nov’06 to Jan’10

IT Analyst

South borough, MA, USA and Bangalore, India

Navisphere Response Time Improvement (for EMC Corporation, USA)

Navisphere Response Time Improvement (NRTI) was part of Navisphere Management Suite which runs on Clariion Array. The goal of this module was to improve response time for any user/client commands whenever high I/O operations were running on Clariion Array. This module was implemented as part of Navisphere Backend module.

Responsibilities:

Analyzed and gathered all the requirements to implement this module

Prepared Functional Spec, Design Spec, and Unit Test documents

Implemented - by hooking into Navisphere module - in C++

Performed Unit Testing and Code Review

Solved various defects reported by testing teams

Technology Environment: C/C++, CIM, Windows SDK, ClearCase, WinDBG

ECOM - EMC Common Object Manager (for EMC Corporation, USA)

ECOM is the new common object manager and web server (based on Navisphere) used to manage EMC’s various products like Clariion, Celerra, etc. It’s a common platform across all the EMC products.

Responsibilities:

Ported different “Provider” modules from Navi framework to ECOM framework

Implemented thread pool, in C++, to manage event logging tool

Implemented - by using Observer Pattern - FileMonitor tool, in C++, to watch configuration files

Performed Unit Testing and Code Review

Solved various defects reported by testing teams.

Analyzed User Dumps by using WinDBG

Technology Environment: C/C++, CIM, Windows SDK, ClearCase, WinDBG

EMC Navisphere (for EMC Corporation, USA)

Navisphere allows administration of the EMC CLARiiON storage systems (SAN) from a web browser through GUI or from command line through CLI. It allows an administrator to discover, monitor, configure and view performance reports on the same. With Navisphere suite, RAID groups can be configured automatically or manually and then LUNs can be created from these RAID groups. Navisphere management suite allows the administrators to manage and control data access across multiple heterogeneous hosts in distributed SANs. The suite has extensive features like SANCopy, Snap and Clone, Mirroring in Sync and Async modes, Migrate, etc. Navisphere uses HTTP/XML/Common Information Model (CIM), which follows three-tier client / server architecture.

Responsibilities:

Enhancement of different “Provider” Modules as per the requirements in C++ / VC++

Enhancement of CCD (Configuration Capture and Duplication) module.

Solved various defects reported by testing teams.

Analyzed User Dumps by using WinDBG

Performed Unit Testing and Code Review

Developed a reputation as a keen and skilled debugger of a large legacy code base

Siemens Information Systems Ltd

Apr’05 to Nov’06

Sr. Systems Engineer

Bangalore, India

Offline CAD DICOM Server (OfflineCDS)

OfflineCDS processes the incoming datasets, when they arrive, automatically and store the results persistently. It identifies the CAD algorithm(s) that can process the incoming dataset. After identification, it invokes the CAD algorithm to process the dataset and store the results into a DICOM file. The result can be returned to the visualization application immediately upon request for CAD results. Once after the algorithm processing is completed, it will store the results on the database of the local machine. When the visualization application invokes CAD algorithm, the CAD algorithm will return the result immediately after retrieving them from the stored results.

Responsibilities:

Analyzed and designed of DBListener module by using Design Patterns

Developed DBListener module in VC++ by using syngoAPI and Versant Database

Designed and developed Utility module by using MSMQ, and Windows SDK

Designed and developed Exception Handling module

Designed and developed OfflineCDSFrontend component. This component handles different syngo events and updates the status bar with job status information

Performed Unit Testing, and Code Review

Investigated Memory Leaks and measured Code Coverage by using various tools

Handled Change request management given by testers

Technology Environment: C/C++, Windows SDK, VC++, MSMQ, ClearCase

CAD DICOM Server (CDS)

CAD DICOM Server helps in automatic detection of Mammo-cancers. CAD DICOM Server is a DICOM compliant server that receives a set of DICOM images from the network and automatically runs one or more CAD algorithm(s) on the received images. The findings (reports sent to preconfigured DICOM receivers) are made available for the radiologists to make the final diagnosis.

CAD Digital Mammography and CAD Imaging Framework will be hosted on CAD DICOM Server along with Mammo Presentation Object Generator subsystems (which create the structured reports showing diagnosis details). This will be installed on a dedicated hardware in order to improve the performance.

Responsibilities:

Developed Cryptography tool by using Windows SDK and C#

Developed Installation Checker Utility which generates XML report

Developed CDS Service status page by using HTML, XML and XSL

Developed installation scripts by using InCo (Installation & Configuration) tool with DOS batch files

Performed Unit Testing, and Code Review

Investigated Memory Leaks and measured Code Coverage by using various tools

Handled Change request management given by testers

Technology Environment: C/C++, Windows SDK, C#, XML, XSL, ClearCase

Decision Craft Analytics Ltd

Jan’04 to Apr’05

Software Engineer

Singapore and Ahmedabad, India

Rostering and Transportation Planning (for GTL, Mumbai)

Rostering and transportation planning is basically a GIS system which enroutes door-to-door pick up and drop service for employees. To minimize the transportation cost it uses the optimization theory and groups a particular employee, it generates a route and displays it on the specified city map. It also provides facility for planning of employees, i.e. rostering of employee based on their shift timings and leaves. In rostering employee can change pick and drop address from the online service and according to that admin of the system can re-geocode the employee and modify the generated route.

Responsibilities:

Analyzed, designed, and developed Rostering Model in C++ using ILOG CPLEX/Scheduler API

Developed Grouping algorithm

Developed Employee Roster module based on employee’s availability

Developed Employee Route module based on grouped employees

Developed optimized Vehicle Assignment module for each group

Technology Environment: C/C++, ILOG CPlex/Scheduler

Depot Task Scheduling System (for IDSC, Singapore)

This 3-tier application provides facilities of job scheduling and resource allocation to each task scheduled within each job and finally generating Gantt Chart for task-resource allocation information and resource loading chart for individual resource usage display.

Responsibilities:

Analyzed and developed Scheduling Model(SM) in C++ by using ILOG Solver / Scheduler API

Developed XML- data files (generated by SM) parser by using Oracle XDK

Modeled parsed data by using ILOG Solver

Developed output XML files, which give information about job scheduling, task-resource allocation within each job, resource utilization, dummy resource usage

Developed different reports- like Completed Job Summary, Manpower Resource Utilization, Pending Job, In Progress Job, using JfreeReport

Technology Environment: C/C++, ILOG Solver/Scheduler, Java

SiLEX Software Solutions

Jun 02 to Dec 03

Software Engineer

Bhavnagar, India

DAMS - Data Acquisition and Management System

The DAMS is management system for diamond agents. This system provides facility for data acquisition and management of different processes i.e. it provides facility to read weight of diamond measured by weighing machine through parallel port, weight adjustment, total weight calculation, price calculation and generating reports like day-wise diamond sales/purchase, diamond-weight reports, customer-wise report, etc.

Responsibilities:

Requirement gathering, analysis, and design of the system

Developed data acquisition through parallel port using C/C++

Developed different reports using PL / SQL and JFreeReport in Java

Performed Unit Testing and Code Review

Technology Environment: C/C++, PL/SQL, Java

Electronic Book

Electronic Book is a digital version of book. This provides facilities to search contents of the book by figure name, topic title, page number, chapter no, etc. To convert any book into its digital version, first the entire book is scanned and then converted into text files. Then all the text files are tagged using Tag Editor. The tag editor inserts proper tag for each keyword defined. The keywords such as page no, figure no, chapter no, book name, chapter name, topic name, reference, etc are tagged by tagging pair such as <pageno> </pageno>, <figureno> </figureno>, <chapno></chapno>, etc.

Responsibilities:

Requirement gathering, analysis, and design of the system

Developed GUI and tag editor in Visual C++

Performed Unit Testing and Code Review

Technology Environment: C/C++



Contact this candidate