Clayton M. McCoy
125 Oaklyn Hills Drive
Chelsea, AL 35043
(205) 618-8825
resume@claymccoy.com
resume.claymccoy.com - the most recent version of this document
blog.claymccoy.com - my blog demonstrates use of cutting edge technologies
Objective
To contribute to an environment that takes pride in craftsmanship while delivering business value.
Qualifications
Experience architecting, implementing, and directing the development of object-oriented software. Proven ability to rapidly evaluate and apply emerging technologies.
SkillsJava 6, Groovy, Ruby, Javascript, XML, XSL, Graphviz
Object Oriented Development, Design Patterns, Behavior Driven Development (BDD)/Test Driven Development (TDD), Language Oriented Programming with Domain Specific Languages (DSLs), Aspect Oriented Programming (AOP)
IntelliJ, Eclipse, Netbeans, Java VisualVM, Subversion, Git, Maven, Nexus, Jira, Bugzilla, Redmine, Confluence, Hudson
HTML/XHTML, CSS, Servlets, JSP, Grails, Ruby on Rails, jQuery
Spring, Groovy (GDK), Google Collections, JRuby, AspectJ
JUnit 4.x, XmlUnit, DbUnit, Mockito, Hamcrest Matchers, GroovyTestCase, Spock
SQL, JDBC, Toplink, Derby/Java DB, H2
Work Experience
1/09-present Senior Software Developer @ Actek
- Focus on improving practices and software quality
- Initiated technical book club and led discussions (Completed Effective Java 2nd Edition with group)
- Provided example code, presentations, and documentation on many best practices and tools (TDD, Unit testing with Groovy, Maven, Java 5 language features, Java Exception handling, writing testable code...)
- Provided numerous API's and Groovy DSL's in an effort to remove boilerplate code and clean up abstractions for developers. Noteworthy areas that were streamlined include JDBC Connection management, programatic Transactions, JMS, application metadata, mocking application components...
- Created flexible environments for developers to test application as alternatives to full production deployment. This made use of in-memory databases and embedded servlet containers.
- Created custom database/XML conversion application in Groovy which received extensive use.
- Removed App Server dependency on a large J2EE web application.
- This made the codebase more lightweight, easier to test, and also gave us much more control over our technology stack.
- The App Server provided functionality was replaced by libraries that I evaluated and chose.
- Spring for transactions, dependency injection, general application configuration, and integration of other libraries without vendor lockin
- ActiveMQ for JMS
- Hessian for RMI
- C3P0 for connection pooling
- The result was more efficient development and deployment for the application as a whole.
1/08-1/09 Product Architect @ EPL
- Improved existing architecture and tools across the engineering department
- Positioned EPL for development and support of a new product. Setup Subversion source control, Maven build, continuous integration with Hudson, Redmine for project management.
- Created API to simplify a Java developer's role in mapping an existing application to a fourth normal form database with effective dating and custom security protocols
9/05-1/08 Team Lead/Architect @ DST Health Solutions
- Led team of 10+ (including developers, architects, business analysts, testers, and offshore resources) through full life-cycle in delivering a 3-tier general purpose ontology IDE with rules engine and bitemporal effective dating
- Ultimately responsible for all feature implementation and defect resolution
- Managed scope by estimating effort, prioritizing work, and assisting business analysts in developing requirements
- Made architectural and design decisions, broke functionality up into tasks, assigned developer tasks, and advised management on the best technical courses of action
- Responsible for build, test coverage, defining and orchestrating branching and merging strategies in source control
- Organized code reviews, ran daily standup meetings
- Implemented core code for the project
- Developed internal tools that made the team more productive
- Created a Domain Specific Language (DSL) describing project artifacts that allowed for intuitive creation, querying, and equality assertions for application domain model.
- DSL is internal to Ruby and it delegates to core Java codebase with JRuby
- DSL helped data modelers build, developers unit tests, and testers regression test
- Integrated JRuby scripting into application for dynamic inspection, clean up, and data mining
- Data visualization of project artifacts with TouchGraph and Graphviz
- Enforced cross-cutting project concerns with AspectJ
8/02-9/05 System Analyst @ Computing Technologies
- Built Java and XML framework for rapidly producing reporting applications which replaced a one off approach where each report was created without any code reuse.
- Framework reduced report creation time from weeks to days, and allowed for consistent maintenance
- Held a Secret level Department of Defense security clearance.
1/99-8/02
Software Engineer @ Sword Microsystems, Inc.- Design and implement client/server java applications
- Contributed to framework for building web e-commerce systems
Education
BS: Computer Science, University of Alabama, Tuscaloosa, Alabama (1998)