- Obtained an Undergraduate degree in CS from IIT Madras and Ph.D. at Rice University; Worked at Bell Labs in Databases; Started a company in developing Enterprise Billing Systems; Now working as the Chief Architect for HCL’s SOA division, advising companies of SOA strategy, architecture, design, and implementation. Equally adept at computer science, with product development experience and Information management systems, with enterprise architecture experience.
- Laid out technological directions internally and for our clients in various capacities for the past twelve years.
- Experienced in several technologies, typically through delivery of an end product starting from the conception.
- Solved business problems by applying suitable combination of cutting edge and proven technologies.
- Experienced in open source technologies; one of the early adopters of Linux, Apache, and ASF Java technologies.
- Experienced in managing large distributed teams and off-shore teams, as well as small research teams.
- Author of SOA Security, a book published by Manning
- 1986: Bachelor of Technology in Computer Science and Engineering from Indian Institute of Technology (IIT), Madras.
- 1995: Ph.D. in Computer Science from Rice University under Prof. Robert “Corky” Cartwright. Thesis: Fully Abstract Models for Sequential Computations.
Sample Enterprise Application Building Experience:
- Project Sunrise, Bell Labs (1994-1997): I joined the project at conceptual stage. I helped in design, and single-handedly developed the prototype that helped convince the Business Units to fund the project. I became the technical lead for the team of twelve (the whole project had around thirty people), and developed the first version of the application.Subsequent to the break-up of AT&T, I joined Lucent and guided the initial efforts to productize the Sunrise application. Currently, Lucent sells Sunrise under the name of QTM.Technical Details:The product runs under Solaris, Oracle. It also uses Datablitz™, a main memory database. It handles 200 transactions (call records to be associated with a client, rated, discounted, and billed) per second on 1997 hardware. It uses Oracle for long term data storage and worked with Main Frame systems in working with the data.It takes care of provisioning, rating, discounting, billing, and collection of bills. In that project, I architected an end-to-end billing system that provides real time information for the purpose of:
- fraud detection,
- making accurate tax payments, thus avoiding penalties or loss of interest,
- attractive, competitive discount plans to reward the customer loyalty, and
- marketing tools to analyze the impact of promotions and campaigns.
- Prepaid Cell phone Billing, Savera Systems (1997-1998): In my capacity as VP of research, I laid out the strategy to develop the first fully web based prepaid product in 1997. Since web technologies were not fully developed at that time, I selected suitable combinations of technologies to minimize risk and provide scalability demanded by the clients.I managed four people in this project as a project manager.The product was deployed in two places while I was involved. Our strategy of developing fully web based application paid off when the client reaped unforeseen dividends: all the support calls could be outsourced to a call center by providing access, using regular dial up Internet, to the application.Technical Details: The product runs under Unix and NT, and uses Oracle as the back-end. It had interfaced with SIM card inventory system, reseller discount system, and credit report system.
- Interconnect Settlement System, Savera (1998-2000): This system settles the accounts between cellular carriers. We developed it for European markets — a particularly challenging task since each country has its own tax laws, and its own internationalization rules.After architecting the system along with another colleague, I took charge of the web based interfaces to the OA&M, bill presentment, and auditing of the application. I worked on planning the capacity of the system, and deployment as well.I managed a team of five in this project and advised a team of twenty.Technical Details:The backend was developed in C++, with the front-end deployed on Apache. The technology platform supported the following features:
- Load balancing via optional three tier architecture,
- Security through single point controls,
- Complete customization for each role that users play — that includes:
- End user,
- Customer provisioning agent,
- System Administrator,
- Application Administrator, and
- Account Manager
- Context (both user and history) sensitive help system developed in XML and XSLT.
When the system was developed in 1998, it was one of the early web based systems. This portal was developed with mostly homegrown technologies, as the solutions available in the market were still half baked at that time.
- Distributed Testing Framework (2000-2001): For our client TIBCO, I came up with a proposal to consolidate their testing strategies. It resulted in a new framework “ATTAK” that ameliorates several deficiencies in the previous systems. In particular, it adds distributed testing, a formal testware management process, and compact reporting. Our group did the complete development of this framework, including architecture, design, coding, user manuals, and tutorials. Within six months of delivering this product, it has been used in all their Active Enterprise line of products, and most of the adapters, and all of integration testing.I wrote the initial architecture, and developed a team of fifteen to support the client in using this framework.Technical Details: The framework is developed in Tcl, shell, Java, and supported Perl in generating reports. It was certified on Solaris, Windows NT, Windows 2000, Windows XP, Linux, HP, AIX, and Ultrix.
- Automotive Warranty Analysis System (2003): For our client Ubiquiti Inc, I helped architect a system that analyzes automotive warranty records. I also was responsible for engineering the complete product, and developing the backend for the application. My work involved mapping databases to objects, caching, and developing algorithms for in-memory analysis of the object relations to produce reports. In this project, I managed two other researchers.Technical Details: The product is a desktop application integrating with enterprise workflow. It is written in Java and C++, and uses MySQL/Oracle/MS SQL for data persistence.Features: The system eliminates the labor-intensive process of assigning codes to records. After the classification of records, using a customizable ontology, it stores the information in a form suitable for interactive mining. The technical underpinnings of this work is similar to RDF (Resource Description Framework).
- Web based Asset tracking system (2003): I helped correct the technical issues with a web based asset management system. In particular, I established standard page architecture, and separation of database layer, and enhanced logging through out the system. This application is built on Weblogic Appserver, and Weblogic Portal using Oracle 9i. The system uses struts framework for its front end. A part of the application is developed using web services.
- Florida Employee Training Program tracking System (2004): This system, built on Oracle Application Server and Oracle 8i needed help in code refactoring, framework setup, and performance tuning. I acted as a part-time architect to guide them team to all those tasks. In addition, I developed tools to support the deployment processes to reduce faulty synchronizations of different installations.
- Retail Application (2004): This J2EE application is a large order processing system built on Websphere and MQ Series. I guided the team to improve performance and stability over the course of a few weeks. I guided the team to rearchitect part of the solution using SOA.
- Web application Framework Standards (2005): Evaluated and assembled a standard Java technology stack for delivering our web applications. I established processes, training programs and tools for working with that stack.
- A template oriented Test Framework (2005): Based on the testing toolkit that we developed and some of the concepts from PhD thesis, we are evolving a template oriented testing framework. It supports domain models that let users specify partial scenarios that can be customized on demand. The whole work is designed to be developed in Java, with web-based front-end.
- SOA Reference Implementations (2006): I have been working on a book for Manning Publishers along with a colleague. As a part of this book, we have been developing technology stacks that are suitable for SOA implementations. In particular, we have developed innovative solutions for security requirements. The salient feature of these implementations is that they provide a stable framework amidst the evolving standards.
- SONA Frameworks — validation and testing (2006): I architected a framework to validate and test Cisco AON product in EAI. In particular, this work derives from two earlier projects: testing templates and SOA reference implementations. This framework lets us test AON as a whitebox appliance in a Service Oriented Network Architecture scenario.
- Evaluation of SOA technical strategy, design, and implementation (2006): I spent four weeks evaluating the SOA technical strategy for a large Singapore bank. As a leader of a team of three, I studied the current architecture and goals through interviewing all the stake holders and made a set of recommendations on three areas:
- Technical Strategy: Which applications should be moved to SOA first and how to evolve an ESB to support those applications.
- Design: Which open standards to use and which tools to use.
- Implementation: Conformance of the implementation to open standards, and best practices. The implementation was done on Tibco.
- Enterprise Re-architecture strategy (2006): I spent three months studying a company with large, high performance transaction systems to reduce the ROI. As the leader of the architecture team, I identified the potential savings through architectural refactoring, and through our team, formulated a series of POC to validate the ROI.
- Enterprise Architecture Framework: With several clients, I have been formulating using SOA to bring in better IT alignment with business goals. Specifically, I worked at developing SOI (Service Oriented Infrastructure) for various clients.
- Trained on higher-order logic, semantics of languages, linguistics, and compilers.
- Solved the long-standing problem of providing a complete and consistent model for sequential computations in general setting. Provided the “universal domains” that support any such computations.
- Developed and published new techniques to show the equivalence of programming constructs by mapping them into suitable semantic domain.
Research Experience and Patents
- Applied my language skills in developing a new model of real-time computation. In particular, along with a team, I worked on real-time billing aspects of a telecom billing system.
- Writing a book called “Implementing Secure SOA solutions” for Manning Publishers.
- Along with two other colleagues, developed new techniques to organize the large volumes of online data. This research resulted in two patents:
- Technology: These are the areas that I am knowledgeable in.
- Databases: I published papers, and obtained patents in this area. I worked with Oracle (8 and 9i), MySQL, PostgreSQL and Object Databases.
- Security: I have been working on developing secure applications since Savera days. I am familiar with cryptographic techniques and I have applied the standard algorithms to secure the hosted applications as in ASP.
- Performance Improvement: I have been building performance oriented products for a long time. For example, during my career at Bell Labs, I have managed to increase the performance of Sunrise application from 10 to 200 transactions per second.
- Language design: Since my Ph.D. days, I have been building languages to extend static applications. I view any input to the system as a language design problem and have been able to make decisions backed by sound theory in preference to ad-hoc decisions.
- Open Source Experiences: I have been an open source enthusiast from my Ph.D. days. I have used Linux since 1993, and experimented with Apache since 1995. I also architected a large application on Apache and Linux making use of mod_perl in the early days of Internet. I gave presentations at Linux conferences, and designed the complete IT infrastructure of Aalayance, that caters to a decentralized offices, with no single point of failure.
- J2EE and Java Components: I programmed extensively in Java, in particular for enhancing performance and flexibility of the applications. I also worked with different technology stacks for delivering web based applications in Java.
- Middleware Technologies: I developed middleware technologies for internal use at Bell Labs. I also used TIBCO products (RV, MB, IM, BW) and developed test cases for some of the TIBCO adapters.
- Content Management Systems: I have been an active participant in the content management area for the last three years. I have developed solutions based on different technologies, ranging from mod_perl based systems, J2EE systems, and zope based systems.
- SOA: I authored a book on SOA security standards. I advise several of our clients on SOA strategy, implementaton, and measurement of ROI. I have hands-on familiarity with several open source tools (Axis, openSAML and so on) for developing SOA solutions.
- Web development:I have first hand experience with several web technologies such as J2EE, Ruby on Rails, php, and python. In addition, I worked extensively with enabling technology frameworks for social networking.
- TIBCO: I have worked with TIBCO RV, MB and IM products extensively. I have used BW to lesser extent to develop web services.
- Languages: These are the languages I worked with:
- C++: I have guru level proficiency in C++ (as of 1997). I have written around 100,000 lines of code and understood the Cfront based compiler well.
- C: I programmed around 100,000 lines of code in small applications. I learnt most of the structured programming techniques by programming in C.
- Java: I developed around 20,000 lines of code in one single large application. I established standard technology stack for our recommended solutions. I also established best practices for some of our clients. I used various features such as reflection to implement dynamic extensions to the system. I used EJBs long enough to be able to program in them if needed.
- Scheme: I used scheme to develop several languages as a part of my thesis. I programmed applications of 5000 lines in scheme.
- Perl/Tcl/Python/php: I programmed in all these languages regularly. I developed applications and utilities of size around 5000-20000 lines in each of these languages.
- Fortran/Cobol/ML/Ada/Forth: I programmed in all these languages. I can pick up and program in them if needed.
- OS: These are the OS I am familiar with:
- Unix/Linux: I have been using Unix for the past twenty years. I am intimately familiar with all aspects, including system administration, capacity planning, deployment, and trouble shooting.
- Windows: I have been developing on Windows system for the past four years. I have used most of the cross platform tools on Windows for my programming needs. I use Windows as my primary Java development and test deployment platform. I studied and experimented with .NET platform as well.
Current Role and Activities (2000 May – Current)
At Aalayance (now a subsidiary of HCL), I have been playing the role of the CTO. I have been in-charge of a software life cycle center, which does porting, testing, and supporting of the applications. Now, I am in-charge of GAT (Global Architects Team) that provides horizontal services such as architecture evaluation, validation, and consulting.
I also have been involved in training, and IT setup procedures. I am in-charge of the internal IT projects for Content management, and communication infrastructures.
For the last year, I have been playing the technical evangelist role for SOA within HCL. I work with various business teams to make them understand how SOA works and put together small teams to develop vendor specific stacks for their domains.
In addition to these duties, I play the role of architecture consultant to all the projects in HCL. I also advise clients on technology directions, and develop applications to lay the foundation for an IT strategy.