Professional Projects

Dell Technologies, Bangalore Jul 2021 - Till Date


1) Project: PFYD - new portal for "parts for your dell"(as legacy portal had lesser features, was slow in response for page loads, search and TTI)


Technology/Tools Used: Dotnetcore 6.0, asp.net core, C#, web api, ,Datastax cassandra 6.8.1(apache cassandra 3.11.x compatible, datastax c# driver), splunk search8.2(splunk enterprise SDK), kafka 3.x(confluent c# driver), sql server 2019, VS 2022.


Brief description: With legacy portal our customers were not able to easily and quickly find the exact parts that they were looking for. Getting to the right, compatible part seemed to be a long, non-intuitive journey with many roadblocks. Hence a new portal was envisioned by product team(SMEs) and requirements were passed to development team.


Major functionalities: Search by Device(product family and model), part number, service tag, recommended parts, compatible parts, parts by type and brand. New portal: https://www.dell.com/en-us/shop/partsforyourdell


Development tasks: implementing all the required functionalities in web API and in UI.

1) Porting data from SQL server to Cassandra tables.

i) a CLI app named scheduler was developed for reading data from SQL server tables and it was pushed to Kafka queue. This is the producer.

ii) a CLI app named assembler was developed to consume kafka messages and inserted and updated into Cassandra tables.

iii) Re-designing Cassandra tables and defining partition keys.

2) This was done to move towards denormalized models so as to get info in single shot with much better performance.

3) Developed repository layer and webApi to get data from Cassandra based on a user's locale(country, language, segment and accountId). This is based on mediator pattern.

4) Developed UI with razor pages(cshtml).

5) Consuming search API for searching by part number and service tag.

6) Took part in design and architectural decision making process.

7) Writing Unit tests(test coverage has to be greater than 95%, this is the norm at dell measuring with SonarQube).

8) Code reviews, guiding and mentoring junior team members.

9) Took part in deployment decision after load testing; the app is deployed on 2 servers behind nginx load balancer in dell cloud. Load balancing method chosen was least connected.

10) Deciding on partition key in Cassandra: ((country, language) [partition keys], segment, customerId[clustering keys]).


2) Project: Enhancements and refactoring for performance improvements in Configure module. Data analytics work with Splunk, creating dashboards to monitor performance and errors.

Technology/Tools Used: .Net Framework 4.7, Angular 5, C#, web api, ,Datastax Cassandra 6.8.1(apache cassandra 3.11.x compatible, datastax c# driver), Splunk search8.2, sql server 2019, VS 2019, Redis 6.x

1) Refactored existing code to achieve better performance. Loading several data such as Energy efficient indexes, Federal taxes, pricing data, SKU data etc and calls to other internal APIs such as DeliveryPromise, SnPCatalogService etc in parallel to populate ConfigResponse object in API response. This is the legacy code that was refactored.

2) Worked on moving product customization(modules and options) data storage system to Cassandra. Wrote API endpoints to store cart data to Cassandra.

3) Did analytics work in Splunk to monitor certain performance and error metrics. Created dashboards, drafted splunk queries, setting up email alerts.

4) Investigation and bug fixes for production issues reported by customers.

CHR Solutions, Bangalore Apr 2013 – Apr 2021

1) Project: GSM Wireless services integration with AT&T JAX-WS services

Technology/Tools Used: VS2017, .Net Core 2.2, Azure Service Fabric SDK, C#.Net, Web API, SQL Server 2016, Entity Framework Core, SOAP UI

Project Details

CHR Solutions delivers comprehensive technology solutions and business operations services to communication service providers around the world.

The goal of this project is to integrate our existing system with AT&T GSM wireless system.

My role was to propose a design and develop a REST-based microservice that consumes AT&T JAX-WS endpoints. This involves thorough understanding of the parameters required by the external web service and constant coordination with SMEs and UI team so as to how they’d pass those parameters. Requests and responses are also captured into SQL database.

AT&T Endpoints that are consumed are as -InquireMarketServiceAreas,InquireAvailableSubscriberNumbers,ReserveSubscriberNumber, ReleaseSubscriberNumber, ActivateSubscriberNumber, SwapEqipment, MoveSubscriber, InquirePort, UpdateSubscriberStatus(Cancel, Suspend, Resume and Restore services) etc for both prepaid and postpaid profiles.

2) Project: Building Product Catalog and Order Capture modules for Telecom domain

Technology/Tools Used: VS2017, .Net core 2.2, C#.Net, ASP.Net MVC, Web API, messaging middleware NServiceBus, jQuery, MS SQL Server 2016, In-Memory OLTP database.

Project Details

The goal of this project was to build a Telecom Product Catalog based on SID model specified by TM Forum(this institute defines standards for telecom domain). Project includes -

1) Building the data model and setting up relationships with entities.

2) Build custom pages with ASP.Net MVC Razor views.

3) Write a set of REST APIs in ASP.Net MVC Web API and Azure Service Fabric SDK for integrating Product Catalog to other modules such as Order Capture and Enterprise Service Portal.

4) Implementing JWT authentication in EnterpriseApi for product catalog.

5) Working heavily on Order Capture module; assigning location, product configuration, product details, scheduler and order processing functionalities.

6) Working on production level tickets/issues as and when they arrive to the development queue.

3) Project: Performance improvements for large orders and large accounts’ subscription data

Technology/Tools used: VS2019, .Net core 3.1, C#.Net, Web API, MS SQL Server 2016, Redis.

As certain key customers started facing performance issues during order processing and fulfillment(transfer). My role was to come up with a robust design and refactor certain key areas of the API.

1) The focus was to get the data in batches on demand viz. Subscription data, order capture model data including components, configurations, elements and pricing.

2) Setting/saving data was refactored(earlier using EF) to use native ADO.Net capabilities for bulk inserts and updates(using table valued params in stored procedures) of intermediary order structures such as components, configurations, pricing items, order tasks, billing tables such as services, items, itemData and itemPrices etc.

3) Using Redis cache to store OrderCaptureModel during the Order Capture flow so that data is readily available to traverse back and forth between different steps such as product selection, configuration, facility initialize, scheduler and final order summary.


4) Project: building the new account management module for telecom BSS

Technology/Tools used: VS2019, .Net core 3.1, C#.Net, ASP.Net MVC, Web API(golang, gin), jQuery, MS SQL Server 2016, Redis.

The existing account management solution functionalities have to be built as a minimum basic product and then with extended capabilities.

Develop API and UI capabilities for following business functions –

1) Account Subscriptions - services, associated items and addresses for the account.

2) Apply “Other Credits and Charges” to account and associated service items.

3) Receiving cash payments, invoices and sample bills.

4) Opportunities and orders, including open orders. Fire other types of orders such as disconnect, suspend, change etc. View service configurations.

5) Account contacts functionality, account usage, tax information, exemptions, balances etc.

6) Ticketing capabilities.

The contracts of API have to be common ones that caters to the customer portal module as well.

----------------------------------------------------------------------------------------------------------------------

Symphony Infospace, Bangalore, Dec 2011 - Apr 2013

1) Project: Road Rebel – Building Rebel Navigator

Role: Analysis, development and testing, mentoring lesser experienced developers

Platform: .Net Framework 4.0

Technology/Tools Used: VS2010, C#.Net, ASP.Net MVC3, MS-SQL 2008 R2, Entity Framework 5.0 RC, Dapper 1.12.1, jQuery.

Team Size: 5

Project Details:

Road Rebel is an entertainment logistical services/support company. Road Rebel moves and houses people and equipment wherever they go on the road to perform, anywhere in the world.

The product as a whole is called Global Navigator and will be made up of three software applications: Road Navigator, Rebel Navigator, and Trade Navigator. Road Navigator will be used by Road Rebel’s clients. Rebel Navigator (internal application) will be used by Road Rebel’s Coordinators (employees). Trade Navigator will be used by Road Rebel’s Suppliers/Vendors. All three software applications will be accessing the same database.

Rebel Navigator encompasses these departments - Housing, Busing, Freight, Contracting, Finance and Sales. Currently the development is being done for Sales, Housing and Housing Contracting work flows. Every piece is being built from scratch.

Responsibilities:

    1. Analyzed the requirement keeping the customer focus as the highest priority.

    2. Favored composition over inheritance for loosely coupled designs(EF POCOs data model also teaches you exactly that).

    3. Designed the database schema & participated in Performance Tuning (.Net 4.0 TPL for multi-core processors, Linq to entities query tuning, using PredicateBuilder object, Server side paging, ajax based solutions for faster loading, MVC has excellent support for ajax and jQuery).

    4. Using Dapper at some places for speeding up data retrieval.

    5. Designed Access/Permissions module; who can access what areas of the application.

    6. Designed Sales module; Productions, Production level defaults, Production Companies and Clients flows. Tracing system for Productions and Clients.

    7. Designed contracting flow for housing stays; RFC, GC, Bids, Statuses and Traces, Forms and Letters.

    8. Code reviews & code refactoring. Being a senior member in the team I have worked/refactored on almost all the pieces in the application developed so far.

    9. Utilized NUnit for testing some of the functionalities.

    10. Task management - following agile & scrum meetings daily. Iterative development; daily feedback from the customer through teleconferencing.


S M NetServ Technologies, Bangalore, Sep 2008 - Dec 2011

1) Project: Career Builder – Re architecting the Applicant Experience System

Role: Analysis, Senior developer, mentoring other developers

Platform: .Net Framework 3.5

Technology/Tools Used: VS2010, ASP.Net, C#.Net, jQuery, web-services, Apache Solr search engine, MS-SQL 2008 R2

Team Size: 4

Project Details:

Information in this product represents job seekers’ perceptions of their experience in applying for a job at a particular company. The survey data is then used to measure their experience on various parameters. http://www.careerbuilder.com/Personified/ApplicantExperience/Default.aspx?demo=true

Then we have themes, themes comprise of 5 key areas impacting an organization: Employment Brand, Advertising Effectiveness, Process/Technology Efficiency, Recruitment Team Effectiveness and Talent Demographics. The scores indicate if you are above, below or meeting the benchmark. http://www.careerbuilder.com/Personified/ApplicantExperience/FocusAreas.aspx?demo=true

This is an experiment to judge the best performance out of two systems – Solr search engine and SSRS. As the AES responses data was growing, there was a need to move to faster responsive systems.

FocusAreas is running on Solr where as AES default is running on data fetched through SSRS web-services.

Responsibilities:

    1. Analyzed the requirement keeping the business needs and customer focus at the highest priority

    2. Worked on C# and ASP .NET to develop the logic

    3. Implemented Batch processes

    4. Applying “Strategic pattern” (easy maintenance and scalability).

    5. Moving from the custom DB to warehouse (scalability and performance benefits), getting data by consuming SSRS web-services; those services were exposed to us from the warehouse team.

    6. Multithreaded requests for retrieving responses (performance benefits).

    7. Making web-service calls to Solr search engine for AES default data, building Solr queries.

    8. Using Linq to parse XML(giving us performance benefits over the legacy parsing APIs).

    9. Code reviews and code refactoring

    10. Utilized NUnit and Selenium for testing some of the functionalities

    11. Task management - following agile & organizing scrum meetings daily .

2) Project: Career Builder – Recommend a Job to a Facebook Friend

Role: Analysis, development and testing

Platform: .Net Framework 3.5

Technology/Tools Used: VS2008, VB.Net, C#.Net, VB.Net, ASP.NET, MS-SQL 2008, Facebook API, javascript, Nhibernate

Team Size: 3

Project Details:

Build "Share with a FB friend" project by recommending "relevant' friends to send this job to. "Relevant" means an appropriate friend based on job title provided by the Facebook user.

Go to http://careerbuilder.com, search for a job; click on a job to get to the details and go to "Share with Face book Friends" link.

Responsibilities:

    1. Analyzed the requirement keeping the customer focus as the highest priority

    2. Designed the database schema & participated in Performance Tuning.

    3. Get all the friend’s details for the logged in user

    4. Implementing the match by position and the match by location functionalities.

    5. Utilized NUnit for testing business logic

    6. Code reviews & code refactoring

    7. Task management - following agile & organizing scrum meetings daily

3) Project: Career Builder – Email Based Registration(For IN site)

Role: Software Engineer - Analysis, development and testing

Platform: .Net Framework 3.5

Technology/Tools Used: VS2008, VB.Net, MS-SQL 2008, web-services(CareerBuilder API)

Team Size: 1

Project Details:

Add the ability to email an attached word document and create users and post the resume. In a test we achieved a 10% conversion rate on open emails.

Responsibilities:

    1. Involved in Design and implementation.

    2. Create a document parser class to parse the incoming word document and get all the required values from the parsed resume. The Resume Parser is a third party tool.

    3. Created auto mechanism to create user on site and posting resume based on the parsed information by making CareerBuilder API calls.

    4. NUnit test coverage


Genisys Software, Bangalore, April 2007 - May 2008

1) Project: National Lottery Commission (NLC, U.K.)

Role: Software Engineer - Analysis, development and testing

Platform: .Net Framework 2.0

Technology/Tools Used: VS2005, ASP.Net, C#.Net, Ajax, MS-SQL 2005

Team Size: 4

Project Details:

NLC is an intranet application (Menu driven). The application monitored the total sales, revenues, tickets count, winner’s details etc. in its core. It had 3 types of users with admin, modify and read only access rights. It had three basic game types “Draw”,”IIWG” and ”ScratchCard”. Each game type had several games under it. A game could either be played daily or on a specific no. of days per week. A game can also be eliminated or marked inactive based on the scenarios present to the admin.

Responsibilities:

    1. Analysis for the given Functional Requirements from Client.

    2. Writing LLDs(Low Level design document).

    3. Involved in development of the Presentation layer, business layer and data access layer.

    4. Code Walk-through & Coding the programs as per specifications.

    5. Unit Test Specification preparation and Testing.

    6. Set-up and deployment for testing.