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++