This is my résumé. If you wish, you can also download a copy here.
- Passionate, hardworking problem-solver with strong Computer Science background.
- Follower of good engineering practices such as Test-Driven Design, Pair Programming, Continuous Integration, and Refactoring. Committed to good coding principles such as SOLID, DRY, and YAGNI.
- Over a decade of experience developing back-end server applications, web applications, web services, microservices, applets, and client applications.
- Polyglot programmer comfortable with variety of object-oriented and functional programming languages.
- Advanced: REST, Maven, Spring, PHP, Tomcat, SOAP, Python
- Novice: Machine Learning, Lift, SBT
Principal Engineer, Development - Time Warner Cable (acquired by Charter Communications) - 2011-Present
- Utilized Groovy, Grails, Scala, Spring, SBT, Lift, memcached, AngularJS, PostgreSQL, Oracle, SOAP, Jenkins, Git, Ruby
- Rewrote primary care portal application increasing monthly logins by over 1 million; new version a CableFAX Digital Award finalist in 4 categories (winner of Best Website Navigation against HBO.com, Hulu.com, and Netflix.com) with highest-ever ForeSee Customer Satisfaction score, 10 points higher than previous incarnation's best score.
- Developed new streamlined registration application for creating unified customer identities, increased conversion rate from 40% to 85%.
- Created generalized error-handling and reporting tools to aid in servicedesk ticket diagnosis and resolution, reducing customer calls by 50% over 6 months.
- Implemented automated self-care tools addressing largest generators of customer support calls, saving an estimated $4m/year.
- Developed high-availability RESTful API used across multiple customer-facing applications to simplify connectivity and business logic across dozens of heterogenous backend services, augmented with aggressive caching, circuit breakers, monitoring capabilities, and adminsitrative dashboard
- Migrated applications from error-prone manual deployment process to one-click continuous delivery approach with monitoring and rollback capabilities
Java Web Applications Developer - Rally Software (acquired by CA Technologies) - 2008-2011
- Developed SaaS Rally ALM project management software used by hundreds of enterprises to implement agile development in distributed environments. Product provided thousands of concurrent users with intuitive interface for managing agile projects, generating reports, tracking iterations, and planning releases.
- Created Rallydroid, an Open Source Rally client for Android operating system.
- Developed test-driven data migration to move customers out of a legacy mode in the product, resulting in the deletion of over 20,000 lines of code, reducing development and testing effort by 50%.
- Refactored large legacy application to remove running container dependency on tests, simplify deployment infrastructure, and use standard JPA-style annotations for domain objects.
Software Engineer - OpenLogic, Inc (acquired by Rogue Wave Software) - 2007-2008
- Developed multi-tenancy open source software management application OLEX. OLEX provided enterprise-friendly functionality to the process of requesting, approving, and downloading open source software.
- Created RESTful web services used by Open Source Census initiative. Web services provided all data functionality to the site, including complex reports that aggregated immense amounts of data stored in a warehouse schema.
- Contributed to company-sponsored open source OSS Discovery 2.0 application. Discovery used a set of rules, fingerprints, and heuristics to scan machines for open source software and report to the Open Source Census.
- Developed OLE, a J2EE enterprise software system used by companies such as GM, Bank of America, and Fujitsu. Product was installed behind company firewalls and allowed administrators to remotely push and install open source components using automatic integration and configuration scripts.
- Received Most Valuable Player Award - January 2008
Senior Software Developer - InsightAmerica (acquired by Acxiom Corporation) - 2004-2007
- Utilized Java, SQL Server, ColdFusion
- Developed e-DriverData, a system for processing multi-state driver history records. e-DriverData seamlessly interacted with 44 different states for driver history, each using different protocols and technologies.
- Refactored multi-dependency enterprise application to reduce system coupling. Improved performance by 600% through multithreading, reduced errors/instability almost entirely, and halved development time for system changes. Identified and fixed numerous security vulnerabilities in system.
- Architected centralized data access layer used by company's 10+ enterprise ColdFusion applications. Helped design a Java/ColdFusion bridge library to allow interaction with layer, improving system performance and stability and increasing level of code reuse between applications.
- Led developer workshops on topics including thread safety, computational arithmetic, and regular expressions.
- Received Special Recognition Award for Outstanding Performance - September, 2006
Lead Software Developer - Truth-N-Beauty Software - 2001-2004
- Utilized Java, Applets, AWT, ASP, VBScript, Flash, ActionScript
- Developed over 40 educational physics and astronomy simulations written as Java applets and Flash interactives for inclusion with science textbooks. Simulations allowed students to manipulate experimental parameters in virtual environment to see real-time changes. Customers included McGraw-Hill, Brooks-Cole, and NASA.
- Led team for a number of multi-component projects. Assigned work, kept people on task, and integrated final products. Was responsible for managing deadlines and releases, and maintained a record of consistent on-time delivery.
- Created a powerful framework for all products that performed essential common tasks. Functionality included customized Java classloader for applets that detected the user's system capabilities and adjusted the features of the simulation accordingly as well as a universal loading screen.
- Created an AWT-based graphical toolkit for use in all applications to provide for company-wide consistency in separately developed applications as well as speedy GUI development.
- Developed company web site and portfolio sites used to land new customers and allow existing customers to easily browser work-in-progress simulations and make suggestions, streamlining the code/revise process.
Computer Science Teaching Assistant - University of Rochester - 2001-2004
- Teaching Assistant and Workshop Leader for three different Computer Science classes over 6 semesters.
- Led workshops on procedural programming, object-oriented programming, algorithms, run-time analysis, inductive proofs, and data structures. Workshop became so popular that it had to be split into two separate sessions.
- Helped professors refine their lessons based on student feedback to help focus on problem-areas for students. Was partially responsible for one of the highest pass-through rates for the introductory C.S. classes in school history.
- Led groups of students in semester projects; responsible for guiding students through UML design work, assigning tasks, and integrating final projects.
- Certified ScrumMaster - 2009
- Sun Certified Java Developer - J2SE 5.0 - 2008
- Sun Certified Web Component Developer - J2EE 1.4 - 2006
- Sun Certified Java Programmer - J2SE 5.0 - 2005
Ph.D., Computer Science - University of Colorado at Denver (Anticipated 2017)
- Specialization in Theory and Algorithms
- Coursework: Graduate Algorithms, Theory of Distributed Computing, Theory of Automata, Computer Security, Artificial Intelligence, Computational Complexity, Applied Graph Theory
M.S., Software Engineering - Regis University (2009)
- Thesis: Quantitatively Evaluating Test-Driven Development by Applying Object-Oriented Quality Metrics to Open Source Projects
- Coursework: Information Systems Concepts, Information Systems Architecture, Object-Oriented Software Engineering, Software Requirements and Processes, Software Design, Enterprise Java Programming with Servlets/JSPs, Advanced Enterprise Java Programming with EJBs.
B.S., Computer Science - University of Rochester (2004)
- Focus on Systems
- Coursework: Data Structures, Computation and Formal Systems, Computer Networks, Operating Systems, Language Design and Implementation, Parallel and Distributed Systems, Cryptography, Computer Organization, Computer Models and Limitations, Design and Analysis of Efficient Algorithms.
- Technical Reviewer
- "Agile Web Development with Rails 5" by Sam Ruby (Pragmatic Bookshelf, 2016)
- "The Way of the Web Tester" by Jonathan Rasmusson (Pragmatic Bookshelf, 2016)
- "Pragmatic Unit Testing in Java 8 with JUnit" by Jeff Langr (Pragmatic Bookshelf, 2015)
- "Your Code as a Crime Scene" by Adam Tornhill (Pragmatic Bookshelf, 2015)
- "Functional Programming in Scala" by Paul Chiusano and Runar Bjarnason (Manning, 2014)
- "Neo4j in Action" by Jonas Partner, Aleksa Vukotic, and Nicki Watt (Manning, 2014)
- "Gradle, Beyond the Basics" by Tim Berglund (O'Reilly Media, 2013)
- "Functional Programming Patterns in Scala and Clojure" by Michael Bevilacqua-Linn (Pragmatic Bookshelf, 2013)