I am an expert back-end Scala developer and an experienced technical leader.
I am passionate about gaining a deep understanding of technical problems and the context around them, and using that understanding to efficiently produce reliable and maintainable solutions.
I believe that developing great software depends on many factors: the needs of the users, the objectives of the stakeholders, the constraints of the business, the skill sets of the team, and more. I enjoy navigating these complexities, and charting the route to a solution that both solves near-term needs and supports long-term objectives.
Freelance Scala Developer, November 2018 - Present
Provide technical advisory expertise on product roadmap planning and engineering strategy and management.
Provide engineering support, including feature development, architecture design and evolution, and documentation.
Recruit software engineering candidates for hire.
Conduct technical interviews for software engineering candidates.
Write tutorials on enterprise software development frameworks for publication.
Write certification test content for enterprise software development frameworks.
Build open-source projects including zio-env, zio-httpclient, zio-jdbc, and zio-servlet, for ZIO interoperability with environment variables,
HttpURLConnection, Java JDBC, and Java Servlets.
Vice President of Engineering, May 2017 - November 2018
Established effective and competitive engineering at the company though thought leadership and the development and execution of the engineering vision.
Managed multiple onshore and offshore engineering teams. Guided and supported product strategy and program management. Maintained the technology and engineering budget.
Kept the engineering teams happy and productive, and helped them navigate their careers. Reported to the Chief Operations Officer and the Chief Executive Officer.
Built open-source projects including scalatra-service for building asynchronous services in Scalatra, service-healthcheck for deploying health check endpoints in microservices, service-logging for adding Logstash logging to microservices, and service-metrics, for adding Graphite metrics reporting to microservices.
Director of Platform Engineering, August 2015 - May 2017
Guided the Platform team in building Udacity’s next-generation microservices platform as a service, as well as critical core services used by engineering teams across the organization. Set the vision and structure of the Platform team.
Kept the Platform team happy and productive, and helped them navigate their careers. Reported to the Director of Engineering and the VP of Engineering.
Built open-source projects including Geode for IP address geolocation as a service, ansible-marathon for deploying applications to Mesos through Marathon via Ansible, pygow for functional programming in Python, github-oauth-servlet for J2EE authentication using GitHub OAuth, and datadog-client for consuming the Datadog API.
Sr. Software Engineer and Technical Lead, November 2014 - July 2015
Improved MediaWiki search, based on Elasticsearch, and developed semantic Wikidata search, based on RDF and Blazegraph.
Contributed to the emerging service-oriented architecture that drives the evolution of the MediaWiki ecosystem.
Established a specification-driven development process with design by contract, continuous integration and code coverage. Focused engineering on intentional outcomes for users.
Reported to the Director of Platform Engineering.
Panel Member, June 2013 - February 2016
Reviewed grant applications for open courses that spread knowledge as a catalyst to transform the world.
Engineer and Co-founder, September 2012 - October 2014
Developed the Scala backend of the Versal platform for online education using a scalable event-sourced architecture.
Designed the continuous integration and deployment environments and processes.
Built open-source projects, including Jellyfish for dependency injection, FireOtter for specification-based testing, and Scamper for library performance comparison.
Reported to the VP of Engineering.
Forward Deployed Engineer, May 2011 - August 2012
Created the Java-based REST API for Palantir Gotham, enabling decoupled, mission-focused applications.
Standardized the build process for teams of forward deployed engineers using sbt and Ivy.
Built and extended data integration tools in Scala and Java for users in the intelligence community.
Senior Consultant, February 2011 - April 2011
Taught enterprise Java developers to build production-ready J2EE applications via rapid and scalable development best practices.
Coached multiple Scrum teams on efficient and repeatable agile development patterns.
Software Engineer, January 2008 - February 2011
Developed a multifactor authentication platform in Java for integration into disparate software and hardware environments.
Software Engineer, April 2007 - January 2008
Developed a secure collaboration software framework in Java for integrating disparate systems in a high-security environment.
Developed the enterprise architecture for Secretary of Defense Communications.
Software Engineer, June 2005 - February 2007
Developed enterprise Web applications in Java for government missions.
Assistant Computer Programmer, May 2002 - May 2005
Developed course enrollment and organization optimization tools using artificial intelligence algorithms.
Organizer, September 2012 - December 2015
Planned and led study sessions.
Taught Scala topics including functional programming, category theory, delimited continuations, and reactive programming.
Organizer, December 2013 - November 2015
Planned and led Haskell discussions, lectures, workshops, and hackathons.
Organizer, December 2011 - August 2012
Planned and led Scala discussions, lectures, workshops, and hackathons.
Master of Science, Aerospace, 2006 - 2011
Bachelor of Science, Computer Engineering, 2001 - 2005
Minors in Computer Science, Electrical Engineering, and Mathematics.
SpringSource Certified Professional, April 2009, SpringSource
ScrumMaster, February 2011, Danube
Facilitates the sharing of confidential information between organizations, to be used in conjunction with existing infrastructure.
PDF from US 20100100967, May 29, 2009
A discussion of the benefits and drawbacks inherent in data format variability in the context of environmental visual analysis systems.
PDF from The 87th AMS Annual Meeting, January 15, 2007, San Antonio