Senior Software Engineer
Apollo Education Group
Assumed ownership over several services related to Apollo's Career Guidance System for the purpose of maintenance, performance improvements, and cost reduction.
- Replaced a survey service containing hard-coded relationships and code paths with a generic schema driven service using a robust rules engine to allow front-end developers to author new surveys for collecting data without updates to the survey- service code base. Improved response times from 200ms to 20ms by using the new methods.
- Developed a client interest survey and scoring algorithm to recommend careers based on John L. Holland's RIASEC theory using the survey framework above.
- Developed a salary and labor statistics service replacement based on raw data feeds from US Bureau of Labor and Statistics, ONETOnline.org, and the U.S. Census to eliminate a major third party API expense while improving features and data resolution.
- Implemented annotation-based monitoring APIs to eliminate monthly NewRelic monitoring expenses with self-hosted Graphana and Graphite servers.
- Improved API response times from 300ms to 10ms on oracle backed services by migrating code and connection pools from heavy Spring-Data JDBCTemplate implementations with Hibernate on Tomcat's DBCP pools to much faster Sql2o data bindings on Hikari-backed datasources.
- Moved performance improving template code to shared libraries, documented them, and applied the patterns to other core services.
- Took a lead role in maven dependencies by implementing Maven BOM patterns of dependency management and core imports while also moving code from Java 6/Tomcat 6 to Java 8/ Tomcat 8.