Senior Software Engineer Resume
Santa Clara, CA
SUMMARY
- An accomplished software engineer with more TEMPthan a decade of experience specializing in the development of enterprise software using J2EE.
- Particularly interested in the use of latest technology such as AJAX, Spring Framework, AOP, and RDBMS to build high performance systems that are easy to maintain, extend, and test
- Experience with integrating existing applications with third party products to provide add - on functionalities. Familiar with the entire software development life cycle involving design, implementation, testing, deployment, and maintenance.
- Core Java and Software Design Patterns
- CRM Enterprise Application Development with JSP and Servlet in Java EE
- Business Process Management (BPM) and Rule Engine Development (Drools)
- Spring Integration Agile Development Process (Scrum) UI development with Adobe Flex and Swing
- Database Design Quality Assurance
TECHNICAL SKILLS
Operating Systems: UNIX (Solaris), Windows
Computer Languages: Java, JavaScript, C/C++, SQL, UNIX Shell Scripts
Web Technologies: Java EE, Servlet, JSP, AJAX, EJB, XML, SAX, DOM, JAXP, JAXB, JDOM, JSON, Jackson, Apache Struts, Spring Framework, Tomcat, JBoss, Oracle WebLogic, IBM WebSphere, SOAP, UDDI, SOA, HTML/CSS, Adobe FlexRDBMS Technologies: ODBC, JDBC, OLEDB, Sybase, MSSQL, Oracle, DB2, MySql Professional Experience:
PROFESSIONAL EXPERIENCE
Confidential, Santa Clara, CA
Senior Software Engineer
Responsibilities:
- Designed and implemented JSON to Drools rule generation (JSON2DRL) in Java using Visitor and Chain of Responsibility design patterns. Using a UI rule editor, administrators compose rules within a ruleset specifying WHEN and THEN rule constructs, and upon saving the ruleset, JSON representing the rules are send to the backend. The JSON2DRL module in the backend then consumes this JSON and uses Jackson library to map JSON into various POJOs corresponding to Ruleset, Rule, When, and Then parts of a rule. Using these POJOs, the JSON2DRL module generates a Drools ruleset and stores it into the database. Whenever a work item such email or chat comes into the system with attributes that meets the conditions specified in the rules, the action part of the rule will be fire and executed. Actions for the rule operates on the work item and can automate work such as: route the work item to the proper agent that TEMPhas the skills to answer the inquiry, set the priority of the work item, sent email to all stake holders, etc.
- Designed and implemented a token base authorization service and integrated it with the rest of the system via Spring Integration. The authorization service uses Java concurrent map and UUID for token generation. Familiar with Spring Integration concepts such as message, channel, and message endpoints.
- Researched NoSql Database particularly MongoDB for future product enhancements
- Built business work flows using proprietary Kana Business Process Management (BPM) development kit
Confidential, Cupertino, CA
Senior Software Engineer
Responsibilities:
- Worked with product managers and application UI designers to develop functionalities for two major CRM applications: Customer Support and Customer Interaction Manager. Customer service representatives use these two applications in a call center environment to enable them to handle custom support calls and capture customer interactions in order to build stronger, more profitable customer relationships that can eventually improve the company’s bottom line. All development tasks are done in Eclipse IDE following the Agile Scrum development process
- Integrated Customer Interaction Manager with a third party product recommendation engine to provide real time offer recommendations to customers and to allow customer service representatives to do cross-sell and up-sell while handling customer calls. The integration relies on XML messages and uses XML parser APIs (SAX, DOM, JDOM, and JAXP).
- Use test-driven approach to software development to come up with test cases and implement them in JUnit.
- Serve as a member of the SWAT team to address customer issues on a team rotational basis.
Confidential, San Jose, CA
Senior Software Engineer
Responsibilities:
- Developed CRM enterprise applications with Java EE. Tasks involved the design/implementation of a Model View Controller (MVC) architecture that included a controller servlet, java beans, and JSPs to provide a framework for rapid web application development by simply extending the framework instead of writing code from scratch. To guarantee sub-second response time from a JSP page request, the request is “split” into a UI request and a data request. UI request for the JSP page is cache on the client while data from the data request are dynamically bound to UI controls. Dynamic data binding is accomplish with binding specification written in XML and binding elements written in JavaScript.
- Lead the design and implementation for Amdocs Device Care, an innovative application targeting the telecom industry that allows customer service agents to remotely diagnose and fix mobile device problems over-the-air and at the same time allows agents to create cases and link solutions for such interactions. The UI is Swing and Flex. The middle tier is application logic hosted on a J2EE server that communicates to a third-party mobile device management vendor using web-services to get mobile device vital information and feed them to a rule engine for problem diagnostic. The rule engine employed is Drools and it is a community open-source project. Other functionalities provided by Amdocs Device Care application include lock device, wipe device, provision device, and installation of device settings, firmware, as well as applications onto the device. The Abstract Factory design pattern is used to switch to another vendor’s rule engine if desire without changing code. All development activities strictly follow the Agile Scrum development process.
- Lead the design and implementation of Amdocs Retail Interaction Manager. This application allows sales people to go through a series of clean and fluid UI screens to order phones and related services for their customers in a retail store setting without calling a call center. Functionalities are develop using Adobe Flex, ActionScript, Cairngorm framework, XML, MXML, and Java.
- Ported JSP based CRM application front-end UI to a next-generation Swing based UI framework (Smart Client). The porting used a conversion program that converts existing JSP pages into XML and then used a code generation program that reads the XML and generates a Swing java file representing the UI and a handler java file representing the event handlers for the corresponding UI. A design time editor allows user to edit the UI XML file to add or modify meta-data associated with the UI such as data binding information for display controls like text areas and input boxes or java bean information on server side for actionable controls like buttons and tabs. Conducted pilot testing for major flows in various applications in small groups to fix defects in the UI framework before moving to massive scale porting of the entire application suite.
- Implement change requests (bugs) for various product releases in timely manner.
- Provide training and knowledge transfer to software development center in India.
- Set project schedules, identify and allocate tasks, and communicate progress to upper-level management.
Confidential, San Jose, CA
Senior Software Engineer
Responsibilities:
- Worked in database group to develop a database access layer to provide Confidential CRM applications with a uniform and efficient set of APIs to access various data source including MSSQL/MSDE, ORACLE, DB2, and Sybase. This access layer written in C/C++ delegates to various underlying database APIs such as ODBC/JDBC, OLEDB, DB-LIB/CT-LIB, and Rogue-Wave in order to support multiple data sources from various vendors
