Java Architect Resume
Morrisville, NC
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.
- Extensive experience in using architectural patterns and methodologies like Model View Controller, Layers, Microservices, Service Oriented Architecture (SOA), Event Driven Architecture, Model Driven Architecture, Domain Driven Design, Pip es 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).
- 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, NodeJS, Angular, jQuery, Grails, Spring, Quartz Scheduler, Hibernate, JUnit, Fitnesse
AJAX Tools: Direct Web Remoting (DWR).
Operating Systems: Unix (IBM, Digital, HP), Linux, Windows
Web Services Tools/Technologies: WebLogic, GLUE Toolkit, SAML, OAuth 2.0, 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, Fuse ESB, Apache Camel
RDBMS: Oracle, MS SQL Server, Sybase, DB2, MySQL, PostgreSQL, HSQLDB
JCR Implementations: Apache Jackrabbit, Modeshape from Red Hat
NoSQL / Big Data: Neo4j, Cassandra, Hadoop, HDFS, Map Reduce, Pig, Hive, Splunk
Cloud Computing Platforms: Amazon Web Services (AWS) (Lambda, S3, API Gateway, EC2, SNS, SQL, S3)
Distributed Technologies: CORBA, Tuxedo (MSGAPI), RMI
Modeling Tools: Rational Rose, Enterprise Architect, Visio, ArgoUML.
Mapping tools and Technologies: Spatial FX, SVG
Methodologies: RUP, Agile, Waterfall
Development, Containerization, Build and Testing Tools: Ant, Maven, Docker, Bamboo, Jenkins, Fisheye, Sonar, JMeter, JBuilder, Eclipse, JDeveloper, Visual C++, Visual J++, Visual Caf .
ERP and CRM Products: SAP, Salesforce.com
Data mining: Splunk
Version Control: Git, ClearCase, Perforce, Visual Source Safe, CVS, SVN, MKS, pVCS
PROFESSIONAL EXPERIENCE:
Confidential, Morrisville, NC
Java Architect
Responsibilities:
- Architecture and design of the Confidential, to account for multi tenancy, caching, and conformance to the HAL specification. Documented the architecture and got it reviewed by concerned stake holders.
- Design and development of resource specific REST endpoints, which modelled entities in the database.
- Creation of Cucumber feature files and step definitions, to create functional tests for the requirements.
- Modernization proposal for a new technology stack for a monolithic system called ServiceLive. The new proposal would use Spring Boot, Docker and AWS API Gateway for microservices implementation. Also, as a part of the proposal was a shift to the Amazon cloud (AWS).
- Support and maintenance of the legacy API, called CCAR, which ProPL was aiming to replace.
- Designed the OAuth 2.0 infrastructure, which was responsible for authorizing clients for the usage of the microservices.
- Interaction with chief architects, business users and product owners, to better understand requirements of the API.
- Analysis to understand how Spring Batch could be used in ServiceLive. Spring Batch was recommended as the technology to use for future batch job implementation. Existing batch jobs used Quartz, Cron and Control-M for scheduling. Spring Batch would add the quality of resiliency and the ability to administer these batch jobs.
Environment: JEE, Java 8, Microservices, Spring Boot, WebLogic, Maven, Swagger, Jersey, Oracle DBMS, REST, AWS, Hypermedia Extension Language (HAL) Postman, NodeJS, OAuth 2.0, Cucumber, Jenkins, Crucible, Fisheye, Subversion, AWS API Gateway, Docker.
Confidential, Richmond, VA
Java Architect
Responsibilities:
- Responsible for the architecture design and implementation of the Integration Framework.
- Collaborated with the Argo Architect and SMEs to come up with a technical design for the proposed Integration framework. The architecture used the Fuse Enterprise Service Bus for routing and integration. Held meetings with stakeholders and business analysts to get feedback about the proposed design.
- Implementation and unit testing of the billing integration part of the Integration framework. The web portals used the Stripe payment system to accept payments.
- Used AWS Lambda functions to encapsulate invoice processing logic into scalable executable code.
- Used AWS API Gateway to expose the AWS Lambda functions as REST services.
- Design and implementation of the Eager.To web portal using AngularJS 1.5, HTML and CSS.
- Integrated 2 web portals - Eager.To and Protector with Argo’s back end systems - Sirius and CAPS.
- Used various integration patterns to accomplish the integration - splitter, aggregator, content-based router etc.
- Used Spring Data to store the JSON envelopes, obtained from Stripe into a MongoDB store for auditing purposes.
- Responsible for the deployment and support of the application on the AWS cloud.
Environment: JEE, JBoss Fuse ESB, Apache Camel, Spring Boot, Microservices, Maven, AngularJS 1.5, OSGI, Blueprint, Amazon Web Services, MongoDB, Oracle, SQL Server, REST, Quartz.
Confidential, Colorado Springs, CO
Solutions Architect
Responsibilities:
- Technical design and documentation of the proposed new web-based system for Confidential . 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.
- Had discussions with the Confidential architects, 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, Microservices, Spring 4.x, Jersey, REST, Spring Data, HTML 5, CSS 3, AngularJS, IBM Mainframe, IMS, COBOL.
Confidential, San Leandro, CA
Lead Java Engineer
Responsibilities:
- Design and development of the Online Wire Transfers project within the Confidential 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.
- Writing DAOs and POJOs using Spring Data to perform CRUD on the Cassandra data store
- Wrote unit tests using Junit and integration tests using WFXML, to test the written functionality. Wrote Apache Camel integration tests 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, REST, Enterprise Architect, Camel, Cassandra, Bamboo, Apache CXF, Hibernate 3.x, WFXML, Splunk.
Confidential, Sunnyvale, CA
Java Architect
Responsibilities:
- Responsible for the architecture, design and development of the Microservices 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, Microservices, Spring framework 4.x, Spring Data JPA, Jersey 1.8, Jackson 1.7, REST, 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 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’ 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, JBoss Fuse ESB, 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 Confidential application.
- Made changes to the application 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 to map those java classes to their corresponding tables in the database.
- Created and maintained Struts’ 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 Confidential 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.
Technologies: JEE, Servlets, Hibernate, Spring, XML, XSL, Eclipse IDE, Ant, Windows XP, Oracle 9i.
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 to realize the required back end functionality.
- Writing the presentation layer using JSPs, JavaScript and HTML. The MVC approach was followed to realize this.
- Implementation of Message Driven Beans 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 Confidential application.
Environment: JEE, Web logic 6.1, EJB 2.0, Eclipse IDE, Ant, Windows 2000, HP - UNIX, Oracle 8i, JSP, Servlets.