Java Architect Resume
CO
SUMMARY
- More than 16 years of extensive, hands on experience on the full software project development lifecycle, working in various capacities as Software Architect, Project Lead, Team Lead, Senior Developer and Consultant in delivering high quality, mission critical, innovative and cost effective software products and applications for startup and large global organizations using Core Java and JEE.
- Expertise in developing Object Oriented, Web - based, Web Services, Relational Database, NoSQL and Client-Server software products and applications.
- Diversified and hands on experience using Java Enterprise Edition, Hibernate, Spring, Flex, Struts, XML and related technologies, Web Services (REST and SOAP based), C++, C, Oracle, Sybase, DB2, PostgreSQL and MS SQL Server.
- Extensive experience in choosing the right technology stack for an application. Have documented (using 4 + 1 model) and defended proposed architectures and designs with the client.
- Experience in leading development teams of up to 12 developers, including some who worked offshore. Experience in mentoring junior developers.
- Strong programming experience with Java, application servers and software packages. Involved in complete product life cycle with various organizations.
- Expertise working with Agile methodologies like Scrum. Have also worked extensively with the Waterfall Model.
- Experienced in using various Object Oriented principles like Single Responsibility Principle (SRP), Don’t Repeat Yourself (DRY), loose coupling, programming to interfaces apart from the standard basic ones like Encapsulation, Inheritance and Polymorphism.Experienced in writing JUnit Test Cases for Struts, Hibernate, Spring and EJB 3.
- Extensive experience in using architectural patterns and methodologies like Model View Controller, Layers, Service Oriented Architecture (SOA), Event Driven Architecture, Model Driven Architecture, Domain Driven Design, Pipes and Filters, Publish-Subscribe etc.
- Expertise working on Integration architectures using messaging, SOAP web services (both document/literal and RPC based), REST services and Enterprise Service Bus (Oracle Aqualogic Service Bus).
- Expertise with various modules of the Spring framework like Aspect Oriented Programming (AOP), Security, Messaging, Transactions, Spring Data, integration modules with Hibernate, JPA and JDBC, Email, Web Services, Neo4j, Hadoop and JMX.
- Expertise in using Java Persistence API 1.x and 2.x entities with Hibernate or Eclipselink as the JPA provider.
- Extensive experience using Core Java design patterns like Singleton, Strategy, Observer, Adapter, Decorator, Composite, Proxy, Template, Façade, Iterator, Factory and Abstract Factory .
- Good experience using JEE design patterns like Front Controller, Session Façade, Data Access Objects, Data Transfer Objects, View Helper, Service Locator, Business Delegate etc.
- Experience working with Mobile Technologies like Android and Big Data technologies like Neo4j and Apache Hadoop.
- Expertise in working with relational databases and the procedural languages associated with them. Have worked on Oracle, Oracle PL/SQL, MS SQL Server, Transact SQL, Sybase, DB2, MySQL, PostgreSQL and Hypersonic SQL.
- Extensive experience in working in the Storage, Banking, eCommerce, Semiconductor and Aviation Domains.
- Excellent communication, analytical, technical and problem solving skills.
- Ability to build relationships, establish credibility and build rapport with stakeholders at multiple levels, including those external to the organization.
TECHNICAL SKILLS
Languages: Java, C, C++, Java script, Groovy, PL/SQL, Flex, XML, XSL, Pro*C, Visual Basic, HTML, XML, UML.
Frameworks: Apache Struts, Grails, Spring, Quartz Scheduler, Hibernate, JUnit, Fitnesse, JQuery
AJAX Tools: Direct Web Remoting (DWR).
Operating Systems: Unix (IBM, Digital, HP), Linux, Windows
Web Services Tools/Technologies: WebLogic, GLUE Toolkit, SAML, Apache Axis, Jersey, Java Web Services Developer Pack, Microsoft Soap Toolkit
JEE technologies: EJB 3.0, JMS, JDBC, JSP, Servlets, JNDI, JCA, JCR
Web, Application and Message Servers: Web Logic Server 10.x, JBoss, ActiveMQ, Oracle E Business Suite (Apache Web Server), Resin, Glassfish, WebSphere, IIS, Tomcat, Jetty, JRun.
Mobile Technologies: Android (Gingerbread)
Enterprise Service Bus: BEA Aqualogic, Apache Camel
RDBMS: Oracle, MS SQL Server, Sybase, DB2, MySQL, PostgreSQL, HSQLDB
JCR Implementations: Apache Jackrabbit, Modeshape from Red Hat
NoSQL / Big Data: Neo4j, Hadoop, HDFS, Map Reduce, Pig, Hive, Splunk
Cloud Computing Platforms: Amazon Web Services (AWS).
Distributed Technologies: CORBA, Tuxedo (MSGAPI), RMI
Modeling Tools: Rational Rose, Visio, ArgoUML.
Mapping tools and Technologies: Spatial FX, SVG
Methodologies: RUP, Agile, Waterfall
Development, Build and Testing Tools: Ant, Maven, Bamboo, Sonar, JMeter, JBuilder, Eclipse, JDeveloper, Visual C++, Visual J++, Visual Café.
ERP and CRM Products: SAP, Salesforce.com
Data mining: Splunk
Version Control: Clearcase, Perforce, Visual Source Safe, CVS, SVN, MKS, pVCS
PROFESSIONAL EXPERIENCE
Confidential, CO
Java Architect
Responsibilities:
- Technical design and documentation of the proposed new web based system for VISA. The new system would use JEE as the platform along with Spring on the middle tier and Spring Data on the ORM tier. It used Jersey, HTML 5, CSS 3 and AngularJS on the presentation tier.
- The middle tier exposed REST/JSON services, in order to transfer data to/from the HTML clients. Additionally, Tibco’s ActiveSpaces distributed cached was used to cache data on the middle tier, to improve performance.
- Had discussions with the Confidential architects, in order to discuss various candidate architectures for the new system and narrow them down to two candidate architectures for the new system.
- Documented the architecture using the 4+1 view model of software architecture. Used the logical and physical views to depict the chief architectural components.
- Low level design and documentation of the new system. The low level design carried on from the high level architecture and documented the dynamic and static aspects of the system using sequence diagrams, class diagram and data flow diagrams.
- Review of the architecture and design document with the Confidential architects.
Environment: JEE, Tibco ActiveSpaces, Spring 4.x, Jersey, REST, Spring Data, HTML 5, CSS 3, AngularJS, IBM Mainframe, IMS, COBOL.
Confidential, San Leandro, CA
Java Lead
Responsibilities:
- Design and development of the Online Wire Transfers project within the SIMS development team.
- Developed SOAP services to enroll and unenroll a user with the ACE RSA server and to ensure delivery of a SecureID token to the user. Also wrote services to validate a token Id with the ACE RSA system. Apache Camel was used to implement the SOAP service and it involved defining the routes using the Spring XML Configuration.
- Developed SOAP clients to consume services, which were exposed by other systems, within Confidential and persist the data to a persistent store. Apache Camel was used to define the entire workflow, consisting of the invocation of the web service and the persisting of data into the DB.
- Wrote unit tests using Junit and integration tests using WFXML, in order to test the written functionality. Wrote Apache Camel integration tests in order to test the routes defined in Camel.
- Resolution of issues, which came up in the production, test and integration environments.
Environment: Java 6, JEE, Spring 3.x, Camel, Bamboo, Apache CXF, Hibernate 3.x, WFXML, Splunk.
Confidential, Sunnyvale, CA
Java Architect
Responsibilities:
- Responsible for the architecture, design and development of the application. Led the design of the REST services, which were hosted on a clustered WebLogic Server. Responsible for the creation of the data model and the object model on the server side.
- Contributed to the decision on the technology stack, which was finally used. Responsible for laying out the initial structure of the project, including Maven build scripts, JPA entities and Spring Data JPA Repository interfaces.
- Helped and mentored other team members in the areas of the technologies, which were used, the best practices, which had to be adopted and the low level design of the services, which had to be implemented.
- Wrote and unit tested the JPA entities, the DAOs and REST/Java services. Responsible for the creation and maintenance of the seed data, which had to be inserted into the database tables for Recommender to work properly. The seed data dealt with the questions and possible answers, which were shown to the user.
- Actively involved in Database related activities like creation and changes to the Oracle schema, creation of sequences and the copying of schema and seed data between development, staging and production environments. Responsible for maintaining the schema creation scripts and the data insert scripts in Perforce.
- Involved in the performance tuning of the Java services by using lazy loading features, auto-wiring and creation of Database indexes.
- The presentation tier was developed using the Kony mobility platform. The presentation tier made use of the REST services to perform CRUD operations on the Database and provided a GUI for the user to interact with the data. Was responsible for interacting with the Kony development team and helping them troubleshoot issues.
Environment: Java, JEE 6, Oracle WebLogic server 10.3, Spring framework 4.x, Spring Data JPA, Jersey 1.8, Jackson 1.7, Oracle Database 11g, Perforce, Kony mobility platform.
Confidential, Boston, Massachusetts.
Java Architect
Responsibilities:
- Authored an architecture document, which proposed a way to provide transparent failover from a primary Webtag instance to a secondary Webtag instance, which was running on a different application server and using a different file system and database.
- Designed and implemented a prototype as a proof of concept for the architecture. Conducted performance testing using the prototype.
- Responsible for creating a local development environment for the application by mocking up external stimuli.
- Responsible for the configuration and deployment of the application using a multi pool. The multi pool was configured for fail over in which the failover database server was continuously synched up with the primary database server using replication.
- Redesign and modification of the webtag application in order to provide failover capabilities to the entire webtag application. Redesign involved checkpointing the state of the application regularly to the database.
- Responsible for the introduction of the Spring framework, JPA/Hibernate and Struts frameworks in the application. The earlier application used EJB 2.0 beans, JSPs and Servlets.
- Created and configured Struts’s struts.xml, Spring’s applicationContext.xml and JPA’s persistence.xml file to configure the presentation, middle and ORM tiers.
- Contributed to the support, maintenance and bug fixing of the application, while it was deployed in production.
Environment: JEE, Oracle Weblogic 10.3, Spring Framework, Hibernate, EJB, JSP, Servlet, Sybase, UNIX.
Confidential
Technical Architect
Responsibilities:
- Responsible for reviewing the existing architecture of the application and recommending changes for improving the performance of the system.
- Establishing processes of code review and documentation in the project team.
- Experimented with using the READ COMMITTED SNAPSHOT isolation level in the MS SQL Server DB instead of READ COMMITTED. Implemented the READ COMMITTED SNAPSHOT isolation for the Voyager application.
- Made changes to the application so as to use optimistic concurrency for database access.
- Implementing best practices in the project, like using Spring’s declarative transactions, event propagation, and use of JPA/Hibernate along with Spring etc.
- Prototyping and exploration of the Fitnesse testing framework, from the point of view of determining the suitability of the framework for the project.
Environment: JEE, MS SQL Server 2005, Spring 2.x, Drools, ActiveMQ, Quartz Scheduler, Spring MVC.
Confidential
Java Architect
Responsibilities:
- Contributed substantially to the final architecture of the framework, which was implemented. Responsible for converting the requirements, which were obtained from the business analyst to a concrete technical design and documenting the architecture using the 4+1 model.
- Design and development of the web interface for the application. Designed and developed the entire stack along with rest of the team. JMeter was used to load test the web interface of the application.
- Used the Jersey library to expose Java services on the middle tier as REST web services.
- Worked on an Android client, which made use of the REST services exposed by the middle tier. The Android client used those services to query for status updates regarding report generation.
- Designed the Database schema to persist the report scheduling information to an Oracle database.
- Annotated Java classes with JPA annotations in order to map those java classes to their corresponding tables in the database.
- Created and maintained Struts’s struts.xml, Spring’s applicationContext.xml and JPA’s persistence.xml file to configure the presentation, middle and ORM tiers.
- Contributed to the design, development and unit testing of the report generation choreographer of the application.
- Mentoring of junior developers in the team - providing them technical guidance and solutions.
Environment: JEE, Struts, JUnit, Spring, REST Web Services, EJB 3.x, Hibernate, Quartz scheduler, Oracle RDBMS.
Confidential
Solutions Architect
Responsibilities:
- Authored an architecture document for a Point of Sales application. This architecture was finalized after requirements analysis, research in the Point of sales standards and specifications available and some open source applications for Point of Sales, which were available on the internet
- Conducted a webinar on JPA (Java Persistence API) after doing some research on the topic. The webinar had close to 300 participants and was attended by associates from various Satyam offices.
- Came up with a system architecture, which was presented as a response to an RFP (Request for Proposal) from Confidential .
- Responsible for mentoring technical resources and helping them develop prototypes on bleeding edge technologies.
Environment: JEE, Spring, EJB3, Toplink, BEA Aqualogic ESB, ActiveMQ, Tomcat, Struts.
Confidential
Technical Architect
Responsibilities:
- Responsible for the architecture and design of a module which enabled credit limits to be allocated to a potential buyer of an auction. The buyer could place bids in an auction so as not to exceed the credit limit allocated to him.
- Responsible for interacting with the Business Analyst and coming up with a High level and low level design
- Designed the database schema for this module.
- Development and unit testing of the Java classes, which represented tables in the database. Hibernate was used as the ORM framework.
- Responsible for monitoring the development after the design phase and solving any issues which a team of 12 developers faced.
Environment: JEE, Spring 2.0, Hibernate 3.x, DB2, Struts, XML, JSP, HTML.
Confidential, Duluth, MN
Sr. Java Developer
Responsibilities:
- Lead a team of 3 developers. Responsible for their mentoring and coordination. Conducted design review meetings to ensure that interfaces between application components were clearly defined.
- Involved in writing and reviewing of high level design documents, detailed design documents and test case documents for better execution of development and testing processes.
- Responsible for coordination with the client regarding a web service client which fed data about labor records in the Fleetcycle database to the client’s web service. Responsible for thrashing out the details of the handshake and the subsequent design and development.
- Architecture, design and implementation of the business façade of the application. This layer, which acted as the interface to the business logic, was implemented using the Spring framework.
- Design and implementation changes to the persistence layer of the application. The application used Hibernate to map data from the persistent store to java objects.
- Played a leading role in resolving production issues and satisfying customer change requests.
Confidential, Milpitas, CA
Sr Java Developer
Responsibilities:
- Design and implementation of new functionality regarding addition, deletion and modification of release milestones to the project schedules.
- Design and implementation of a module, which enabled the Project Managers to change pre-existing templates for Release creation.
- Writing Stateless Session Beans and Container Managed Entity Beans in order to realize the required back end functionality.
- Writing the presentation layer using JSPs, JavaScript and HTML. The MVC approach was followed in order to realize this.
- Implementation of Message Driven Beans in order to realize the functionality for changing offset milestone for a particular schedule type. The MDB was used to perform background processing and email notifications in response to actions by the user.
- Testing, code reviews and implementation of the finished Cisromm application.
Environment: JEE, Web logic 6.1, EJB 2.0, Eclipse IDE, Ant, Windows 2000, HP - UNIX, Oracle 8i, JSP, Servlets.
Confidential, Santa Clara, CA
Application Developer
Responsibilities:
- Development of JSPs and servlets for viewing and updating deal data through a web based GUI for eComcat.
- Development of Web Tier components and EJBs to upload “bundles” (bundles were components of a deal) from the eComcat GUI. Development of EJBs to provide business services to the Web tier framework.
- Scheduling data feeds from various HP source systems to eComcat. These loads supplied Deal, prices and product information to eComcat. The systems included Eclipse, GPSY, PIRS, VISTA and CPL ECAT.
- Writing Web Service clients to validate the configuration of products in a deal before they were sent over to the online storefront i.e. ePrime.
- Development of Stored Procedures for the manipulation of data stored in eComcat’s Oracle Database. Wrote synchronization scripts to keep data in various tables consistent.
Environment: JEE, XML, Web Logic 6.1, Eclipse IDE, Ant, HP - Unix, Oracle, JSPs, Apache Struts, Servlets, EJB, Perl, Shell scripting.
Confidential, Omaha, NE
Senior Developer
Responsibilities:
- Development of the Servlets and XSLs to gather the data from the EJBs and display to the user on a web page. My work involved querying the Session Beans and invoking business services on them.
- Development of XSL-FOs, which enabled the XML string to be converted in to PDF format. The PDF version could be easily printed and emailed across.
- Developed the functionality to display the Union Pacific Track Network on a map. This map was displayed on to a client browser.
- Developed additional functionality, which enabled users of the map to get detailed information about the trains or the train tracks on the map. This functionality was made possible through a mapping tool known as Spatial FX.
- Developed a prototype, which uses vector images in the SVG (Scalable Vector Graphics) format instead of raster, formats like GIF to display maps on to the browser.
Environment: J2EE, XML, XSL, EJB 2.0, Web Logic 6.1, SVG, Visual Cafe 4.5.1, C++, Spatial FX.
Confidential, Omaha, NE
Senior Developer
Responsibilities:
- Design, development and testing of the software
- Research on the available toolkits to write Web Services. Research included IBM’s WSTK, GLUE from Mind Electric, Apache Axis, Cape Clear and the web services facilities in Web Logic 6.1 and 7.0.
- Development of the SOAP servers to expose Intelligent Track Network services, NET services and the J2EE services as Web Services. Developed the Java SOAP servers using the GLUE toolkit. Later on rewrote the SOAP Servers using Web Logic tools.
- Development of the Java and Visual Basic clients to access the exposed Web services. These clients made use of toolkits like Microsoft’s SOAP toolkit and the GLUE toolkit. Later on when the web services were ported to Web Logic 6.1, the Java clients made use of the client jar files provided by Web Logic.
- Development of a presentation tier, which used the SOAP clients to query the SOAP server. This tier made available the results of the SOAP calls on a browser. This presentation tier was coded using JSP, Servlet, JavaScript and HTML.
- Installation of a UDDI registry from Silverstream Inc. in order to publish the exposed Web services.
- Research on the implementation of security for the web services infrastructure developed. This involved writing a white paper on the available standards and detailing some of the most popular standards and their implementation strategies. Research included standards like SAML and Web Services Security Specification.
Environment: JEE, Web Logic 7.0 and 6.1, JSP, EJB, Tuxedo (MSGAPI), JAD, Jolt, Jmsgapi, XML, XSL, Glue Toolkit, Apache Axis, JAX-RPC, Cape Clear, C++.
Confidential
Application developer
Responsibilities:
- Design and development of a C++/CORBA component called “Trigger” on the back end, which was used to signal the start and stop of other CORBA components like DMAS, DATE, and DQ/DT.
- Design for ICC in FIC 1.2, 1.4 and 1.5. ICC was responsible for scheduling the various other components to run at the appropriate times.
- Developed the top two tiers for the ICC component using Java Applets and Servlets.
- Developed a front-end component in Java, which showed the execution of the FIC components as it progressed.
- Support and maintenance of the code as the product underwent implementations
Environment: C++, IIS, JRun, Oracle, Sybase, MS - SQL Server, Digital Unix, HP-UX, Windows NT, Java, Java servlets, COM, CORBA, JBuilder, VJ++, Pro*C.