Sujoy Datta Choudhury A hands-on, seasoned senior middleware technologist having over 12 years of rich experience in various phases of Software Development life cycle like requirement analysis, feasibility study, design preparation, development, coding, testing, mentoring and reviewing. Well versed with software development methodologies including Object Oriented Analysis and Design with expertise in JEE related technologies and RDBMS. Technical Skills Languages Technologies RDBMS Web/Application Servers Version Control Tools IDE Build Tools Operating Systems Java, XML, SQL, PL/SQL, HTML, DHTML, JavaScript Web Services, Servlet, JSP, SOAP, JMS, RMI, EJB SQLServer2005/2008, Oracle 9i/10g/11g, MySQL5.5 Weblogic10.x/9.x/8.x, Webshpere7/6.x, Tomcat6.x/7.x, JRun3.1 Perforce2010.2, AccuRev4.x, Star Team4.0 Eclipse Indigo, Netbeans5.x Ant1.6.x/1.7.x Windows Server/7/Vista/NT/XP, AIX, Ubuntu Industries Banking, Finance, Insurance, Retail, Pharmaceutical, Telecommunications, Health-Care, Bio-Tech Customers Wells & Fargo, VISA, Fidelity, USAA, HSBC, Deluxe Corp., Wilmington Trust Corp., Sallie Mae, Life Technologies, Lowes, IKEA, Medco, UHC, Proximus Professional Experience Unica, An IBM Company – Principal Consultant November 2007 – Current IBM Unica Marketing Operations (UMO) streamlines marketing processes and improve marketing management. With Unica Marketing Operations, marketers increase their efficiency by gaining better control over their budgets and processes. Unica Marketing Operations helps marketers align resources to objectives, streamline production processes, track budgets and expenses, and improve team collaboration. Designed, architected and implemented “Product Extension Group” (PEG) framework from scratch on top of the product UMO. Implemented the Client Side of the Java Web Service using Axis1/2 with Java Servlet. Designed a generic XML scripting tool to solve dynamic customer requirements. Written a parsing algorithm for the script XML to communicate over SOAP based Web Service. Developed a Swing based UI tool to auto generate XML scripts. Implemented a decoupled messaging system using JMS for efficient data synchronization between different systems. Written Store Procedures in SQLServer and Oracle to solve complex customer requirements. Extensively used JDBC APIs for calling Store Procedures and other SQL statements from XML script. Responsible for requirement gathering, providing efficient solution to various customer issues, delivering customized code, deploying and testing. Involved in client interaction for resolving technical and functional issues on a daily basis. Mentoring customers, partners (Acxiom and PinPoint Solutions) to use PEG framework Managed the on-site and off-shore team. Environment: Java1.5, JWS, XML, JMS, Servlet2.4/2.5, SQLServer, Oracle, Weblogic, Websphere, AIX, Windows Emptoris Inc. – Technical Lead January 2006 – November 2007 Page |1 With a unified set of Strategic Supply Management and Enterprise Contract Management software, the Emptoris solution suite turns procurement and contracting into a source of sustainable cost savings and improved working capital. Emptoris frees executives from the compromises and constraints of ERP and traditional spend management silos with capabilities that not only deliver savings across more categories, but improve variability of cost structures and take advantage of volatile market conditions. Managed 3 core projects (Notification, Integration Framework and Multi-Currency) for the Denali release. Involved in high-level and low-level design of all the projects. Implemented the new Notification Framework using Java Collection Framework, JMS and JSP on top of an old one to make it more flexible, robust and easy to use. Written Multi-Threading code to handle multiple notifications simultaneously using Java Threading. Implemented Apache POI to import/export data to/from the application for the Integration Framework. Developed the Multi-Currency framework and implemented specifically for RFx module. Built a team of 6 to maintain these frameworks for RFx Module. Understanding various other co-modules for dependency relations and to leverage utility APIs. Involved in resource planning/recruiting/framework presentation/knowledge sharing with other module owners. Environment: Java1.4.2, XML, JMS, Servlet2.3/2.4, JSP, SQLServer 2005, Weblogic, Windows Unica Softech – Senior Software Engineer March 2005 – January 2006 IBM Unica Campaign delivers personalized, relevant marketing messages across all channels. With Unica Campaign, marketers can plan, design, execute, measure and analyze multi-wave, crosschannel and highly personalized marketing campaigns. Unica Campaign's recognized best-of-breed functionality and scalability plays a key role in defining and executing interactive dialogues with customers and prospects. Implemented “Scheduler” module for IBM Unica Campaign for daemon jobs using Java Collection Framework and Java IO. Extensively used Java Threading to schedule multiple jobs at a time without any delay over any other parallel jobs. Wrote complex multi-threaded unit testing classes to test the whole end to end functionality. Involved in implementing the “Calendar” module using Servlet, Core Java and XML. Wrote complex SQL queries and stored procedures required for inserting, updating and viewing of Calendar data. Implemented Java programs to dynamically build the SQL Queries and fetch the data based on user selection and search criteria on UI. Environment: Java1.4.2, XML, Servlet2.3, SQLServer 2000, Weblogic Kanbay Software (Acquired by Capgemini) – Consultant December 2003 – March 2005 EBPP (Electronic Bill Presentation and Payment) / EIPP (Electronic Invoice Presentment and Payment) project is mainly to view “Statements” and “Cycle-to-Date” transactions for a user. The Feb release of this project consists of two new VIEWs for EBPP and one new VIEW for EIPP. Proactively developed a “Mapper Tool” using Java Reflection API which saved 90% development time as it auto-generates the Mapper classes and interfaces from a record class. Worked on two different projects (EBPP/EIPP and Credit Card Service - eCare) Page |2 Responsible for impact analysis and design of EBPP/EIPP project to incorporate all the 3 VIEW changes. Was responsible for any technical issues of Kanbay’s EHouse Architecture and configuration related issues. Responsible for writing and managing the Use Cases, Test Cases, Review Logs and Impact Analysis for migration project Designed and developed the “Loyalty Management Service” (LMS) Redemption. Designed and developed the “Auto Rush Payment” of Bills online. Work allocation for the team, code-review, documentation etc. Dev-testing, creating builds, OSC/client interaction for requirement changes. Environment: Java1.3, XML, Servlet, JSP, Websphere, Windows eGain Communications – Software Engineer May 2000 – November 2003 eGain Service Suite, an innovative and complete suite of customer service and contact center software, helps organizations transform their traditional call centers into multichannel customer interaction hubs. These hubs enable dramatically improved customer experience, unified multichannel customer service, end-to-end service process efficiencies, and enhanced contact center performance. eGain Live 6.2. a) Task allocation and responsible for managing the overall build process, which includes writing of Ant scripts and scheduling of integrated build with Platform 6.1. b) Designing and implementing the “Customer Entry Process”, “Live Agent console” and the integration with the “Unified Agent Console”. Implementation of Performance and scalability: The quality of any product lies in the factors like performance and scalability. Three resources: CPU speed and availability, System memory and Disk (and Network) I/O operations limit all applications. a) A tuning strategy, like finding the top main bottlenecks and then targeting the quickest and easiest one to fix and so on, was taken to solve performance problems. Improved the system response time to 40%-60% in some critical and heavily used user actions. Defined and developed a process bulk-insert to log the events into a file and later do a time or number of events based (both configurable) bulk-insertion to the DB. This process has made the product 4-5 times more scalable by reducing 50%-60% DB load. b) Facilitated static data caching mechanism for the in modules like SAP, UAP, Attributes Settings and Preference Settings. This exercise speeded up the system performance 30%-50% when it is heavily loaded with agents. c) Worked on DB Query optimization using SQL Profiler and the query execution plans of SQL query analyzer. This exercise includes creating indexes on proper columns, using more joins, clubbing a set of queries to a stored procedure etc. d) Written an output filter to zip the response stream, which helped the UI consoles to load faster. JSR-107 specifies API and semantics for temporary, in memory caching of Java objects, including object creation, shared access, spooling, invalidation, and consistency across JVM's. The primary goal to JCache is to develop a robust yet simple caching solution for eGain Service6. Designed and developed the distributed part of the project. a) The application begins by creating a cache name space and associating a cache loader with it. The cache loader is application code, which materializes application objects to be cached. Following this simple initialization, concurrent threads may retrieve objects from the cache. If the object does not exist or has expired, the cache loader is invoked. Page |3 b) An application may optionally associate a set of attributes with a name space or with individual cached objects. Examples of attributes are time to live, expiration date, and whether an object can be spooled. c) Applications may also explicitly create, replace, remove, or invalidate objects in the cache. eGain Interact lifts interactive customer assistance to a higher plane, addressing issues encountered while co browsing complex company Web sites. With the Interact module, common escorting problems like double posting, frame breaking and session failure are easily overcome, allowing your CSRs to focus on providing quality online customer service to your customer. The enhanced quality of service helps you retain customers and increase the number of successful transactions. a) Programmed a key module "Cookie Cache", which managed caching of cookies according to RFC-2109 specification. This applet and server based cache acts as a substitute to the browser’s cookie caching mechanism. The particular valid cookies were retrieved from the cache with every request made to the web-server. b) Implemented HTTP 1.1 (RFC-2616) protocol to retrieve pages from web sites and provided XML Rules based parsing of web pages. XML rules were specified corresponding to HTML tags, this facilitated support for future additions to HTML standards. c) Developed the “Request Manager” module. This module involves in parsing the HTTP request. Later this request is used to make the URL connection to retrieve web pages. d) The product has patents of the following new inventions: i. ii. iii. Browser snap - a way to transmit data from the browser to the proxy server at the beginning of a new interact session. Content-based pre and post-cache rules-based processing - This parsing facilitated user/session specific business rules and co-browsing non-DOM client-side events like JavaScript functions call. Multiple sessions on the same browser process - it was a significant improvement on competitors' implementation where they can only accommodate a single browser session at a time, on one machine. Environment: Java1.3, XML, EJB2.0, Servlet2.2/2.3, JSP, JRun, Weblogic, Windows Chatur Computer Services, India – Java Consultant February 1999 – April 2000 Chatur Computer Services has been executing contracts for various financial institutions including mutual funds and foreign institutional investors. eSmart web based accountant to manage and maintain Investments, Accounts and Personal Finances. This is an online Accounting and Investment Portfolio. Accounting module consists of Bank/cash transactions, which generates several Report Voucher, Day Book and up to Balance Sheet. Supporting to this several utilities are on the work with Year End and Year Freeze programs. eNetwork that connects investors with stockbrokers. The idea behind the iBroking is to create a network that both brokers and investors would find useful in carrying out daily transactional activities without having to bear the inconvenience of creating, maintaining and administering an online trading website. Worked with clients to understand the system and involved in writing High Level Design and Low Level Design specifications. Implemented the “Accountancy Module” which is the core part of the system using Java Servlet. Worked on integration of the various modules like Investment, Portfolio management, Personal finances etc. Was involved in Unit-test plan for the whole system, Bug fixing and documentation of the individual modules. Page |4 Implemented the “Automated Mail Module” to send mails to the users (investor and brokers) the details of their trading particulars. Involved in UI (HTML, JavaScript) module. Done client side validation of the product. Designed and implemented “Administrative Module” of the system. This module validates all kinds of users, their terms and condition and it takes actions regarding that. Was involved in maintenance of the web site and troubleshooting. Environment: Java 1.2, Servlet2.1, ServletExec, Windows Education Post Graduate Diploma in Advanced Computing - (PG-DAC), Pune University, India, 1999 Bachelor of Engineering - (REC Nagpur a.k.a VNIT), Nagpur university, India, 1997 Page |5