James Earl Douglas

March 20, 2019

This file is available as PDF, DOCX, HTML, and Markdown.

Contact information

Email: james@earldouglas.com

Location: Boulder, Colorado

Time zone: Mountain

Summary

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 full-stack developer, I create frontend, backend, and middleware software products for enterprise systems, with an emphasis on functional programming. My preferred programming languages include Scala, Java, JavaScript, and Haskell. I utilize tools including AWS, Kubernetes, Heroku, and NixOS, and databases including MySQL, H2, and Blazegraph.

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.

Professional experience

Self-employed

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.

boodleAI

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.

Udacity

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.

Wikimedia Foundation

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.

Versal Foundation

Panel Member, June 2013 - February 2016

Review grant applications for open courses that spread knowledge as a catalyst to transform the world.

Versal

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.

Palantir Technologies

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.

Red Hat

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.

Equifax

Software Engineer, January 2008 - February 2011

Developed a multifactor authentication platform in Java for integration into disparate software and hardware environments.

Stanley Associates

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.

Boeing

Software Engineer, June 2005 - February 2007

Developed enterprise Web applications in Java for multiple missions.

Learning Technologies Center

Assistant Computer Programmer, May 2002 - May 2005

Developed course enrollment and organization optimization tools using artificial intelligence algorithms.

Organizations

Scala Study Group

Organizer, September 2012 - December 2015

Planned and led study sessions.

Taught Scala topics including functional programming, category theory, delimited continuations, and reactive programming.

Bay Area Haskell Users Group

Organizer, December 2013 - November 2015

Planned and led Haskell discussion sessions, lectures, and hackathons.

Education

Massively open online courses

FutureLearn

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

American Military University

Master of Science, Aerospace, 2006 - 2011

The University of Arizona

Bachelor of Science, Computer Engineering, 2001 - 2005

Minors in Computer Science, Electrical Engineering, and Mathematics.

Certifications

SpringSource Certified Professional, April 2009, SpringSource

ScrumMaster, February 2011, Danube

Publications

Secure Collaborative Environment

Facilitates the sharing of confidential information between organizations, to be used in conjunction with existing infrastructure.

PDF from US 20100100967, May 29, 2009

Impacts of Data Format Variability on Environmental Visual Analysis Systems

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