Sr. Java Developer Resume
Leesburg, VA
SUMMARY:
- Software engineer with 18+ years of experience developing commercial, object oriented software and e - commerce sites.
- Projects range from a midsize e-commerce site responsible for 80% of the client’s domestic sales to a shrink wrapped
- Enterprise level, web based, collaborative software product. Background includes
- Java/JEE/Web development
- Object Oriented Analysis and Design
- Web Services, XML, and JSON
- Framework design and implementation
- Direct customer support to multi-million dollar clients
- Multiplatform, multinational Java development
TECHNICAL SKILLS:
Spring Frameworks: Core 2.*, 3.*, 4.*, JDBC, MVC, Batch, Boot, Roo
Big Data: Kafka (0.9.*), Storm (1.0.*), Zookeeper, MongoDB 3.*
Java Frameworks: Hibernate 3.*, Thymeleaf, Velocity, Mule 2.2, Junit 3/4, Jbpm 3, Struts 2, Wicket 1.4, Stripes 1.5, JDOM, Log4J, SwiXml, Selenium, UISpec4J, Thinlets, JaxMe
Java App Servers: Tomcat 5.0/5.5/6.0/7.0, JBoss 7.0, Weblogic 10.3, Glassfish 3.0, JBoss 4.2, JBoss 3.2
Web Tier: AngularJS 1.*, BootStrap 3.*, JavaScript, HTML 3.2/4.0, CSS, HTTP 1.0/1.1
Databases and Tools: Oracle 9/10, MySQL 4/5, MongoDB, MS SQL, DB2, Sybase, Squirrel
IDE s and Editors: Intellij, Eclipse, VI, Emacs
Build/Project Definition: Maven 2.* and 3.*, Gradle, Ant, Make, Shell scripts, Hudson, Jenkins, Bamboo
SCM: Git, Subversion, Mercurial, CVS, Perforce, BitBucket, GitHub, Clear Case, Visual SourceSafe, StarTeam
RAD: Spring Boot, Spring Roo, Rational Rose, Home Grown Schema to Spring Persistence generation
PROFESSIONAL EXPERIENCE:
Confidential, Leesburg, VA
Sr. Java Developer
Responsibilities:
- Addressed defect in SPAM attachment processing of compressed files. Add unit and integration testing for this functionality
- Improved existing functionality for searching and downloading catalogued SPAM attachments
Confidential, Clear Lake, IA
Performance Engineer
Responsibilities:
- Work with Kafka/Storm/MongoDB stack to capture real-time monitoring data
- Identify tools to use for performance testing and production monitoring
- Identify best practices with regard to performance with an initial focus on Storm
Confidential, St Cloud, MN
Sr. Java Consultant
Responsibilities:
- Designed and implemented Web tier using AngularJS and Bootstrap
- Implemented datagrid driven by JSON retrieved via Spring MVC using AngularJS ng-repeat
- Datagrid supports sorting by column, filtering by column including a columns with checkboxes dates using AngularJS Directives.
- Allows editing dates of selected rows by either a JavaScript calendar popup or manual entry of text
- Multiple validations were performed on data changes and the submit button was not enabled unless the form data was valid and there were data changes
- Java backend was implemented using Spring Boot, Spring MVC/REST, Hibernate, and Thymeleaf
- Defined and deployed database schema for both MySQL(DEV) and SQL Server (Stage/PROD)
- Implemented Web page using AngularJS and Bootstrap
- Implemented table driven by JSON data generated by AngularJS ng-repeat that allowed selecting two rows to use in a comparison to generate a Blackline difference report
Confidential, Clear Lake, IA
Sr. Consultant
Responsibilities:
- Implemented several new API calls that are exposed via JMS Messaging using JSON formatted requests and JSON responses including implementing JUnit unit tests
- Implemented Encryption/Decryption using CryptoJS in the browser and the JCA API in Java. Used ECMA compliant Javascript engine in Java to write JUnit tests for full round trip testing between Javascript and Java
- Reviewed current development environment and investigated a possible move to either Maven or Gradle.
Confidential, St. Cloud, MN
Sr. Java Consultant
Responsibilities:
- Logic/implementation duplicated across nearly a dozen client implementations with some client specific logic
- Identified common code/logic/queries and conversely areas that need to support client specific implementations
- A key challenge was pulling implementation from Roo managed projects without affecting the existing development process Re-Implement EAS Address Correction to use Spring Batch API and Configuration
- Existing Address Correction consisted of multiple batch calls using asynchronous response processing, with overlapping concurrent steps. This prevented using standard Spring Batch API’s and configuration
- Implemented custom Java ThreadPoolExecutors and Spring Batch ThreadPoolTaskExecutor to handle retry logic and multiple steps taking place concurrently
- Implemented custom ItemWriter to call EAS for batch of corrected Addresses to process
- Analyzed and then implemented custom Spring Batch PartitionHandler to initialize and manage ThreadPoolExecutors and overlapping Steps using Java CountdownLatches to know when a Step completes to let Step listeners know when previous, concurrently executing step has completed
Confidential
Sr. Software Developer
Responsibilities:
- Added new functionality and updated existing functionality based new customer requirements
- Application was a Struts 2 based application using the JQuery framework with Hibernate in the backend
- Added new JS popup dialog with HTML Form for customer to contact supplier and added support in the backend to send email. Added new Struts 2 action with validation and security checks. Added new Velocity template to generate email with Velocity context populated with form data.
- Added to functional test coverage of existing e-commerce application using Selenium, CDI, JPA, and JBehave
Confidential
Java/J2EE Consulting
Responsibilities:
- Spring 3.1 based Service hosted in Tomcat that provides two approaches for providing a full listing of primary keys/IDs for various business objects - a REST based API and a timed service that pushes to cloud hosted cache. Used Spring Persistence to access stored procedures with data.
- Cloud based service to provide unregistered remote devices a unique DSN ID via REST based API
Confidential, Golden Valley, MN
Java/J2EE Consulting
Responsibilities:
- Identified and refactored (re-implement functionality without) 3rd party Intellectual Property that existed in the application in the form of Java code, .Net Web Services, and database schemas.
Confidential
Java/J2EE Consulting
Responsibilities:
- Designed/Implemented Proof of Concept for High Volume Sensory Network Event processing using JEE 6 technologies: JAX-RS, JAXB, JMS, JPA, and local Caching
- Provided analysis of current Architecture/Design
- Provided recommendations for Architecture/Design changes to support scalability/performance
- Implemented new functionality/Fix defects in existing platform
Confidential, Golden Valley, MN
Java/J2EE Consulting
Responsibilities:
- Implemented persistence layer for multiple projects via Spring JDBC. Used combination of a Spring DAO pattern, Schema Crawler to read the database, and wrote template processing application using Velocity to generate scheme driven, table specific Spring DAO classes using information from Schema Crawler to integrate into the DAO pattern.
- Tech Lead for HMR Project at Confidential (4 on-shore, 15 off-shore developers)
- Responsible for design and implementation of J2EE, dual portal Weight Management application
- Project used JSP/Servlets/Spring MVC/Spring Core/Dojo for the presentation layer and Spring Persistence with custom persistence Framework (see above) for backend
- New feature to help new members fill out profile and fitness goals via sequence of web pages
- Signup Wizard was implemented using Wicket 1.4 on the Web Tier, deployed to a cluster of Tomcat 6.0 servers calling a Business Tier API to capture data and Memcached to for caching
- Implemented pages in the wizard to capture personal data including gender, weight, height, current percent body fat, and goal physique using a variety of Wicket Components including Ajax enabled radio buttons, text fields, check boxes, drop-down lists, and selectable images (image in anchor with Ajax call)
Confidential, Edina, MN
Consultant
Responsibilities:
- Designed and implemented Court research middleware. Received XML (JAXB) court research request via JMS. Managed life cycle of the research request and implemented business logic with regard combining multiple related searches, sorting by search priority, and assigned researcher. Designed data model for requests and their lifecycle. Implemented persistence using JPA. Provided SOAP Web Service (JAX-WS 2.1) to external web server instance to allow researcher to process request outside the firewall. Sent XML (JAXB) JMS message to primary application with results when research was complete.
- Designed and implemented asynchronous Vendor Integration. Received XML (JAXB) request via JMS, performed HTTPS POST using HttpClient, parsed the Vendor response using XPATH, and returned result as an internal XML (JAXB) response.
- Designed and implemented data model for Vendor Employer Codes including JPA object model. Exposed searching for Employer Codes via RESTful Web Service (JAX-RS) to internal client.
- Designed and implemented service to create a PDF applicant report with a cover letter and legal disclaimers using MongoDB and Apache PDFBox The RTF cover letter templates, the national and state legal disclaimer were stored in MongoDB. Freemarker was used to populate the RTF template with applicant data. Apache PDFBox was used to combine the documents into a single PDF. The final report was persisted in MongoDB.
- Added new I-9 request workflow on Client website using JSP, JSTL, JSP Tags, JavaScript, Struts, and Hibernate
- Refactored existing Vendor website pop-up wizard for managing criminal responses using Stripes 1.5, JavaScript, and Hibernate
Confidential
Consultant
Responsibilities:
- Designed and implemented feedback loop as part of an ESB based on Mule, JMS, and Spring 2.5
- Designed feedback message XSD that represents an ESB message consumption event
- Designed and implemented central hub feedback event capture and persistence
- Mule 2.2 service listening on Queue uses custom JAXB Mule transformer for XML to Java
- Dozer is used to convert JAXB Object tree to Hibernate Object tree
Confidential, Fargo, ND
Software Architect
Responsibilities:
- Designed base architecture for new C-Freedom product that interacts with Real Time location service (RFID tags) presenting real time data and processing alert workflows
- Enhancements and bug fixes to PDA based C-Freedom Classic product
- Designed and implemented Web based client that performed dymaic browser updates via AJAX, DOM, and JavaScript and used Struts and Hibernate on the backend.
- Designed and implemented Remote Connect product - Realtime, secure communication (JMS over HTTPS) between C-Freedom Classic and Remote Clinic/Pharmacy.
- Performed various IT/Systems jobs such as migrating to CVS over SSH, then to Subverion over SSH, and installing Bugzilla over SSL behind a firewall.
Confidential, St. Paul, MN
Consultant
Responsibilities:
- Enhancements and bug fixes to DataSite product that runs in Tomcat 5.0 with Oracle.
- Added Q & A feature that allowed asking questions and tracked the question’s lifecycle using JSP/Servlets, Struts, Custom Tag files, JSTL, and Javascript.
Confidential, Eden Prairie, MN
Consultant
Responsibilities:
- Designed and implemented payment processing logic for prolonged transactions using flat file transfers.
- Designed and implemented real-time, online transactions processing for Japanese retailer using encrypted messages over SSH.
- Used Hibernate for persistence layer and used JMock for unit tests.
Confidential, Arden Hills, MN
Consultant, Tech Lead
Responsibilities:
- Contracted to update proprietary server side technology that dynamically generates HTML User Interface for the new Look and Feel of the Windchill PDMLink release.
- Wrote JSP Custom Taglibs and updated server side HTTP processing to allow using proprietary HTML Template Processing technology in JSP pages.
- Designed and implemented session maintenance service for proprietary HTML Template Processing architecture that mimics JSP/Servlet sessions.
- Designed and implemented new architecture for generating HTML navigation that uses Model-View-Control paradigm driven by XML configuration file. Several HTML Views of the Model were available including a tabbed view, an HTML drop down, and a vertical navigation bar. Localization and authentication were configurable via XML.
Confidential, St Louis Park, MN
Software Engineer
Responsibilities:
- Member of two person team that designed and implemented Product Import/Update functionality via XML documents representing pharmaceutical products.
- Development and deployment took place on Weblogic 6.0 Clusters for scalability.
- Weblogic JMS and Message Driven Beans for notification of document arrival and clustered Stateless Session EJBs were used to process the XML document upon notification from the Message Driven Beans.
Confidential, Arden Hills, MN
Senior Software Engineer
Responsibilities:
- Performed bug fixes and updates on Applet based UI and server side code that dynamically generated HTML UI for releases 2.0, 3.0, and 4.0.
- Migrated server side Java code responsible for dynamic HTML generation into UML via Rational Rose to allow PTC Profession Services easier customization for the customer.
- Developed Java package similar to javax.swing.table package for dynamically generating HTML tables as part of a Server Side, Java based, dynamic HTML page generation. This approach to generating HTML tables allowed extensive code reuse and provided clear paths for customization of the HTML UI for customers.
- Worked directly with $14 million customer, Omron, to resolve Windchill customization issue.
- Wrote and presented session for HTML Template Processing.
- Wrote 144 page section of Customizer’s Guide on using and extending HTML Template Processing for PTC Profession Services to use at client sites.
Confidential, Eden Prairie, MN
Software Developer
Responsibilities:
- Wrote Digitally Signed Applets to allow “out of the sandbox” local file access.
- Used the java.net package, the java.io package, and multi-threading to perform HTTP Multi-part Posts to upload/download multiple documents and projects.
