Hey, Welcome:)

About Me

• Software professional with 7+ years of work experience in Cloud, Networking, Storage, and Virtualization domains.

• Self-motivated, Curious, Quick learner, and an Excellent team player.

• Highest Degree: Masters (MS) in Computer Science at UNC Charlotte graduated in December 2017.

• Always up for challenging work, domain not a restriction.

Education

The University of North Carolina at Charlotte
Masters in Computer Science (GPA - 4.0)
Dec 2017

University of Pune, India
Bachelors in Computer Engineering (Grade - First Class with Distinction)
June 2013

Work Experience

Job Title: Senior Software Engineer 2

Duration: March 2019 – Present

Name of the Company:
Citrix Systems, CA, USA

Roles:
Senior Backend Developer working on various projects in the Citrix ADC product. I work specifically in the cloud based teams, leveraging Kubernetes, Public clouds, Distributed systems. I worked in the following teams: Citrix Ingress Controller, Citrix API Gateway (Cloud Native), Citrix ADM Analytics.




Job Title: Software Engineer

Duration: Jan 2018 – March 2019

Name of the Company:
Veritas Technologies LLC, CA, USA

Roles:
Worked in the Data Ingestion team of Multi-cloud Data Management Platform product. Our team was responsible for building the data ingestion pipeline for the platform using Kafka, graph database, graph query language, zookeeper, etc. We deployed these microservices using helm charts on Kubernetes and deployed it on public cloud.




Job Title: Software Development Intern

Duration: May 2017 – Aug 2017

Name of the Company:
Veritas Technologies LLC, CA, USA

Roles:
Was a part of the Tooling and DevOps team of Veritas. Completed 2 projects during my stay at Veritas.




Job Title: Senior Software Development Engineer

Duration: July 2013 – July 2016

Name of the Company:
Calsoft Inc., Pune, India (Client: Unitrends Inc., SC, USA)

Roles:
Design, Development, Testing (Unit, Integration, Regression, Performance, Functional), Bug fixing, Client communication, Peer Code Reviewing and Knowledge Sharing, etc.

Projects

At Citrix:

Citrix ADM Analytics
Citrix Application Delivery Management (ADM) is a centralized management solution. You can use ADM to manage, monitor, and troubleshoot the entire global application delivery infrastructure from a single, unified console.

My responsibilities and work included:
• Adding 'Horizontal pod autoscaling for ADM Agent'
• Adding 'Graph database (Neo4j)' to Citrix Analytics.


Citrix Cloud Native API Gateway
The Citrix API gateway provides a single entry point for APIs by ensuring secure and reliable access to APIs and microservices on your system. Because this catalog leverages the Citrix Ingress Controller, you need to create an instance of the API gateway CRD, which is the Citrix Ingress Controller.

My responsibilities and work included:
• Worked in the Citrix API Gateway team, where I wrote the Helm charts for the offering
• Published a Rancher Catalog and Openshift Operator.
• Worked on a TechFair idea: "Cost-optimized scalability of API gateway using FaaS". Used Azure functions for Faas.
• Enabled CORS in Citrix CN API Gateway: Adding a CRD in K8s to take configuration for CORS and configuring it with Citrix API Gateway product.


Citrix Ingress Controller
Citrix provides an implementation of the Kubernetes Ingress Controller to manage and route traffic into your Kubernetes cluster using Citrix ADCs (Citrix ADC CPX, VPX, or MPX).
Using Citrix ADC ingress controller, you can configure Citrix ADC CPX, VPX, or MPX according to the Ingress rules and integrate your Citrix ADCs with the Kubernetes environment.

My responsibilities and work included:
• Wrote a python based library to parse the language of the kubernetes labels.
• Wrote code for Route Sharding in Netscalar CPX (Similar to HAProxy).
• Added framework for API and System tests for Openshift based code of CPX.
• Worked on "Using Mutual TLS for API security for E-W traffic (intra-cluster) in a service mesh lite (hairpin) environment"
• Worked on integrating CPX with Openshift.
• Worked on Supporting Citrix stack in Openshift 4.x
• Worked on adding code for K8s service of type LoadBalancer into CIC.
• Enabling BGP in CIC, Advertise and Recall of VIP from ADC based on workloads.
• Adding TCP Profile in CIC.
• Worked on bringing K8s label awareness into Citrix ADC.


Technologies Used:
Python, Cloud, Kubernetes, Openshift (3.x, 4.x), Rancher, AWS, Azure, Docker, Load Balancer, Networking

At Veritas:

Data Ingestion for Multi-cloud Data Management Platform Product
Worked on building a Multi-Cloud Enterprise Data Management Platform Product in the Data Ingestion team. My team is specifically working on delivering the core data ingestion pipeline for the platform, deployed as containerized Java micro-services on Kubernetes.

My responsibilities and work included:
• Wrote the Java micro-service responsible for JanusGraph Queries. This service provides REST API endpoints to be called to query the asset from JanusGraph using Gremlin commands.
- Querying based on type of asset.
- Querying by applying filters to the asset.
- Querying based on output type that we are expecting for the asset.
- Querying based on a drilldown path of the asset from the type on which we are querying till the outputType supplied to the query.
- Support for Pagination in results.
- Support for Sorting in the query results.
• Worked on writing helm charts for deploying some of the projects micro-services on Kubernetes. • Worked on RabbitMQ deployment on Kubernetes.

Technologies Used:
• Java, Spring Boot, Kubernetes, Docker, Kafka, RabbitMQ, REST API, JanusGraph, Cassandra, Azure

At Veritas (Internship):

Using Cloud Custodian to Manage AWS instances at Veritas Cloud.
To write policies to manage different resources of AWS.

Technologies Used:
• AWS, Cloud Custodian, YAML



Continuous Integration Pipeline Development
Developed a deployment pipeline for the other developers to use at Veritas. The primary reason for developing this application is for the developers/customers to test their code in the simulated environment on their local system and not on the actual production pipeline, if their code works on our application in the developer's system then it will also work well in the actual production pipeline.

Technologies Used:
• Vagrant, Docker, Jenkins, Gradle, Packer, Gogs, Artifactory, Spinnaker, Shell Scripts

At Calsoft:

Windows Device in User Space (RnD_Win_DUSE)
Developed a Device in user space to get access to block data from user space in I/O path. Currently, Windows doesn't have the mechanism to get access to block data from I/O path in the user space. This is similar to FUSE in Linux which provides an access to non-privileged user to create its own file system in user space.

Technologies Used:
• Languages – C#
• Tools – Visual Studio 2013

Details of work done:
• Role: Sr. Development Engineer.
• Involved in Designing the product.
• Implemented the back end of the Cloud connector to AZURE cloud in C#.


Windows Backup and Recovery Product Installer
Part I: The project includes using the VMWare vSphere APIs in order to automate the tasks during the installation process for ESXi.
Part II: The project includes using the Hyper-V APIs in order to automate the tasks during the installation process for Hyper-V.

Client: Unitrends Inc. (SC, USA)

Technologies Used:
• Languages – C# 
• Scripting : Powershell
• OS and Hypervisor – Win 8, Win 2K12 R2, Win 2K08 R2, VMware ESXi (Versions: 5.0, 5.1, 5.5), HyperV
• Tools – Visual Studio 2012, Installshield 2014

Details of work done:
• Role: Development Engineer.
• Designing the product.
• Implemented the back end of the installer in C# for VMWare ESXi and HyperV.
• Implemented the front end of the installer in Installshield Advanced UI for VMWare ESXi and Hyper-V.
• Unit testing, Integration testing, Regression testing, Functional testing, and Performance testing.
• Bug fixing.
• Code reviewing and Knowledge sharing.
• Client communication.


Change Block Tracking for Hyper-V
The objective of this project is to build a Change Block Tracking driver which will keep track of changed blocks for virtual disks at run time (incremental backup). The product captures disk level backup of the guest OS installed on the hyper-visor. The backup application would trigger a snapshot event from which point onward all I/O operations needs to be captured.. The Pass-through mini-filter driver would trap all the I/O operations at file system level in (offset, length) format. This would then be converted to disk level (offset, length) format and sent back to the backup application.

Technologies Used:
• Languages – C, C++
• OS and Hypervisor – Win 2K12, Win 2K12R2, HyperV, Win 8
• Tools – VS, BugZilla, Driver Verifier, HCK kit, IO Meter.

Details of work done:
• Role : Development Engineer.
• Design , Development , Unit Testing and Bug fixing of XML module in the User space (Using XMLLite in C).
• User-space Logging mechanism implementation (in C++).
• Tools development for Testers aid.
• Performance monitoring and testing.


At UNC Charlotte:

Distance Vector Routing Protocol Implementation
A multithreaded application using UDP connection and socket programming in C#. The main idea is to find the minimum cost between each nodes combination in the system.
We have an input file where we keep the number of neighbors, the names of the neighbors, the port numbers of the neighbors. The input file basically acts as a forwarding table.
After every 15 seconds, we send out the current state of each node to all its neighbors. And, the receiving node will calculate the minimum cost to all the nodes, based on the received inputs from its neighbors.
I have used the Bellman-Ford equation to calculate the costs.
We can also edit the input file dynamically by updating the costs and the system will recalculate the costs and next hops based on the new values.

Technologies Used:
• Languages – C#
• Tools – Visual Studio 2015

Details of work done:
• Completed the whole project individually as a part of the course ITCS 6166: Computer Communications and Networks.
• Implemented a command-line application for the protocol.


HTTP/1.1 Protocol Implementation
The objective of this project was to implement the HTTP/1.1 request commands (GET and PUT) using client server framework. Socket programming was used to accomplish the task of communication between the client and the server. HTTP commands such as GET and PUT were used as the communication protocols.

Technologies Used:
• Languages – C#
• Tools – Visual Studio 2015

Details of work done:
• Implemented GET and PUT methods of HTTP/1.1 protocol using TCP connection and socket programming in C#.
• Completed the whole project individually as a part of the course ITCS 6166: Computer Communications and Networks.
• Implemented a command-line application for the protocol.


Carpool Management System
In a world with increased traffic and pollution because of increased vehicles, we had planned and proposed to share the resources efficiently by sharing the ride among people and saving fuel and money in the process. In this project, we have developed a Web application which will help its users to find out people who are travelling on the same route (Source and Destination) and same day (or flexible - up to the user), and collaborate with them in order to share a car.

Technologies Used:
• Languages – ASP.NET, Bootstrap, CSS, Razor UI, MVC Framework
• Tools – Visual Studio 2015, Taiga.io, Source Tree, GitHub, Canvas, Unit tesing framework - NUnit
• Database - MS SQL Server
• Version Control - GIT
• Project management framework: Agile - 4 Sprints

Details of work done:
• Completed the project in a group of 4 as a part of the course ITCS 6112: Software System Design and Implementation.
• Was involved in all the phases of software development.
• Worked on all aspects of the project: Front end, Back end, and Testing.
• Worked on Database interaction with Backend.
• Project Documentation.
• Status/Mockup Screens/Documents updations on taiga.io (Project management platform).


goContacts
GoContacts is a web based personal contacts directory application, developed in Go Programming language. It is aimed to manage users contacts in a .csv file using the web interface.
Completed the project in a group of 4 as a part of the course ITCS 5102: Principles of Programming languages.

GoContacts provide following features:
1. User can load any .csv contacts file compatible with GoContacts.
2. User can also create a new .csv file for storing the contacts.
3. User can add contacts.
4. User can delete contacts.
5. User can also restore deleted contacts.
6. User can edit existing contacts.
7. User must be able to perform all the above actions using web interface.

Technologies Used:
• Languages – Go, HTML, Bootstrap
• Tools – Notepad++, Source Tree, GitHub
• Version Control - GIT
• Project management framework: Agile - 3 Sprints


At University of Pune:

Parallel Data Compression using LZMA
Now-a-days a tremendous amount of data is generated and shared per second, so there is real need of efficient data storage management and utilization of bandwidth.
Data compression is one of solution to this problem. Compression ratio and time required for compression and decompression are two main pillars of data compression. If either of the two gets hampered then data compression may be termed as inefficient.
LZMA (Lample-Ziv-Markov) is one of the finest algorithms for data, to be more precise, text compression in terms of compression ratio. But we found that it has not got that much amount of success due to its comparatively high time complexity for compression. We have improved its time complexity by implementing it in a parallel fashion.
GPGPU has provided a well-defined and economic path of parallel implementation to a computer community.

Here we have implemented a general data compression algorithm that has been designed by keeping in mind the parallel nature of the computing devices that we will be using. This, as we have discovered over the course of the project, not only decreases the compression time but also provides us with a compression ratio slightly better than that of LZMA.

Technologies Used:
• Languages – C
• Keywords— LZMA, CUDA, lossless data compression, GPU, BZIP2, GZIP.


Bank management System
In this project the user can create an account where it gets a unique account number, has the option to choose the type of account viz., saving, current. The user can deposit in the account, withdraw from it. It also includes simulation of ATM machine using applet.

Technologies Used:
Java, JSP, JavaScript, Oracle 9i


Tender management System
In this project the organizations can float their Tenders on a common platform, while the vendors will put out quotations for the available Tenders. Hence the organization can choose the perfect suitable quotation for their tender.

Technologies Used:
VB 6, Oracle 10g

Technical Expertise

Languages: Java, Python, C#, C, C++

Version Control:
GIT, SVN

Project management framework:
Scrum (Agile), DevOps, Waterfall

Operating Systems:
Mac OS, Linux, Windows

Cloud Technologies:
AWS, Azure, Docker, Vagrant, Gradle, Gogs, Artifactory, Jenkins, Spinnaker, Packer, Cloud Custodian

Research and Publications

• Filed a patent (us 81206835): "System and Methods for using labels to characterize flows of data for the purposes of management, security, analytics" on 20th March 2021.

• Published blogs at Citrix on various new features that I added/delivered.

• Published an Implementation paper ‘Parallel Data Compression Using LZMA’ at ‘24th International Conference on Advanced Engineering and Technology, India, 2013’, and won the Best Paper Award.

• Co-Headed ‘CRYSIS’, a ‘C-coding competition’ event hosted by the Computer Engineering department under the colleges Technical Event and a National level symposium “INNOVISION 2k12”.

• Member of Organizing Committee of ARC (Amateur Robotics Club) at Computer Engineering department of RSCOE, Pune, India.

• Member of First Years Students Association at Computer Engineering department of RSCOE, Pune, India.

Awards and Achievements

• Won multiple 'WOW awards' at Veritas.

• During Internship at Veritas, our project team Won in the catagory 'Innovated to win by helping to create the future.' at Intern Showcase 2017.

• Won ‘Rising Star Award’ at Calsoft Pvt. Ltd. for 2015 for my work performance and contribution to the company.

• Won ‘Spot Award’ at Calsoft Pvt. Ltd. in February 2016 for my contribution in the project.

Top 5 ranker among 120 students in Second, Third and Final years of Bachelors of Engineering (BE) Program.

• Won 14 Project and Paper presentation competitions across Pune, India including an IEEE India chapter Project competition.

• Won 3rd Prize in C programming competition at an event sponsored by IEEE held at PICT, Pune, India.

• Won two consecutive times in Drag Race – a robotics event held under the National level Symposium “INNOVISION” in 2011 and 2012 held at RSCOE, Pune, India.

• Won 1st Prize in Business Modeling Competition held at RSCOE by the MBA department.

Course Work

Masters in Computer Science:

Fall 2016: Software Systems Design and Implementation, Principles of Programming languages, Algorithms and Data structures, Computer Networks

Spring 2017: High Performance Computing, Cloud Data Storage, Database Systems, Principles of Info. Security and Privacy

Fall 2017: Cloud Computing for Data Analysis, Knowledge Discovery in Databases

Bachelors in Computer Engineering:

2nd year: Discrete Structures, Programming and Problem Solving, Digital Electronics and Logic Design, Data Structures and Algorithms, Microprocessors and Interfacing Techniques, Conputer Graphics, Computer Organization

3rd year: Database Management System, Data Communication, Microprocessors and Microcontrollers, Digital Signal Processing, Theory of Computation, Principles of Programming Languages, Computer Networks, Finance and Management Information Systems, System Programming and Operating Systems, Software Engineering

4th year: Design and Analysis of Algorithms, Principles of Compiler Design, Object Oriented Modelling and Design, Artificial Intelligence, Multimedia Systems, Distributed Operating Systems, Advanced Computer Architecture, Cloud Computing, Information Security

Contact

Feel free to email me!

tejaswikonduri92@gmail.com


Address: San Jose, CA, USA - 95134