I am a software engineer with experience in technical leadership, full-stack development, systems engineering, and community stewardship.
As a technical leader, I provide strategic and operational leadership to organizations and teams by building and communicating competitive engineering visions and guiding the cultivation and growth of individuals' careers.
As a systems engineer, I design and document large-scale software architectures and business communications architectures. My preferred architectural patterns include event sourcing and CQRS, service-oriented architecture (SOA), and microservices. I utilize architecture tools and frameworks including UML, DoDAF, GraphViz, and System Architect.
As a community steward, I organize programming events and study groups, lead programming lectures and workshops, and maintain open source software projects. I utilize collaborative tools including GitHub, GitLab, Bitbucket, Travis CI, CircleCI, and Jenkins.
Some of my favorite talks include hands-on category theory, functional refactoring, and discovering knowledge in linked data.
Some of my favorite open source projects include xsbt-web-plugin, codedown, and swagger-test.
Consulting Software Engineer, November 2018 - Present
Provide engineering support, including feature development, architecture design and evolution, and documentation.
Provide technical advisory expertise on product roadmap planning and engineering strategy and management.
Conduct technical interviews for software engineering candidates.
VP 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
Review 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 multiple 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 discussion sessions, lectures, and hackathons.
Functional Programming in Haskell, October, 2016, University of Glasgow via FutureLearn
Management and Leadership, December 2016, The Open University via FutureLearn
FP101x Introduction to Functional Programming, January 2016, Delft University of Technology via EdX
Artificial Intelligence for Robotics, Georgia Tech OMSCS, Summer 2014, Georgia Institute of Technology via Udacity
Functional programming principles in Scala, November 2012, Coursera
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