Developer Resume
Salt Lake City, UT
SUMMARY:
15 years of full stack development experience in requirements identification, design, prototyping and usability evaluation, coding, testing, deployment and integration of Java/J2EE and other languages that run on the JVM such as Groovy, Clojure and Scala utilizing a variety of server side frameworks including Spring, Struts, Grails, JSF and Hibernate. Bill's technical skills also include Javascript development on the server with NodeJS using the Express, Hapi, Sails and Loopback frameworks. Javascript development on the client using Javascript utilizing a variety of frameworks that include jQuery, Backbone, Knockout, Ember and Angular frameworks professionally or in private projects.
TECHNICAL SKILLS:
Languages: Java JSE/J2EE, Groovy, Clojure, Scala, Kotlin, XML/XSLT/XSD/XPATH, HTML, SQL, JavaScript, Typescript, CSS, RSS, Python, Unix/Linux shell scripting
Architectures: Micro Services, Web Services, Monolithic, Hexagonal, Service Oriented (SOA)
Java Technologies: JSP, JSTL, JNDI, JDBC, Servlets, EJB, JPA, JMS, JavaBeans, JTA, JAXP/JAXB, Stax, Swing, AWT
Databases: DB2, SQL Server, Oracle, MySQL, Postgres, Derby, MongoDB, MS Access
Operating Systems: Mac OSX, Unix/Linux, Windows, DOS
IDE: NetBeans, Eclipse, IBM Architect/WSAD/RAD, Spring SourceToolSuite, IntelliJ IDEA, Jbuilder, PyCharm, RubyMine, WebStorm, DreamWeaver, FrontPage, Visual Studio, Mono Develop, Sublime Text
Application/WebServers/NIO Servers/Media Servers/ Microservice Servers: Glassfish, JBoss, Apache TomEE, Apache Tomcat, Apache Http, NGINX, Weblogic, WebSphere, Microsoft IIS, Jetty, Netty, NodeJS, Spark, GeoServer, QuickTime, Wowza and Red5 media servers
JVM Frameworks: SpringMVC, Apache Struts, Grails, Lift, Play, Apache Axis, JSF, Facelets, Apache Tiles, Apache Tapestry, Hibernate, Apache IBatis, DWR, Log4j, JUnit / XUnit, Apache Commons, Apache Cordova, JavaMail, Jasper Reports, iReport, GWT, ZK
Java Script Frameworks: Angular, Ember, Ionic, jQuery, Require, Backbone, Knockout, EXT, Lodash, Underscore, Express, Hapi, Sails, Loopback
Identity/Access Management Frameworks: OpenSSO, OpenAM, OAuth, OpenID, Spring Security, LDAP
API Documentation: REST XML based WADL (Web Application Description Language) or JSON based - RAML,YAML based with descriptions for original design, Open API/YAML with JSON for actual contract between the provider and the consumer of the service, interface stub creation and establishing testing expectations. For SOAP WSDL (Web Service Description Language).
CSS Frameworks: Bootstrap, Flexbox, Pure, jQueryUI, PostCSS
Source Control: ClearCase, CVS, SVN, GitHub, Perforce, Visual Source Safe, CA Harvest
Continuous Integration/Continuous Delivery/ DevOps : Hudson, Jenkins, Ansible, JRebel, Bugzilla, Trac, JIRA
Development Environment Managers: SDKMan, NPMRIA DHTML, HTML5/CSS3, Dojo, jQuery, Red5, Wowza, GWT, Vaadin, GroovyFX, JavaFX, OpenDolphin, Vert.x, iText, PDFBox
Search: Lucene, Solr, Compass
Messaging: ActiveMQ, Open MQ, WebSphereMQ, RabbitMQ
Rules and Business Process: JBoss jBPM, Activiti, JBoss Drools, GroovyRules, OneRing, Esper
Performance and Code Quality Profiling: Apache jMeter, visualVM, CodeNarc, Corebetura
Build Tools: ANT, Gradle, Maven, GRUNT
Package Management: Bower, Grape, Webpack
Testing: jUnit, SoapUI, Spock, Geb, EasyB, Cucumber, Selenium
Peer Code Review: ReviewBoard, UpSource, Collaborator
UI Profiling: Axure, Sketch, Balsamiq, Adobe Experience Design
Other Tools: ClearQuest, AutoCAD, Open Layers, Visio, MSProject, PhotoShop, GIMP, Blender, Illustrator, Lotus Notes, IBM WWCM, Google Analytics, Talend
PROFESSIONAL EXPERIENCE:
Confidential, Salt Lake City, UT
Developer
Responsibilities:
- Make a recommendation to consolidate the several date time packages used throughout the several applications and provide a centralized framework to deal with date time and time zones across locales. I chose a back port of the JSR-310 date time package.
- Consolidate generation and consumption of i18n messages and labels which was being done on both the back end and front end with conflicting results.
- Testing of i18messages was proving labor intensive requiring the changing of messages and server restarts for tests. Created a tool tester could use to validate i18n messages.
- Java 5 and 6 legacy applications
- Weblogic application servers
- NGINX http and reverse proxy servers
- Oracle schemas, stored procedures, functions and packages
- Grails web applications serving and consuming JSON
- Restful API using the Http verbs per the HTTP1.0/1.1 specifications (GET, POST, HEAD, OPTIONS, PUT, DELETE, TRACE, CONNECT) using Hypermedia As The Engine Of Application State to decouple client and server development to evolve independently.
- Ext-JS/Sencha javascript front end utilizing JAWR
- Node as a package manager for multiple javascript libraries and versions
- Hudson CI server
- Perforce code repository
- Ant and Gradle builds
- Spock unit and integration tests
- Spring Security and OAuth/OpenID
Confidential, Scottsdale, AZ
Lead Developer
Responsibilities:
- Analyze the existing MSSQL Server database and expand and modify the data structure to accommodate the new application requirements.
- Analyze the work done by the previous developer, determine necessary course changes to make the project successful and complete the coding of the project on time.
- Interview and make hiring recommendations for an additional developer.
- Provide UI prototypes for management approval.
- Add unit and integration tests to the project and ready the UI for functional testing.
- Interface with upper management, functional testers, developers and business users.
- Develop and maintain source code in SVN, build and deploy application to jBoss application servers.
- Provide project documentation and a transition path of the project to the run team.
- Requirements tracking with Rational Requirements Composer and Rational Team Concert.
- The development methodology is Scrum.
- MSSQL database and stored procedures
- Hibernate Object Relational Mapping
- Envers auditing
- Grails web framework using Groovy and Java
- HLTML 4 web pages using GSP using standard and custom tag libraries.
- Restful API using the Http verbs per the HTTP1.0/1.1 specifications (GET, POST, HEAD, OPTIONS, PUT, DELETE, TRACE, CONNECT) using Hypermedia As The Engine Of Application State to decouple client and server development to evolve independently.
- JQuery and javascript to provide AJAX calls and provide dynamic front end.
- JUnit and Spock unit and integration tests.
- Gradle builds
- JBoss Application Servers
- Hudson CI server
- SVN code repository
Confidential
Responsibilities:
- Requirements tracking with Rational Requirements Composer and Rational Team Concert.
- The development methodology is Scrum.
- MSSQL database using functions, views and stored procedures
- Java Server Faces 1.2 view technology
- JBoss Application Servers
- Maven builds
- SVN Code Repository
Confidential
Lead developer
Responsibilities:
- Add additional tables to the existing AMS database for this new functionality
- Code the project with a Test Driven Development mindset
- Provide UI prototypes for management approval
- Interface with upper management, functional testers, developers and business users.
- Provide project documentation and a transition path of the project to the run team.
- Requirements tracking with Rational Requirements Composer and Rational Team Concert.
- The development methodology is Scrum.
- MSSQL database
- Hibernate Object Relational Mapping
- Grails web framework using Groovy and Java
- Responsive Front end using HTML5 and jQuery
- Restful API using the Http verbs per the HTTP1.0/1.1 specifications (GET, POST, HEAD, OPTIONS, PUT, DELETE, TRACE, CONNECT) using Hypermedia As The Engine Of Application State to decouple client and server development to evolve independently.
- CSS3 using Normalize.css and Bootstrap
- Used fallback javascript to accommodate older browsers using Modernizr, YepNope and Lodash javascript libraries
- Ajax and front end data binding using Backbone.js
- Node as a package manager and Webpack for asset management
- Reporting graphs using Flot.js
- JUnit and Spock unit and integration tests.
- JBoss application servers
- Gradle builds
- Jenkins CI Server
- SVN Repository
Confidential
Developer
Responsibilities:
- Oracle 11g database
- JUnit and Spock unit and integration tests.
- Geb and Selenium functional tests
- Maven builds
- Websphere application servers
- CA Harvest code repository
- Spring Security
Confidential
Lead developer
Responsibilities:
- Analyze the work done by the previous developer, determine necessary course changes to make the project successful and complete the coding of the project on time with the remaining developer.
- Add a security layer and to the application as this application was exposed to external vendors
- Provide a SOAP Interface in the form of an XML based WSDL for the external API
- Interface with upper management, functional testers, developers and business users.
- Provide project documentation and a transition path of the project to the run team.
- JEE with EJB3.1 JPA2 and JWS JAXB SOAP application.
- Eclipselink Object Relational Mapping for the webservice application
- Grails application used to maintain the database tables
- Hibernate Object Relational Mapping for the maintenance application
- Gradle and Maven builds
- Bug tracking is with HP Work Center.
- Websphere application servers
- Oracle 11g database
- OAuth/OpenID authentication and authorization
Confidential, Columbus, OH
Contractor
Responsibilities:
- Created SOAP contract first web services connecting to MQSeries via JMS in Grails.
- Development environment is Windows using Intellij deploying to WebSphere application servers.
- Databases are Oracle 11g and MongoDB, source control is ClearCase, bug tracking is with HP WorkCenter, project tracking with Jira and the Greenhopper agile plugin, builds are performed with BuildForge utilizing Maven and Nexus as the artifact repository.
- Integration and unit testing with Junit. Development methodology is Scrum.
Confidential, Bellevue, WA
Contractor
Responsibilities:
- I was hired to help complete and debug two Groovy/Grails projects that had missed their scheduled release dates.
- The applications help healthcare providers prepare for an ICD9-ICD10 conversion as mandated by the government.
- Development environment was Windows using Intellij deploying to Tomcat servers.
- Databases are MSSQL and MySQL, Continuous Integration Server is Jenkins, bug tracking is with Redmine, source control is SVN, builds are performed with Maven and Nexus as the artifact repository and project documentation was with Twiki. Development methodology is Scrum.
- The view layer was GSP's with jQuery. Integration and unit testing with Junit.
Confidential, Eatontown, NJ
Lead Developer
Responsibilities:
- As a result of a software audit, the company was instructed to migrate from a PHP environment to Java.
- I was hired to convert their existing applications to Java and to bring the existing developers up to speed in Java.
- After completing an initial application in Spring MVC and JSP's, the company approached me with concerns that application development was taking too long, and the other developers were having difficulty learning java. Having previously developed an application in Groovy/Grails and realizing it's conciseness and lower learning curve relative to Java, I recommended we migrate to Groovy/Grails.
- Implemented a mix of Scrum and Kanban development process methodology.
- Since the paradigm change, projects were completed on time.
- Applications utilize Sun OpenSSO/OpenAM for single sign on. Business Process modeling using jBPM, reports using Jasper Reports and JMS with ActiveMQ to make report generation an asynchronous process. The initial Grails applications view layer was GSP's with prototype, scriptaculous and jQuery JavaScript frameworks.
- Newer applications utilize RESTful calls, JSON for data exchange to the EXT-JS/Sencha javascript RIA framework. The development environment is Mac OSX with developers using: IntelliJ, NetBeans or SpringSource Tool Suite IDE's deploying to Glassfish servers running Solaris. Databases are MySQL and Postgres.
- Continuous Integration Server is Hudson/Jenkins and bug tracking is Bugzilla. Responsibilities include mentoring of junior members of the team and providing work estimates and report progress to management.