You are on page 1of 4

Nikhil Kshirsagar

Address: 894 Clover Acropolis, Phone:91-9665744448


Viman Nagar, Pune 411014, Email: nkshirsagar@gmail.com
Maharashtra, India.

Education: Worcester Polytechnic Institute, Worcester, MA, USA. (http://www.wpi.edu)


Master of Science in Computer Science (Graduated in May 2002)
GPA: 3.3
University of Pune, India.
Bachelor of Science in Computer Science (Graduated with distinction: May 2000)

Technical skills: Languages: C, C++, python and java.


Profilers: Purify, Coverity. Valgrind
Debuggers: Gdb
Version control: cvs, svn, clearcase, perforce, git

Experience: Red Hat, Pune (March 2015 – present)


Designation: Principal Software Maintenance Engineer

I work in the Support Engineering Group (SEG) at Red Hat, forming the back-line team working
on customer cases which involve source code analysis, kernel and applications crash analysis,
and architecture of storage solutions involving lvm, multipath and raid for RHEL customers.

Responsibilities include working closely with Engineering to provide solutions to storage related
technical issues, analysing RHEL kernel as well as applications source code, userspace and
kernel debugging (x86_64 vmcore analysis) using gdb and crash and building custom RHEL
kernels containing select kernel patches for providing to customers.

I also work on several open source projects. I have made significant contributions to a Red Hat
product called pcp (www.pcp.io) which is used by a large number of RHEL customers for
performance analysis. I also maintain an internal product implemented in bash and python to
auto download customer case attachments to Red Hat servers, used by more than 500 associates
worldwide.

In my free time I work on the development of a Red Hat IRC chat bot, used by associates for
technical quizzes and learning. The bot can make rudimentary conversation.
(https://github.com/nkshirsagar/quizbot)

Calsoft Pvt. Ltd, Pune (August 2012 – February 2015)


Designation: Senior Principal Development Engineer
Client: Skyera

Worked on a REST framework to expose the Skyera (www.skyera.com) SkyHawk/SkyEagle


storage CLI over https using REST.

Used python at the web framework layer (flask+restful extension) and C at the device layer to
interface with the Skyera storage device api’s. The communication between python and C was
achieved using CTypes as well as pyobjects. Led a team of 3 engineers for the C development
and provided mentoring at the design level for the entire project. Spent time onsite at Skyera in
San Jose interacting with the client team and deploying the product.
Client: Solidfire
Worked on a VSS Provider for Solidfire (www.solidfire.com) making their storage boxes VSS
compliant.

BMC Software (July 2010 – July 2012)


Designation: Staff Specialist Product Developer

Worked on the BMC Performance Assurance and BMC Capacity Optimization line of products.
Specifically worked on “Analyze”, a C++ module that receives input metrics from “collectors”
and produces a model for reporting and predicting IT system workloads. The collectors run on
the host machines, collecting a large number of system metrics to model the behavior of the
hardware from a historical perspective. The product is supported on all physical and virtual
platforms.
http://www.bmc.com/products/offering/BMC-Performance-Assurance.html

Worked on integrating BMC Capacity Optimization (BCO) with the Single Signon Framework
in BMC (Atrium SSO built on top of OpenSSO. Developed a framework which adds filters to the
deployment descriptor file of the web applications to successfully redirect authentication requests
to Atrium SSO following which access is granted to all sessions on the same browser. Used Java,
Tomcat and XML.

Quantum, Hyderabad (Nov 2008 – Sept 2009)


Designation: Senior Software Engineer
Worked on maintenance and support of a Enterprise disk backup solution that integrates data de-
duplication and replication technology to connect backup and DR (disaster recovery) protection
across distributed corporate environments.

The product, known as Galaxy, is a storage appliance presenting a virtual tape library (i.e., one or
more virtual media changers, virtual media and virtual tape drives) as well as a network-
accessible file system (serving NFS and CIFS) and also serving as a replication target for other
Quantum systems.

Worked on linux packaging (rpm) and used Coverity toolset extensively to fix difficult to address
problems in the source code like memory leaks and freed memory reads/writes. Also worked on
customer escalations and enhancements.

Symphony Services, Pune, India. (March 2007 – Nov 2008)


Team: Storage Management Initiative (SMI-S)
Client: EMC Corporation, USA.
Designation: Senior Software Engineer
Worked on the EMC Celerra SMI-S provider. The Storage Management Initiative Specification
(SMI-S) is a design specification of the Storage Management Initiative (SMI) that is launched by
the Storage Networking Industry Association (SNIA).The goal is to make it easier for the
hardware and software from different storage vendors to work together. The specification seeks
to replace the disparate protocols and transport technologies from multiple vendors with common
models and common protocols. The end result is a common management interface for network
components that decreases the complexity of SAN management.

Role: Development of SMI-S profiles so that the EMC storage box (Celerra) is “SMI-S
compliant”. Each profile tackles a certain functionality offered by the storage device. The
profiles are designed in Managed Object Format (MOF) and an in-house code generator (OSL#)
is used to generate C++ classes from the MOF files. Translating SMI-S requests to EMC specific
functionality involves adding layers of functionality between the SMI-S client and the underlying
software that manages the storage device. This involves understanding the underlying storage
framework that already works with its own CLI and knowing what to call when a certain request
is received from a SMI-S client. Also work on designing an indications and events framework so
that events receiveed from the underlying storage box are sent to the CIM or SMI-S clients who
may be interested in them.

Symantec Corporation, Pune, India. (October 2004 – June 2006)


Team: VEA (VERITAS Enterprise Administrator)
Designation: Software Engineer
VERITAS Enterprise Administrator (VEA) is an infrastructure that offers a convenient
environment for inter-operability among multiple software applications and hardware
components by providing mechanisms for plugging in providers of service and a GUI. The
Service provides various generic mechanisms to create and delete objects, create object
interfaces, capture and deliver object-change notifications, organize objects, and so on.
Application Program Interfaces (APIs) assist in communication with vendor-created providers
and among VERITAS products.

Role: Specifically worked on development and support of the product on all major Unix
platforms including enhancements and customer reported escalations. Other responsibilities
included Solaris and Linux packaging, multi-threaded debugging of the application, memory leak
fixes and usability improvements.

KPIT Cummins India Ltd. Pune, India


(Jan 2003 – October 2004)
Designation: Associate Software Engineer
Worked in Qt under Windows and Linux/Embedded Linux, using C++, writing applications for
the SH-Mobile embedded development platform. Designed and implemented slot machine games
on INTENT embedded virtual RTOS using C. The project was for a UK based company (Tao),
and involved programming for a virtual operating system on an embedded device. Also worked
in the Embedded group, wrote a very basic portable RAM filesystem. Designed and
implemented the project in C.

Juniper Networks, Westford, MA, USA


(May 2001 – May 2002)
Worked in the OS group for the Unisphere ERX edge routers. Provided testing support to the
Operating Systems group. Responsibilities included working on High Availability and System
Route Processor Redundancy, testing protocols (BGP testing) and performing chassis and
regression tests (using Ixia Explorer, Adtech tools and the CLI on the router via a telnet session).
Other responsibilities included setting up smoke and python tests, configuring routers for ATM
connections, writing and executing test plans and analyzing results.

Academic projects: Virtual processor Operating system


Individually designed and implemented an operating system for a hypothetical 32 bit/word
minicomputer with numerous instructions, virtual memory support, and a multi-level interrupt
scheme. Focused on an interrupt system in a multiprocessing environment, virtual memory, page
fetch, replacement algorithms, inter-process communication and disk driver support. Scheduling
algorithms were also implemented. The project was implemented in C.

For more about this project please visit


http://www.cs.wpi.edu/~cs502/s01-breecher/project_doc/project_home.html

Speech Detection
Designed and implemented an application that recognized speech using the Rabiner and Sambur
algorithm for speech detection. The system was implemented using C under Windows. Used
multimedia libraries on Windows. The algorithm was particularly useful for detecting speech in
the presence of background noise. For more information about this project, please visit
http://web.cs.wpi.edu/~claypool/courses/525-S03/projects/proj1/index.html

Audio-conferencing application for Windows


Designed and implemented a peer-to-peer voice conferencing application using both TCP 9 and
UDP. The application was coded in C under Windows. Removed silent period between talk
spurts thereby reducing network bandwidth and host processing. For more information about this
project, please see http://web.cs.wpi.edu/~claypool/courses/525-S03/projects/proj1b/index.html

Multimedia video broadcast (Current)


Designing and implementing a TCP-friendly multimedia layered broadcast streaming protocol
over UDP.

EPABX – Serial Communication.


Designed and implemented a call monitoring system that recognized electronic billing exchanges
connected to a computer, and generated reports based on information read from a serial port. The
project was implemented for a local software company in Pune, India. The system automatically
configured itself to a wide variety of Electronic Billing Exchanges and handled 4000 telephone
calls per hour. Coded in Visual Basic, using Ms Access and Crystal Reports. The project was
chosen as the best project in several inter-collegiate computer science exhibitions. (have proof ! )

Other activities: Nationally ranked badminton player in India from 1990 to 1996.
Accolades at inter college technology exhibitions for software projects.
Played the lead guitar in several rock bands in Pune, India.
Learnt classical nylon-string guitar.
Enjoy bridge, chess and strategy video games for recreation.

You might also like