Matthew Taylor

Grails Developer

Core Competencies

Languages
Java, Groovy, JavaScript, PHP, SQL, Shell scripts, FORTRAN77
Java
Grails, Hibernate, Spring, JDBC, Maven, Ant, Swing, Griffon, Java2D, JBPM, JDOM, JUnit, JAXB, Quartz
Rich Client
YUI, Ajax, JavaScript, HTML, XML, CSS, Flex
Servers
Apache Tomcat, JBoss, ISS
Operating Systems
OS X, Windows XP, Unix (Solaris), Linux
Version Control
Subversion, CVS, ClearCase, Git

Professional History

SpringSource

Senior Software Engineer
Wentzville, MO (remote)
Oct 2008 - Mar 2009
Project: Grails.org Plugin Portal
Description
Before this development, the Grails.org plugin section was merely a collection of simple wiki pages. In order to allow more interaction with developers, I created a new Plugin Portal to allow users to better interact with plugin data. This development included several new pages to sort and show data about all plugins available for the Grails framework. Plugins were also made commentable, rateable, and taggable. An hourly quartz job runs that updates all live plugin pages with data received from the master plugin XML list on the plugin source server.
Responsibilities
As the primary engineer working on this development, I was responsible for implementing the requirements created by Graeme Rocher, the creator of Grails, and the Grails community. I was also responsible for the deployment of this application on the grails.org servers, and the migration of existing production data into the new plugin portal data schema.
Technologies
Grails 1.1 and various Grails plugins, including Rateable, Commentable, Taggable, Searchable, GrailsUI, RichUI, Quartz, Autobase, JSecurity, Feeds, Avatar, & Mail. Also created the Rateable plugin to support this development, which includes a custom AJAX rating widget written with YUI.
Project: Groovy / Grails Training
Description
Presenting Groovy and Grails training to paying audiences.
Responsibilities
Constructing materials, presenting, answering questions, creating on-the-fly demos, etc.
Technologies
Groovy, Grails, Keynote
Project: SQL*LIMS
Description
Working for our client, Applied Biosystems, I helped them to mature a Grails application that wrapped an extensive legacy database of forensic information.
Responsibilities
Creating rich UI features using GrailsUI and YUI for dynamic data search and display. Writing complex services to encode and decode query data. Wrote a DSL to handle smart date entry.
Technologies
Groovy, Grails, GrailsUI, YUI, JavaScript

G2One

Grails Developer
Wentzville, MO (remote)
Feb 2008 - Oct 2008
Project: Internal Ticket Tracking System
Description
This tracking system was developed for a major web-hosting company in order to provide a custom issue-tracking solution for their web engineers.
Responsibilities
During my time on this project, I was the Project Lead of a team Grails developers. I also implemented a majority of the code written at that time, helping interface with a web designer and implementing his designs into the application.
Technologies
Groovy, Grails 1.0.3 and various plugins, REST, Jabber, Groovy scripting, YUI, Ext-JS, JavaScript
Project: GrailsUI
Description
GrailsUI provides an extensive tag library of rich ajax components based on the Yahoo! UI (YUI) JavaScript library and a YUI extension called the Bubbling Library. It has been designed for ease-of-use as well as configurability. See extensive docs at http://grails.org/plugin/grails-ui
Responsibilities
Lead programmer and designer
Technologies
Groovy, Grails 1.0.X & 1.1, JavaScript, CSS, YUI
Project: Grails Consultant at Insurance Software Company
Description
Traveled to client site to give guidance and help develop a team of new Grails developers. This consisted of 3 separate trips to consult, help implement, and mentor new team members.
Responsibilities
Consultant, mentor, advisor, developer
Technologies
Groovy, Grails 1.0.3

Monsanto

Senior Software Developer
Creve Coeur, MO
Aug 2007 - Feb 2008
Project: Intellectual Property Review (IPReview)
Description
IPReview is an application used by genetic engineers and molecular biologists to submit genetic sequences of DNA / RNA to be compared to large data sets containing patent information.
Responsibilities
  • Design and implementation of entire application along with other team members
  • Constructing and calling web services over HTTP for internal Monsanto usage through other applications
  • Building Hibernate mappings and access code for interaction with Oracle database backend, including HQL
  • Designed and creating a DbUnit testing framework to keep code coverage over Hibernate mappings and entity code, including testing transitive persistence selections and updates
  • Test Driven Development for all coding
Technologies
Hibernate, Spring, JUnit, DbUnit, JBPM, JAXB, JSP, Servlets, XML, HTTP, IntelliJ IDEA, Eclipse, CVS, Cruise Control, Maven, Tomcat, SQL Developer

Boeing

Software Developer
Bridgeton, MO
Feb 2007 - Aug 2007
Project: Common Structures Workspace
Description
Common Structures Workstation is an integrated system of computer tools designed to enable engineers to perform stress analysis and record the analysis results in a format consistent with traditional strength check notes.
Responsibilities
  • Inspecting and translating legacy FORTRAN engineering applications into Java to be included as plug-in functions in CSW.
  • Demonstrating completed bug fixes and plug-ins to customers at the end of every release cycle.
  • Administration and maintenance of the automated build machine, using Cruise Control and Ant.
  • Updating tests written with XSLT using the Fit testing framework.
  • Test Driven Development for all coding.
Technologies
Ant, Eclipse, Subversion, Cruise Control, FORTRAN77, CYGWIN, XML, XSLT, Groovy

Tripos

Software Developer
Brentwood, MO
Sep 2006 - Feb 2007
Project: Discovery 360
Description
Discovery 360 is an Integrated Discovery Environment that provides chemists and biologists with a single platform to access, analyze, and share research data from disparate sources. This product was developed for one of the largest pharmaceutical companies in the world. The framework of CSW is analogous to a cross between a word processor and a spreadsheet. The user has the option to use one of a large number of pre-built analysis functions or enter their own text and equations.
Responsibilities
  • Ground-level programmer working in a 3-tiered enterprise environment.
  • Resolved software defects in a timely and efficient manner to meet program deadlines.
  • Designed and developed solutions for new software capabilities to directly support requirements specifications.
  • Programmed user interfaces in the Presentation Tier using Swing, including JTables, custom renderers, XML menu item generation, component factories, and a Struts-like action framework.
  • Built upon an existing printing framework using Lowagie iText to create a new capability to print output screens to PDF and JPEGs.
  • Interacted with all three tiers of the application while working in the Middle Tier. Built upon a code framework that allowed the PT to interact with distributed databases in the Data Tier. Implemented additional communication between tiers using established CORBA IDL interfaces.
  • Created new automated capabilities for development using ANT, including selected module compilation and cleaning.
Technologies
Swing, IntelliJ IDEA, ClearCase, ClearQuest, JBoss, SQL Squirrel, Lowagie iText

Science Applications International Corporation

Software Applications Engineer
Whiteman AFB, MO
Oct 2004 - Sep 2006
Project: Route Refinement Tool
Description
RRT is a Java GUI wrapped around a legacy Department of Defense combat simulation called SUPPRESSOR. The legacy interface requires complex command-line interactions with the user; therefore RRT provides a graphical user interface in its place. RRT is constructed using the ESRI MapObjects software, which helps to enable map displays. Users of RRT import data into the model from different sources, all of which are displayed on a 2D map display before the model is executed. Once data is within the program, it can be edited and saved within the user session. Because the legacy SUPPRESSOR model is executed on another UNIX computer, RRT must spawn and monitor processes across a network connection. There may be several running RRT clients connected to the RRT server running the simulation.
Responsibilities
  • Analyzed the requirements and converted them into technical specifications
  • Authored the System Requirements Document, which was presented to the US Air Force for approval
  • Involved in all stages of the SDLC (Analysis, Design, Development, Testing, Implementation)
  • Responsible for the design of the overall system using MVC pattern
  • Created procedures to read XML input files using their schemas and JDOM
  • Stored locally saved parameters and data within XML files using JDOM
  • Programmed complex, user-centered Swing components that visualized complicated input variations
  • Implemented event-driven communication using Observer/Observable pattern
  • As team member, submitted up-to-date code through Subversion repository
Technologies
Swing, Eclipse, Netbeans, AspectJ, XML, Subversion
Project: Polar Data Viewport
Description
Utilized Java2D to plot polar data, allowing user to graphically display multiple files containing polar points. Structured Swing GUI to zoom and pan in response to mouse commands.
Responsibilities
  • Complete design and implementation
  • File input and parsing of structured data
  • Translation of input into Java objects using OOD/OOP to ensure subclasses of polar data and comparable polar points
  • Graphical display of polar data using Java2D, including user control of color, line style, line size
  • Used mouse events to catch user pan and zoom (using mouse wheel) and force data display to respond and redraw
Technologies
Swing, Java2D, Netbeans

Education / Certifications