Resume

Summary

  • Nine years of enterprise software development experience at St. Jude Children’s Research Hospital
  • Two years of software team and project management at St. Jude
  • Extensive work with Java, Spring, and Groovy/Grails web applications
  • Experienced in the development of rich web user interfaces using JavaScript, Prototype, and Script.aculo.us and REST web services using JSON and XML
  • Extensive experience working with clients to elicit and analyze business requirements and processes in order to deliver high-value technology-driven solutions
  • Constant driver of adoption of cutting-edge technology to better deliver value to the research community
  • Nine years of experience deploying applications to Linux server environments
  • Nine years of experience with multiple database platforms including Oracle, MySQL, and PostgreSQL
  • Recognized conference speaker and author

Work Experience

St. Jude Children’s Research Hospital, Memphis, TN (2001-present)

Group Leader – Software Development (2008-present)

  • Currently managing an eleven member cross-disciplinary team (business analysts, developers, testers) and five member offshore development team in India.
  • Was directly responsible for interviewing and hiring for five software development positions within a one year period, as well as interviewing and selecting all five offshore developers.
  • Directing the development of version 2.0 of our enterprise shared resource management system (SRM), utilizing an entity-attribute-value (EAV) data model for enhanced configurability and rapid delivery of services, as well as a modular microkernel/plugin architecture using Spring Dynamic Modules/OSGi technologies. This system will eventually support approximately 25 different shared resource facilities offering a diverse array of services including whole-genome sequencing, expression and genotyping arrays, proteomics, cell and tissue imaging, and pathology services. My responsibilities include requirements analysis, project management and scheduling, architectural oversight, and technology selection.
  • Also directed a five member team, including one business analyst, one graphics designer, and four offshore developers to enhance our TrakIT publication management system (see description below) by adding an advanced curation interface, integration with additional public databases, and a user interface facelift.
  • Currently leading a four member team to develop extensions to SRM 2.0 in support of the Pediatric Cancer Genome Project (http://pediatriccancergenomeproject.org/site/), a collaborative effort between St. Jude and Washington University in St. Louis, MO (WashU) to sequence the complete genomes of approximately 600 pediatric cancer patients. Our responsibilities include development of a sample submission system and LIMS interfaces for the sample preparation laboratory. We also are developing a client application to be run at WashU, allowing them to update sample status information as they proceed through the sequencing process, and finally to deliver over a high speed Internet2 connection the ~100GB data files for each sequencing run. These extensions utilize both the Grails web application framework (http://www.grails.org) for RESTful web services and the Griffon Swing UI application frameowrk (http://griffon.codehaus.org) for development of the client-side application. We are also utilizing the Fast Data Transfer (FDT) library developed at CERN (http://monalisa.cern.ch/FDT/).

Senior Software Engineer/Web Developer (2005-2008)

  • Led a three-member team to develop TrakIT, a publication management system for St. Jude publications. TrakIT integrates with multiple public databases to assemble an exhaustive set of St. Jude publication data. It allows investigators to annotate these publications with shared resource usage, cancer center/multidisciplinary program affiliations, and research categories, as well as selecting which publications they would like to appear on their faculty bio page on http://www.stjude.org. TrakIT was implemented using AppFuse (http://appfuse.org), an open source project which provides pre-built integration of multiple open source Java tools. Our team used AppFuse to integrate Java Server Faces (JSF), Spring, Hibernate, and Compass frameworks. This application reduced a several week grant renewal process to a point-and-click report generation lasting a few seconds.
  • Led a three-member team to migrate 684,000 shared resource service orders spanning thirteen laboratory services and 23 years from the Hartwell Center’s (http://www.hartwellcenter.org) legacy database to the Shared Resource Management (SRM) database. During this project I developed mappings and algorithms for migration of the data from the legacy schema to the SRM schema. I also developed test cases and SQL queries to validate the migration. I maintained the project schedule, conducted weekly status update meetings, and oversaw the development of Oracle PL/SQL packages which implemented the mappings and algorithms.
  • Responsible for the installation and maintenance of team’s software configuration management (SCM) infrastructure, including Subversion (SVN) for source code revision control, Atlassian FishEye for SVN browsing and reporting, Atlassian JIRA for issue tracking, and Atlassian Bamboo for continuous integration. Responsible for maintaining a high level of integration between all of our SCM solutions.
  • Led a two member team to provide maintenance and support of our Shared Resource Management (SRM) system. I was responsible for triage, scheduling, and assignment of client issues and bug fixes, as well as implementation of said fixes during a six month period.
  • Led a two-member team to develop a web-based scheduling system for shared laboratory instrumentation. This system allows laboratory managers to setup calendars (daily, weekly, and monthly) for each of their instruments and allows users to login to the system and book appointments. Laboratory managers may also setup records for each of their technicians and then rank them on each instrument. Users who request appointments for technician-assisted usage are assigned the highest ranked available technician. If no technician is available, the booking is denied. The system also bills users at a defined hourly rate through the SRM system. This implementation utilized Spring Web MVC, Prototype/Script.aculo.us, Hibernate, MySQL, and Apache CXF for SOAP web services.

Software Engineer/Web Developer II (2004-2005)

  • Developed the SRM ordering and laboratory management (LIMS) user interfaces for the Hartwell Center for Bioinformatics and Biotechnology (http://www.hartwellcenter.org) Clinical Applications/Core Technology facility. These implementations utilized Java Servlets and JSP.
  • Developed multiple custom plugins for the Teranode Design Suite (http://www.teranode.com/products/tds/index.php), a collaborative tool for designing, managing, analyzing, and reporting experiment data. This tool is used by the Hartwell Center Proteomics facility for its LIMS system. The plugins that I developed provide ordering and billing integration with SRM, maintenance of sample freezer locations, and imports of experimental data from laboratory instrumentation. Plugins were developed using the Java Swing toolkit and the Teranode Design Suite API.

Software Engineer/Web Developer I (2001-2004)

  • Led a two-member team to develop HC WebFetch 2.0, an application allowing users of the Hartwell Center’s biotechnology services to query their order history and view a list of downloadable data files related to those orders. Users could add files to a “shopping cart,” and then download these files to their local workstation or transfer them directly to their network drives. This application utilized Java Servlets, JSP, JDBC, and Oracle 8i.
  • Worked as a Java Servlet and JSP developer within the first Shared Resource Management (SRM) 1.0 project team. SRM is an application designed as a single portal for St. Jude investigators to order shared resource services, track their orders, receive invoices, and run reports. It also provides laboratory staff the ability to manage their workflow through its LIMS features. My responsibilities included the development of a custom Model-View-Control (MVC) framework, server-side form validation libraries, and also the development of ordering and LIMS user interfaces for the Hartwell Center’s DNA Sequencing, DNA Synthesis, and Peptide Synthesis laboratories.
  • During this time I also participated in Linux, Apache HTTPD, and MySQL administration tasks as well as desktop support for applications that we developed.

Duck Duck Goose Designs, Southaven, MS (2009-present)

E-Commerce Web Developer

Duck Duck Goose Designs is my wife’s custom stationery and gifts business. I developed “Wendy’s Store” (described in the Open Source section) to serve as the business website. I secured hosting with a Virtual Private Server provider, configured a CentOS Linux server with Apache HTTPD, Mod JK, Apache Tomcat, MySQL, and ImageMagick, and secured a domain name and setup the DNS configuration. I later configured Monit (http://mmonit.com/monit/) to provide notifications of application server failure and automatic restarts. I also configured her PayPal account to properly integrate with the website’s payment processing features.

This site is no longer in production for various non-technical reasons.

ProTec International, Inc., Bartlett, TN (2005)

Independent Contractor

ProTec International (http://www.protecafmt.com) is a local lubricant manufacturing company. I restructured the design of the “GUNCare!” section of their website, employing Macromedia tools for basic HTML layout (Dreamweaver) and graphics design (Fireworks). This website is no longer in use.

Open Source

Grails PayPal Plugin (http://grails.org/plugin/paypal)

The Grails PayPal plugin allows Grails application developers to easily integrate with PayPal’s Website Payments Standard API. I enhanced the existing plugin to allow integration with the third-party uploaded shopping cart API. I also added functionality allowing the override of shipping addresses from within a Grails application. Also added functionality allowing the application to prevent shipping charges from being added to the total payment.

JUG Events (http://code.google.com/p/jugevents)

JUG Events is a Java-based web application that was designed and implemented by the JUG Padova in Padova, Italy. It is a tool for helping Java User Groups to organize their events. I enhanced this application by adding an Ajax-enabled “prize wheel.” The prize wheel “spins” displaying the names of the registered attendees until landing on a randomly chosen person who is then added to the list of winners and removed from the wheel.

Wendy’s Store (http://github.com/mstine/wendy-s-store)

Wendy’s Store is a Grails application that I built from the ground up to serve as the website for my wife’s custom stationery business, Duck Duck Goose Designs. The store provides the owner the ability to manage products and product categories, customize the order form for each product by adding additional fields, upload product images, and manage orders. The shopping experience includes a shopping cart and PayPal integration for payment processing.

JUG Nexus (http://github.com/mstine/jug-nexus)

JUG Nexus is a Grails application that I built from the ground up to serve as the website for the Memphis/Mid-South Java User Group. The application provides any JUG with the ability to manage their membership, speaker roster, events, and topics. Members can give events and topics “star ratings” and can also leave comments. It integrates with http://gravatar.com to display pictures of registered members/speakers, with the Google Maps API to display maps to events, and with the Twitter API to send “tweets” when events and topics are posted or updated. Speakers can also upload the slides from their presentations to share with others.

Polyglot OSGi Vending Machine (http://github.com/mstine/pgovm)

This project is a “toy” example that I built to show how one could use multiple Java Virtual Machine (JVM) languages within an OSGi environment. It is based on a basic vending machine specification. I designed a Java interface for this specification, and then implemented that interface in Java, Groovy, Scala, and Clojure. I also built a basic Spring MVC web interface that allows a user to play with each of the implementations. This project was mainly developed for use within my Polyglot OSGi talk on the No Fluff Just Stuff tour.

Education

Bachelor of Science in Computer Science

University of Mississippi, 2001

Professional Memberships

  • Memphis/Mid-South Java User Group, Founder and President
  • Association for Computing Machinery (ACM)
  • Institute of Electrical and Electronics Engineers (IEEE) Computer Society
  • St. Jude Toastmasters Club
  • Howard Hughes Medical Institute (HHMI), Janelia Farm Research Campus, Shared Resource Review Board (2010)

Publications

  • M. Stine. “Polyglot OSGi, Part II.” NFJS the Magazine July 2010
  • M. Stine. “Polyglot OSGi, Part I.” NFJS the Magazine June 2010
  • M. Stine, V. Beal, N. Dosooye, Y. Du, R. Gundapaneni, A. Pappas, S. Raghavan, S. Shakya, R. Shrestha, M. Sanyang, C. Naeve. “Shared Resource Management.” Biomedical Informatics in Cancer Research. Ed. M. Ochs, J. Cassagrande, R. Davuluri. Springer, April 2010.
  • M. Stine. “Easy E-Commerce with Grails, Part II.” GroovyMag March 2010: 30-36
  • M. Stine. “Easy E-Commerce with Grails, Part I.” GroovyMag February 2010: 26-32.
  • A. High, C. Galea, P. Thomas, A. Mishra, J. Gebler, M. Zhou, M. Stine, D. Finkelstein, J. Obenauer, P. Doherty, R. Kriwacki, C. Slaughter. Increasing the Depth to which Complex Proteomes Can Be Penetrated by MuDPIT: Identifying Chromatographic, Mass Spectral and Computational Improvements. Eighth International Symposium on Mass Spectrometry in the Health and Life Sciences in San Francisco, August 19–23, 2007.
  • M. Stine, D. Dasgupta and S. Mukatira. Motif Discovery in Upstream Sequences of Coordinately Expressed Genes. Accepted at the Congress on Evolutionary Computation Conference(CEC), Canbara, Australia, December 8-12, 2003.
  • M. Stine. Performance of Genetic Algorithms for Data Classification. McDonnell-Barksdale Honors College Senior Thesis and UM-CIS Technical Report 2001-04, University, MS, 2001.

Buzzwords

  • Languages: Java, Groovy, Javascript, Perl, Ruby/JRuby, Clojure, Scala, Objective-C
  • Enterprise Java: Servlets, JSP, JSTL, EJB 2.0/3.0, JMS, Spring Framework, Hibernate, iBATIS, Compass, Quartz
  • Java Libraries: Apache POI, Log4J, JFreeChart
  • Web Frameworks: Grails, Spring Web MVC, Java Server Faces (JSF) 1.2
  • Javascript/AJAX: Prototype, Script.aculo.us
  • Web Development: HTML/XHTML, CSS, XML
  • Mobile Application Development: Apple iPhone/iPad
  • Databases: Oracle, MySQL, PostgreSQL
  • Application Servers: Weblogic 8.1, JBoss AS 4.2, Apache Tomcat, Jetty, SpringSource dm Server, SpringSource tc Server
  • Operating Systems: Windows XP, Mac OS X, Linux (Red Hat Enterprise Linux (RHEL), CentOS, Ubuntu)
  • Tools: Ant, Maven 2, JUnit, DbUnit, Selenium, Eclipse, IntelliJ IDEA, SpringSource Tool Suite, PAX Tools for OSGi
  • SCM/Collaboration: Atlassian JIRA, Confluence, FishEye, Crucible, Bamboo

Respond to this post