James Earl Douglas

About

headshot

A functional programmer with advanced experience developing production software in Scala and Java, James is passionate about continuous learning and keeping just outside of his comfort zone.

When not knee-deep in type theory, James can be found running, cycling, and stargazing around the San Francisco Bay Area.

Contact

Presentations

2014

2013

2012

2011

Projects

Exercises

Diversions

Articles

2014

2013

2012

2011

2010

2009

Experience

Wikimedia Foundation

Sr. Software Engineer, Nov 2014 - present

Versal

Engineer and co-founder, Sep 2012 - Oct 2014

Developed the Scala backend for an online education platform.

Designed the scalable event-sourced architecture, and both reference and production implementations. Built internal analytical and diagnostics tools, and helped design the continuous integration and continuous deployment environments and processes.

Released multiple open-source libraries, including Jellyfish for dependency injection via delimited continuations, FireOtter for human readable CSV-based specification testing, and Scamper for performance comparisons of popular REST libraries and frameworks.

Palantir Technologies

Forward deployed engineer, May 2011 - August 2012

Created the REST API, based on Java and JAX-RS, for Palantir Gotham (PG), a mature software suite used around the world for large-scale data integration and intelligence analysis. This enabled both customers and other forward deployed engineers to build decoupled systems that take advantage of the power of PG.

Standardized the software build toolchain and process for the teams of forward deployed engineers using a combination of sbt, Ivy, Scala, and Java.

Built and extended data integration and analysis tools in both Scala and Java for multiple customers across the intelligence community.

Amentra

Senior consultant, Feb 2011 - Apr 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.

Anakam

Software engineer, Jan 2008 - Feb 2011

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

Stanley Associates

Software engineer, Apr 2007 - Jan 2008

Developed a secure collaboration software framework in Java for integrating disparate software systems in a high-security environment.

Developed the enterprise architecture for Secretary of Defense Communications.

Boeing

Software engineer, Jun 2005 - Feb 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.

Volunteer experience

Versal Foundation

Panel member, Sep 2012 - present

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

Organizations

Bay Area Amateur Astronomy

Founder and organizer, Feb 2014 - present

Plan and lead star parties and field trips.

Bay Area Haskell Users Group

Organizer, Dec 2013 - present

Plan and lead Haskell discussion sessions, lectures, and hackathons.

Scala Study Group

Organizer, Sep 2012 - present

Plan and lead study sessions. Teach fellow students topics in Scala including functional programming, category theory, delimited continuations, reactive programming, and introduction.

Education

Georgia Institute of Technology

Master of science, computer science, 2014 - present

American Military University

Master of science, aerospace, 2006 - 2011

The George Washington University

Master of science, computer engineering, 2006 - 2007 (incomplete)

The University of Arizona

Bachelor of science, computer engineering, 2001 - 2005

Minors in computer science, electrical engineering, and mathematics.

Certifications

Functional programming principles in Scala

Coursera, Nov 2012

SpringSource Certified Professional

SpringSource, Apr 2009

ScrumMaster

Danube, Feb 2011

Publications

Barebones Spring MVC

Self-published, Oct 2010 (pdf)

A basic overview of some of the most commonly used components of Spring MVC that takes the reader through the development of an example Spring MVC application from scratch.

Secure collaborative environment

US 20100100967, May 2009 (pdf)

A secure collaborative environment to facilitate the sharing of confidential information between organizations, which can be used in conjunction with existing infrastructure.

Impacts of Data Format Variability on Environmental Visual Analysis Systems

The 87th AMS Annual Meeting, San Antonio, TX, Jan 2007 (pdf)

A discussion of the benefits and drawbacks inherent in data format variability in the context of environmental visual analysis systems.