Naren Narra
*****.*********@*****.***
Summary:
14+ years of experience in software analysis, design, development, testing and implementation using C/C++ on UNIX, Linux and Windows platforms.
Very good working experience on Database Systems, Oracle, DB2, Sybase, INFORMIX, H2, SolidDB, VoltDB.
Good experience in writing embedded SQL(Pro* C, T-Sql, sqC) programs to work with different backend Database systems.
Committed to developing very high-quality software through a disciplined, structured and object-oriented approach to software design and development.
Very good knowledge of Object Oriented Analysis and Design (OOAD)
Strong working Knowledge on UNIX Shell Scripting, Python, AWK and Sed.
Experience in enhancing Frontend developed in C#/.NET, JAVA, J2EE rich GUI inter faces.
Involved in all the phase of Software Development life cycle (SDLC).
Good Development experience on writing Make scripts to compile the C/C++ programs efficiently.
Good working experience on SQL and PL/SQL.
Good Development experience on implementing XML Parsers (SAX, EXPAT) and using MQ Series libs.
Expert in implementation of various Data Structures, Linked list, Stack, Queue.
Well Conversant with Configuration Management Version Control System which were used to maintain source code / handle Maintenance Requests, Coding for multi-threading, multi-tasked applications.
Good exposure to Hadoop Big Data architecture HDFS, Hbase, MapReduce, Pig, Hive, Scoop, Flume, Kafka, YARN, Spark, Strom, Lambda architecture, Column oriend data bases Cassanda/Green Plum/Neteeza.
Developed the tools/applications for the Financial, Retail and Telecom systems.
Excellent analytical, problem solving, communication and interpersonal skills.
Technical Skills:
Languages: C, C++, SQL, PL/SQL, T-SQL, UNIX Shell, JAVA, C#, COBOL, HTML, XML.
Operating Systems: UNIX, LINUX, Windows NT/98/00/XP
Databases: Oracle, DB2, Sybase, Teradata.
Tools: SVN, CMVC, CVS, VSS, Manage Now, Putty, QMF, TOAD, FEXP, BTEQ.
Programmer Analyst
Openet Telecom Inc, Overland Park, KS Dec’12 – Till Date
Project: Fusion Works Product ( PCRF, Mediation, Balance Manager, Active charging )
The FusionWorks Platform is a processing and transaction management software platform that offers the highest performance, scale and flexibility service providers require to deploy and manage services. This Platform is the backbone of every openet solution: FusionWorks Convergent Mediation, FusionWorks Convergent Charging, FusionWorks Policy Manager(PCRF) and FusionWorks Balance Manager. These solutions are being used by major telecom operators including ATT, Sprint and Verizon.
Responsibilities
Key member in the group to address any new production issues or existing performance issues.
Worked on issues and supported different versions of Openet products Mediation, PCRF, Balance Manager, Active Charging, CDM(Configuration Deploment Manager) for different clients.
Analyse into Traces or core dumps or logs provided, fix the issues, create and release them client specific patch and with release instructions to deploy.
Design and develop the applications based on the requirements gathered by the Professional Services and by analysing the issue.
Design database queries, functions and stored procedures based on requirements.
Perform peer review for both design and C++ code, Python, DSD and suggest appropriate changes.
Debug with gdb and Valgrind tools to detect issues, fix and run ATF for Unit Test Cases and generate installation patches.
Working with Different mediation protocols to process Mediation data and Gx/Gy/Sy/Rx to connect to different PCRF interfaces on Diamater Protocol.
Coordinate with the Professional Services and Support teams to enable the delivery of the installation files in Production environment.
Install the patches for testing and run ATF test cases, perform unit testing based on the changes and help other teams on Testing issues in Lab/Production.
Follow up with the Professional Services and Support teams for any issues that might need clarification in the requirements.
Activities associated with on-going support of production environments. This phase includes required activities to ensure a viable stable environment absent of functional changes. And those activities required to support planned change such as test environments, software patches or new versions of system software.
Key member in the group to address any new production issues or existing performance issues.
Environment: C++, Java, Unix/Linux, Oracle.
Programmer Analyst
Wal-Mart, Bentonville, AR Feb’11 – Dec’12
Project: Global Logistics System
Global Logistics System (GLS) deals with Wal-Mart’s Warehouse Management system (WMS). A warehouse management system, or WMS, is a key part of the supply chain and primarily aims to control the movement and storage of materials within a warehouse and process the associated transactions, including, receiving, put away, picking and shipping. The systems also direct and optimize stock put away based on real-time information about the status of slot utilization. And it serves to fulfill store’s orders so that stores do not run out of any items. A distribution center is a warehouse where all the products are stored or distributed to the stores.
Responsibilities
Created/Updated the SQL/PLSQL database components as per the new requirements on Informix database.
Developed/Modified ESQL/C underlying database layer programs.
Worked on server components which serve VB.NET front end application using TopEnd as middleware.
Developed Design documents and conducted reviews with the other interfacing application teams.
Developed C++ programs to generate reports and parse XML messages received from interface systems.
Responsible for other team member code review as well as design review.
Being part of CR/Defects team member, responsible for understanding and reviewing new requirements in technical perspective.
Key member in the group to address any new production issues or existing performance issues.
Developed new Unix scripts helped to automate testing execution, save lot of time/accuracy and reduced manual effort.
Worked on enhancement of existing 4GL modules to accommodate new business requirements.
Involved in query tuning for many modules where SQL’s are running for longer duration.
Performed the Unit testing, Integration testing and System testing. Extended support to the users in UAT and UCT.
Environment: C/ESQL, C++, .NET, HP Unix, Informix.
Programmer Analyst
Leading Mutual Fund Company, Philadelphia July’10 – Feb’11
Project: Order Routing Rule Engine
Order Routing system serves 3 different channels Web client, VB desktop client and IVR client. Once order is entered to the server it will be validated by respective order entry rules based on the nature of the order. Only successful orders passed by the order entry rules will move forward for routing. Otherwise based on the severity of the order entry rule, server will send appropriate message to the client. Orders entered in routing module, will be forwarded to the market makers/vendors depending the different attributes of the order and routing rules configured on the server. Venders will submit order to stock market and update on the status.
Responsibilities
Good understanding the Stock market Order Entry validation and Order routing rules.
Used Rogue Wave C++ libraries for efficiency in several modules.
Worked on compiler up gradation release, server code migration to 64-bit compiler version.
Responsible for any issues during the on-call production support days.
Created/Updated the SQL/PLSQL database components as per the new requirements on Oracle RAC environment.
Developed/Modified Pro*C underlying database layer programs.
Worked on DOM XML api as all the interaction between client and server is via XML messages.
Good knowledge on TCP, UDP, OSPF and FIX protocol, as all the communication with market vendors is via fix messages.
Responsible for working with enhancements and new requirements FINRA or internal organization.
Developed Design documents and conducted reviews with the other interfacing application teams.
Performed the Unit testing, Integration testing and System testing. Extended support to the users in UAT and UCT.
Environment: C, C++, Unix Solaris, Oracle.
Programmer Analyst
Thomson Reuters, St. Louis Mar’08 – June’10
Project: Ticker Plant
As a Front-end application development team member for the Collections North American Stock Markets, we have developed Line Handlers and Message Formatters for several equity feeds in America and Canada. We own/maintain the front-end ticker machines for largest volume feeds like OPRA (Options Price Reporting Authority), NYSE, NASDAQ.
Responsibilities
Good experience in processing financial data received in different protocols.
Enhanced functionality of multi-threaded C-Library for handling higher message transactions.
Implemented Front-end tickers for FIX (Financial Information Exchange) Protocol and FAST1, FAST2, ASCII data.
Developed and tuned the code for conflation algorithms, used in several Line Handlers.
Processed the market data for NYSE(CTS/CQS), NASDAQ(NL1/NL2), OPRA, Toronto(TL1/TL2), Canada Montreal(CL1/CL2), Chi-X, Alpha, etc markets.
Developed Feed Handlers that establish connection to the exchange using TCP/IP sockets or UDP.
Developed several Line Handlers to process Level1 and Level2 market data.
Implemented market logic code to generate market depth and order book.
Involved in several Day-1 and DE (Data Enhancement) releases for several feeds.
Worked on the capacity improvement releases for feeds like OPRA, improved the each Line Handler performance from 25K to 60K/Sec.
Own/maintain feeds with high transaction rates like 500K(all 24-Lines) per second for OPRA.
Created/Updated the SQL/PLSQL database components as per the new requirements.
Developed Design documents and conducted reviews with the other interfacing application teams.
Performed the Unit testing, Integration testing, System testing and Data testing using Bridge Station/Reuters X3000. Extended support to the users in UAT and UCT.
Responsible for working with enhancements and new requirements using RAD model.
Environment: C, C++, Windows, Unix, Windbg, Oracle.
Programmer Analyst
Sprint, Kansas City Sep’07 – Feb’08
Project: Affiliate Settlements & Management Reporting (XOS)
XOS is affiliate reporting application for Sprint. Reports are derived on the call usage data received from the either of the billing systems Ensemble or P2K. Collects the usage data from all the billing cycles in different formats plain text files and from Teradata Data Ware House and build its own data mart. Generates different types of reports from database and as well as from flat files. Data in flat files is stored in the formats like fixed length, variable length and delimiter format. It has developed a D-File C library to read these files. All the reports would be extracted by UNIX shell scripts configured with input, output and error parameters. Financial Settlements team will send these reports to Sprint affiliates for the final settlements.
Responsibilities
Created the key based UNIX shell programs to generate reports based on the configuration file entries.
Enhanced functionality of multi-threaded C-Library for handling the D-file (Delimiter file) operations using p threads and Hashing algorithms.
Used FEXP(Fast Export) and BTEQ(Base Teradata Query) tools to extract the data from Teradata data base.
Optimized/Modified the SQL queries from the existing reports using Oracle query hints.
Generalized UNIX shell Scripts can be used in many reports by passing the respective key arguments.
Developed Design documents and conducted reviews with the other interfacing application teams.
Performed the Unit testing, Integration testing and System testing. Extended support to the users in UAT and UCT.
Responsible for working with enhancements and new requirements using RAD model.
Provided customized reports on user request for the special business scenarios.
Documented all the existing jobs/processes for the offshore team reference.
Environment: Pro* C, C++, Scripting on SunOS 5.10, Oracle 9i.
Programmer Analyst
Thomson Financial, Milwaukee Apr’07 – Sep’07
Project: Capital Market Engine (CMEG)
CMEG is one of the Trading applications from the Thomson Transaction Services. This system is built to share/balance the load of the real-time mainframe server for better performance. It is to process the special type of Real time Inventory Transaction messages - OFFER, POSITION and STORY records sent from the mainframe system. It reads the XML messages from the MQ and parses those XML using SAX or EXPAT parser. It associates the each xml tag name to database column with the help of memory mapped files and finally updates the database. It translates the XML message in to FIX format based on the target ECN. The target ECN can be TradeWeb Retail, MuniCenter.
Responsibilities
Responsible for preparing Initial Design Documents.
Created shared memory (IPC) segments and mutex variables for the process synchronization.
Developed the programs to read XML from MQ Series using MQ libs and parsed the xml records.
Parsed XML files using SAX and EXPAT XML parser API’s from C programs referring memory map files.
Developed DB2 Stored Procedures and Functions, are called from C routines.
Worked with the Make files and Dynamic Libraries.
Developed and executed C++ processes and created client/server interface.
Implemented sorting and searching algorithms to find xml tags from memory map files.
Automated the server side make and build UNIX scripts.
Used CVS to maintain the code repository.
Responsible for working with enhancements and new requirements.
Developed, tested, and built C processes under multi-tier architecture under UNIX environment.
Involved in peer review of Initial Design Document prepared by other members.
Environment: C++ on AIX-UNIX 5.2, DB2 UDB 8.2.
Programmer Analyst
IBM Global Services, Raleigh May ’05 – Feb ‘07
Project: Partner Commerce
Partner Commerce is a part of the Partner World suite of business applications that enable you to carry out vital e-business transactions with IBM over the internet using a standard Web Browser, making IBM the easiest company with which to do e-business. Partner Commerce is an e-commerce business application gives you a direct interactive communication link with IBM’s Ordering System, allowing you to browse electronic catalogs of IBM products and select items to order. Partner Commerce provides visibility on status of orders placed with IBM and allows you to change or cancel your orders based on the current order status.
Responsibilities
Developed, tested, and built C++ processes under multi-tier architecture under UNIX environment.
Responsible for preparing Initial Design Documents.
Developed and executed C++ processes and created client/server interface.
Created projects on Windows in Visual C++ and compiled them using make.
Build and tested the application in local box on Windows platform.
Build the source code using MKS Tool Kit on Windows.
Automated the server side make and build scripts.
Used CMVC to maintain the code repository.
Responsible for the enhancements and debugging the application using C++.
Developed or Modified and tested Java Servlets and JSP on WebSphere application server.
Worked in development of the financial module which specifies actual and entitled prices of the products.
Involved in peer review of Initial Design Document prepared by other members.
Environment: C++ on AIX-UNIX, DB2 UDB, Web Sphere Commerce Suite and Application Server.
Programmer Analyst
Sprint, Kansas City Oct ‘04 – May ‘05
Project: Order Processing System
Order Processing System (OPS) is a middleware telecom application that uses an Oracle data base to provide a temporary data storage for orders of Sprint products and services. This application involves in the process of requests or orders from clients, to get them processed it needs to pass various stages. This application uses the information from few input tables, does some processing before it updates into the respective tables. So that we can make it available, this processed information for the further processing of the request or order. Operations include Store Order, Update Order, Search for Orders, Lock/Unlock Orders, Get Order by Number, etc.
Responsibilities
Involved in the design of the project using Object Oriented Analysis and Design
Developed Pro*C programs, to interact with the Oracle Database
Creating and running the shell scripts to run the Processes at time schedule according to business rules.
Involved in setting up the environment for the C and C++ libraries, database and solving networking issues.
Involved in creating Client/Server interfaces.
Worked with PL/SQL procedures, and used in the C programs.
Involved in preparing documents, fixing data issues, and improving the performance by working with development and testing team.
Developed the shell scripts to execute regular tasks.
Worked with existing application, quickly understood, coding and maintaining application.
Environment: C, C++, Pro*C Shell, Oracle, SQL, Sun Solaris UNIX
Programmer Analyst
SHPS, Minneapolis Apr ‘04 – Oct ‘04
Project: LTRGEN
SHPS is nation outsourcing firm, bring together the most comprehensive HR, health care and technological solution. The services provided are Health and Welfare Benefit Plan Enrollment, Eligibility, and Data Management Carrier Administration and Consolidated Bill/Pay, Direct Billing Services and Retiree Administration, Reimbursement Accounts and Defined Contribution Health Care, Absence Management and Leave Administration, COBRA/HIPAA Administration, Call Center Support, Internet-Based Self-Service Decision Support Tools, Benefits Communications. The project letter generation is to process different kind of letter to different clients. The letters contains predefined and preprocessing elements which are populated by Sql queries and C preprocesses code. There is PB-Application which makes an interface for the project.
Responsibilities
Involved in design, development and implementation of the module.
Involved in analysis and design of the application using the UML standard.
Automated the processes using UNIX shell scripts and Job Track Scheduler
Developing and Testing the T-SQL programs in Front End using the PowerBuilder Application.
Developed applications using Sybase DB-LIB API.
Developed the Make scripts to compile the programs
Worked with existing application, quickly understood, coding and maintaining application and optimized the SQL’s the better performance.
Acquired good health care domain knowledge by generating different kind of letters.
Environment: C, C++, Sybase, Sun Solaris UNIX, Front end as Power Builder
Programmer Analyst
Kalanjali, Hyderabad Apr ‘03 – Mar ‘04
Project: Product Automation System
The basic aim of this project is to provide transparency to the client, which gives each and every item flow. This application helps to analyze sales based on particular item or item type or some season, as well as to summarize the business per day, month, year or for some specific duration.
Responsibilities
Involved in design, development and implementation of the module.
Involved in analysis and design of the application using the UML standard.
Implement code for controls they will be finally placed in the screens and reports. These controls are used to enter data to the database and retrieve from the database.
Generated reports using .sqC and SQL.
Creation and scheduling of workbooks to be run on server and storing the information after the report are run in the database.
Developed many programs to generate reports as the business requires.
Environment: C, C++, DB2 UDB 7.0, Red Hot Linux, SQL
Programmer Analyst
CSRDC, India Nov ‘02 – Apr ‘03
Project: DES Implementation
This project uses the DES algorithm to perform encryption and decryption operations on data, is the one of the popular cryptography algorithm. The server machine sends the encrypted message using some 56 bit key, client will decrypts the received message using same key. So, that it gets original data. Here the transferred data is encrypted data using some secret key, which is known to only sending and receiving machines, others can't understand this encrypted data. This is the way we are providing security to data while transferring, is the main concept of this project.
Responsibilities
Involved in design, development and implementation of the algorithm.
Implemented the code to DES algorithm to perform encryption and decryption operations on data.
Testing the application by taking some sample data.
Implemented the code to establish connection between client and server using TCP/IP socket.
Optimization of the code for the better performance of the application.
Preparing Unit Test cases and executes them in the development environment.
Environment: C, C++, Windows.
Education
Masters in Computer Applications
BS in Computer science