07 January 2022
Software developer who is not afraid to tackle any challenge. My current focus
is on building and supporting robust, scalable stream processing applications that
run on the JVM, evangelism of technology and mentoring. I am always open to expanding
my knowledge of new technologies, techniques and tricks. I believe in writing unit
tests, running performance tests and finding creative ways to make sure that that
reliability is front of mind when performing architecture refactors. I enjoy
contributing to open source projects and collaborating with others.
Current | ||
---|---|---|
Java |
Docker |
Kafka |
Spring Boot |
Spring |
Gradle |
Git |
Memcached |
Groovy |
Spock |
Thrift |
AWS |
PostgreSQL |
JUnit 4 / 5 |
Rest |
Jetty |
Spring Reactor |
WireMock |
Jenkins |
HTML |
CSS |
ReactJS |
Python |
Agile / SCRUM |
IntelliJ IDEA |
Previous | ||
---|---|---|
Eclipse |
Maven |
MySQL |
Apache ZooKeeper |
Grails |
RabbitMQ |
Apache Tomcat |
MongoDB |
C |
C++ |
JSP |
Java Servlets |
Hibernate |
OpenLDAP |
Ant |
Glassfish |
IBM WebSphere |
Subversion |
CVS |
StarTeam |
JMS |
Microsoft SQL Server |
VisualBasic |
EJB 2 / 3 |
JCA |
ASP |
AS / 400 |
June 2014 - Present
Design, implement and maintain multiple versions of a near-real time
streaming evaluation pipeline.
Improve developer productivity and quality through various initiatives,
such as common tooling, dependency management and project templates.
Built and maintain numerous Gradle plugins to reduce code / configuration
duplication and provide consistent static analysis.
Analyze and quantify impact of external changes in order to provide team
members with an outline of required work to implement.
Provide code reviews, analysis and consultation for members of product
development teams with engineering, including mentoring of junior staff.
Work across teams to design and implement cross-cutting features and
identify / implement architectural changes.
Perform multiple environment migrations to move code execution from static
services to an internal cloud and the public cloud.
July 2011 – June 2014
Responsible for design and implementation of cross-cutting, framework level
software for use in Dealer.com’s architecture. Projects include metrics
reporting and gathering framework, centralized configuration system utilizing
Apache ZooKeeper and upgrades and upkeep of Grails-based software suite.
Provide code reviews, analysis and consultation for members of product
development teams with engineering, including mentoring of junior staff.
Evangelize technologies within engineering, such as the adoption of Grails,
Groovy, Maven, RabbitMQ, MongoDB, Spring and other technologies.
Contribute internal blog posts and presentations on topics relevant to engineering.
March 2006 – July 2011
Responsible for division-wide technical direction, including system design,
prototyping, requirement gathering, tracking development, and setting and
enforcing development policies and procedures.
Acted as technical lead / lead developer for various next generation data
analysis applications using technologies such as Grails, Groovy,
Java 2 Platform Enterprise Edition / Web 2.0 technologies including
AJAX, JSP / Servlets and JMS, OpenLDAP, HTML, CSS, JavaScript,
MySQL 5.1 and Hibernate.
Managed team of developers, including facilitating daily SCRUM meetings.
Instrumental in adoption and integration of new technologies / tools within
the division, such as Hudson, Maven, Grails, Groovy, and Spring.
Responsible for facilitating design and code reviews with peers.
Mentored junior developers to improve their design and programming skills.
July 2003 – March 2006
Developed and maintained backend Java 2 Platform Enterprise
Edition application leveraging JMS, CMP, Castor XML
Marshalling Framework and web services hosted in
WebSphere Application Server 5.1 that is responsible
for processing point of sale transactions in XML from all US
retail stores (1300+) and forwarding them to DB2 and an
AS / 400 system for further processing.
Translated complex business logic that is applied to point
of sale transactions from Visual Basic into Java for inclusion
in the point of sale transaction processing Java 2 Platform
Enterprise Edition application.
Reconstructed the XML schema used to define all point of sale
transactions.
Worked closely with AS / 400 developers to integrate middle-tier
Java 2 Platform Enterprise Edition applications and backend
RPG / CL applications.
Developed internal Java 2 Platform Enterprise Edition web
applications to view point of sale data, transactions and
render receipts using OpenLDAP, CMP, Hibernate 3, Quartz
scheduler and Apache Struts.
Collaborated closely with business partners to define system requirements
and technical specifications for new applications.
Developed Apache Ant scripts to check out, build and deploy Enterprise
Application Archive files to WebSphere Application Server 5.1.
Extensive experience configuring resources in WebSphere Application
Server 5.1 including JDBC data sources, JMS resources, JCA adapters,
LDAP configuration and mail providers.
Supported Java 2 Platform Enterprise Edition applications hosted
in WebSphere Application Server 5.1 on RedHat Linux Enterprise
3.0 and DB2 8.2 on AIX and legacy applications written in Visual
Basic, Visual C++ and ASP.
Executed performance testing of new applications using Apache JMeter,
Mercury SiteScope and IBM Tivoli Performance Analyzer and other
monitoring software.
May 2002 – September 2002
Developed an intranet site using ASP, VB, and MS SQL technology.
Aided in administration and maintenance of corporate network.
Provided technical support for employees by solving various computer issues.
Degree: Bachelor of Arts, summa cum laude, 2003
GPA: 3.87 / 4.0
Major: Computer Science
Minor: History
Distinctions: Dean’s List 8 Semesters, Phi Beta Kappa Honor Society, National
Society of Collegiate Scholars, Sophomore Scholar of the College
Simulation of a Distributed Mutual Exclusion Algorithm Using Multicast Communication -
15th European Simulation Symposium and Exhibition, Delft, The Netherlands, October 26-29, 2003
Centralized Configuration Management with Apache ZooKeeper -
VT Code Camp, Burlington, VT, September 21, 2013
How We Chose an Application Framework for New Relic Alerts, May 18, 2017