Software Craftsman and Computer Science Geek
- Passionate problem-solver with solid Computer Science background.
- Over a decade of experience developing back-end server applications, web applications, web services, microservices, applets, and client applications with strong focus on end-user's experience.
- Specialty in improving existing/legacy codebases and building scalable, performant, fault-tolerant back-end systems.
- 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.
- Polyglot programmer comfortable with object-oriented and functional languages
- Accomplished: Java, Git, Scala, HTML/CSS, Ruby, Spring
- Novice: MySQL, SOAP, SBT, Jenkins, Lift, Hadoop, memcached, Kafka, hazelcast, Thrift
- Desired: AWS, Docker, Mesos, Kubernetes, ElasticSearch, Spark, Cassandra
Senior Software Engineer - Twitter - 2017-Present
- Utilized Scala, Java, Git, Hadoop, Kafka, MySQL, REST, Thrift
- Enterprise data streaming team member, allowing businesses and brands to apply complex filters to Twitter's data firehose in real time
Principal Engineer, Development - Spectrum (formerly Time Warner Cable) - 2011-2017
- Rewrote residential and commercial primary care portal applications increasing logins to over 7m/mo, new version a 2014 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 high-availability RESTful middleware service layer used across multiple customer-facing applications to simplify connectivity and business logic across dozens of heterogenous backend services; augmented with caching, circuit breakers, monitoring, and administrative dashboard, handling over 1,000 requests/sec at peak load.
- Created generalized error-handling and reporting tools to aid in servicedesk ticket diagnosis and resolution, reducing customer calls by 50% over 6 months, saving an estimated $4m/year.
- Developed new streamlined registration application for creating unified customer identities, increased conversion rate from 40% to 85%, new users over 250k/mo;
- Designed and implemented successful team branching strategy and release process. Created numerous process support tools including detailed release notes generation script used by Product Owners and Scrummasters, saving hours of manual work per week.
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.
- 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.
- Created Rallydroid, an Open Source Rally client for Android operating system.
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 - Acxiom Corporation (previously InsightAmerica) - 2004-2007
- Utilized Java, SQL Server, ColdFusion, HTML/CSS
- 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 legacy 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.
Sun Certified Java Developer
- J2SE 5.0
Sun Certified Web Component Developer
- J2EE 1.4
Sun Certified Java Programmer
- J2SE 5.0
Ph.D., Computer Science - University of Colorado at Denver (Expected 2019)
- Specialization in Machine Learning, Theory, and Algorithms
- Coursework: Graduate Algorithms, Theory of Distributed Computing, Theory of Automata, Computer Security, Artificial Intelligence, Computational Complexity, Applied Graph Theory, Machine Learning
M.S., Software Engineering - Regis University (2009)
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