Continuous improvement of software and people
( email@example.com | Website | GitHub | Twitter | LinkedIn )
I am passionate about delivering quality software at ludicrous speed. I believe in collaborative thinking in an open community based on trust, teamwork, and transparency. Business leaders reach out to me because I am focused on providing leadership to software teams looking to move toward a more agile and responsive way of building software solutions. Not only do I transform the software, I am also committed to maintaining an equally significant impact on the people.
Here are some open-source libraries I created and/or currently maintain:
I have also contributed new feature development, bug fixes, and documentation to others including: Clojure, ClojureScript, liberator, cljs-time, cljs-ajax, tentacles, dieter, speclj, grails-core, RailsAdmin, Redcarpet, Kitematic, and many others.
Staff Software Engineer, CircleCI
October 2017 — Present
Our continuous integration and delivery platform helps teams release quality code, faster.
Protocol Buffers (protobuf),
VP of Engineering, Flye
March 2017 — October 2017
As the VP of Engineering, I acted as the principal engineer and architect; designing, building, and maintaining a suite of microservices to ensure the products remain agile, autonomous, and adaptive. I also worked to nurture an engineering culture of continuous improvement of software and people.
- Designed and maintained a RESTful API for both web and mobile clients. Written in Clojure using Immutant and liberator.
- Built a real-time event stream microservice to send server-sent events to web clients. Written in Node.js consuming messages from Redis.
- Maintained several legacy Node.js services; making fixes and replacing with more suitable solutions when applicable.
Senior Software Engineer, CircleCI
August 2016 — March 2017
Building a continuous integration and delivery platform in Clojure and ClojureScript.
- As a member of the Growth Team, my focus was to discover and implement features to improve user experience and increase user engagement in the CircleCI product.
- I worked with product owners, data scientists, and other engineers to make data-driven decisions. A/B testing, feature flags, incremental feature rollouts, behavior analytics, and other processes to ensure new features were reliable, stable, and valuable to users.
- As a senior engineer on the team, I worked with and provided mentorship to others on the team; helping others new to Clojure and ClojureScript. This involved using code reviews, pair programming, and instituting “function of the week” to improve everyone on the team.
July 2013 — August 2016
- Worked with accounting professionals to build a full-featured ledger system and track loan amortization schedules. This required very precise mathematical equations to ensure accuracy to the penny. Clojure, ClojureScript, and Datomic were used.
- Added features, tests, and stability to a Backbone.js application which dealt with 3D modeling and dimensional price estimates of pool liners.
May 2012 — June 2013
EdgeCase is now part of Neo, doing the same great work with a growing global team.
As a Client Principal, I worked with clients from the introductory call, through product inception and into development. I also provided project management and high-level technical guidance.
I worked with clients ranging from an entrepreneur with an idea for a startup to those who work for larger companies looking to solve a particular business problem. In both scenarios, I assist the client in defining a vision and scoping an appropriate first release and from then on out I am the primary point of contact and technical lead for the client.
Software Artisan, EdgeCase
October 2011 — May 2012
- Developed a Ruby on Rails application which allows users to create their own paid websites. Credit card payments, social networking integration with Facebook and Twitter, and custom site theming are some of the major features.
- Implemented an ETL system in Ruby. This application read in thousands of records from a pre-existing datasource, performed transformations, logic, and analytics before posting to a pre-determined endpoint. The application was written using multi-threaded workers using the Thread Pool pattern.
July 2010 — October 2011
Provide development and coaching to all levels of clients’ developers in agile development techniques including TDD, continuous integration, source control, clean code, refactoring techniques and legacy rescue.
- Successfully integrated Groovy and Grails into an existing J2EE application in order to meet the client’s needs for drastic workflow changes. Also coached the client’s existing developers unfamiliar with Groovy and Grails in proper agile development with the new tools.
- Enhanced a largely non-tested legacy Java application by first wrapping with tests to ensure current functionality was maintained. This allowed the development team to safely modify and extend the application with confidence.
- Worked on a legacy Perl project introducing agile development techniques. Developed and published a BDD test framework in Perl to ease in the testing of the application. This allowed the developers to write much cleaner code and expressive tests which revealed the intent of the working code.
April 2008 — July 2010
Building medical management software for payers, providers, and patients. Our flagship product ThinkHealth, which automates utilization case, disease, and population health management workflows.
- Implemented an integration test-framework written in Python to synchronize testing of multiple cooperative systems. This application accesses common datapools in XML and JSON, transforms with XSLT using Jython, and performs tests written in JUnit and IBM’s Rational Functional Tester (RFT**.
- Built fully automated functional tests to interact with multiple systems and provide feedback regarding the synchronization of interactions.
- Designed test plans and develop JUnit 4.x tests to consume exposed web-services adhering to a WSDL contract and sending data using SOAP/REST.
- Worked in both large and small teams in an agile environment to implement new J2EE functionality by applying core technologies such as EJB 3, Spring Framework and Hibernate.
- Engaged in industry standard best practices using SVN, Maven, Hudson CI, and Bugzilla issue tracking.
- Installation and configuration of Oracle 10g databases and WebLogic servers on both Linux and Windows.
Oracle Database 10g
June 2005 — December 2007
- Sole creator from inception to implementation of a VB Application used to automate the creation and analysis of large financial spreadsheets. This was used to accurately and efficiently analyze revenue and expense amounts accumulated by client engagements.
- Created an application to parse timesheet data from generated HTML files to send to other applications for analysis; this saves the user 8 labor-intensive hours per week while eliminating countless errors.
- Applied advanced mathematical and analytical abilities to greatly improve functions and automate the reconciliation process of many large, relational spreadsheets.
- Worked with managing directors nationwide to gather requirements, enhancements and revisions to the software.
- Coordinated meetings to present project updates and train team members on functionality enhancements.
The Ohio State University, 2002 — 2008
B.S. Computer Science & Engineering
- East Asian Minor in Japanese
- Business Minor
Activities: Theta Tau Professional Engineering Fraternity