Hello

I've been developing web software for around 20 years... since before the <table/> tag, actually.

My core areas of expertise are Java, Javascript, data persistence, real time messaging, web services, and clients that consume web services - web, mobile, curl, etc.

I'm passionate about usability, testability, APIs that are robust and easy to consume, and security... and I strive to develop elegant software that's fun and productive to use.

Sometimes all this fun and productivity occurs on a large screen, sometimes a small one. Sometimes it occurs without a screen.

Experience

Chief Technology Officer

RabbleTV, Nashville, TN

02/2014 – present

RabbleTV is a streaming audio platform that allows sports fans, TV enthusiasts, and podcasters to engage their audiences in real time.

As CTO, I'm in charge of our infrastructure/configuration/performance, data models and service APIs, and integrating various clients (web/iOS/Android). I also manage external points of integration (real time sports and television data) and evaluation of new technology to extend the platform.

We use microservices to deliver a highly performant and scalable platform. NodeJS and MongoDB do the heavy lifting, but we also utilize many custom components and several other databases (Redis/Neo4J). Our server infrastructure is a mix of physical servers (predominantly for our streaming media) and virtualized servers for our application layers.

The development methodology we use is Agile and test driven development.


Health Systems Software Engineer III - Informatics

Vanderbilt University Medical Center, Nashville, TN

09/2012 – 02/2014

Worked with integrating and transforming lab messages (HL7) and relevant portions of the Vanderbilt Electronic Health Record into compelling web/mobile experiences for external partners and clients.

Integration work required me to interact with a lot of different technologies, but the typical stack was JMS for messaging, Java with Guice and/or Spring for Dependency Injection, JPA for data persistence with Oracle, a RESTful service layer, and Bootstrap/JQuery/Angular for UI clients.

The development methodologies used were Agile and test driven development.


Software Developer - MIS

Vanderbilt University, Nashville, TN

09/2008 – 09/2012

Built custom web applications to expose registration, course scheduling, grading, and transcript functionality to University students and faculty.

Student data at a university that's existed for 100+ years may span several generations of systems (Legacy/Data Warehouse/PeopleSoft Campus Solutions). I worked in a team that created SOAP based web services (contract first) using Spring and Java to aggregate this data and expose it with Struts2 web applications.

MIS is an Extreme Programming shop that uses pair programming and test driven development extensively.


Lead Software Developer - Internet Development

St. Jude Children's Research Hospital, Memphis, TN

05/2006 - 09/2008

Lead the development of Java web applications for Intranet efforts, such as resource scheduling and conference/seminar management.

Worked within a cross organizational team to implement and extend the Vignette Content Management System for the public Internet site for St. Jude Children's Research Hospital and ALSAC.

Want to know more work history or project specifics? Just contact me - I've got a lot to tell.

Expertise

Technical

  • Javascript
    • NodeJS
    • AngularJS
  • Java J2EE
  • MVC Frameworks
    • Spring MVC
    • Struts 1 & 2
    • JSF
  • Dependency Injection/AOP
    • Spring
    • Guice
  • Testing
    • JUnit
    • Mockito
    • Fitnesse
    • Bamboo
    • Jenkins
    • Mocha
  • Persistence
    • JMS
    • JPA
    • JDBC
    • Hibernate
    • iBatis/myBatis
    • Mongoose
  • SOA
    • SOAP (contract first)
    • REST (xml/json)
  • Miscellaneous
    • iOS (Objective C)
    • Android
    • Shell scripting

Build Tools

  • Grunt
  • Gulp
  • Maven 1, 2, 3
  • Ant

Databases

  • RDMS
    • Oracle PL/SQL
    • Postgres
    • mySql
    • HSQL
  • NoSQL
    • MongoDB
    • Redis
    • Neo4J

Environments

  • Linux Adminstration
  • Web Server Configuration/Tuning
    • NGINX
    • Varnish
    • AWS Elastic Beanstalk
    • AWS EC2
  • Java Application Server Configuration/Tuning
    • JBoss
    • Tomcat
    • Oracle OAS/OC4J
    • Weblogic

UI/UX

  • Information Architecture
  • Iterative Usability Analysis
  • Responsive Design
  • XHTML/CSS
  • Foundation
  • Twitter Bootstrap

Lifecycle

  • Agile
  • XP (Extreme Programming)
  • Pair Programming/Code Review/Mentoring
  • Continuous Integration
  • TDD (Test Driven Development)
  • Version Conrol
    • git
    • SVN
    • CVS

Education

Rochester Institute of Technology · Rochester, NY · BFA 1997

During my photojournalism degree studies, I worked on several web-based projects (24 Hours in Cyberspace...) that were early electronic publications of documentary photography work. My involvement with software development evolved from producing content, then building and implementing content management systems.