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.
java.io.Closeableas a Monad
Sr. Software Engineer, Nov 2014 - present
Improve the full-text MediaWiki search system based on Elastic, and develop the semantic RDF Wikidata search system based on Blazegraph.
Contribute to the emerging service-oriented architecture and backend services that drive forward the evolution of the MediaWiki ecosystem.
Established a specification-driven REST API service development process, including design by contract, continuous integration, and code coverage. Focused engineering efforts on intentional outcomes focused on users.
Panel Member, Jun 2013 - present
Review grant applications for open transformative and foundational courses that spread knowledge as a catalyst to transform the world.
Engineer and Co-founder, Sep 2012 - Oct 2014
Developed the Scala backend of the Versal platform for online education.
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.
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.
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.
Software Engineer, Jan 2008 - Feb 2011
Developed a multifactor authentication platform in Java for integration into disparate software and hardware environments.
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.
Software Engineer, Jun 2005 - Feb 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.
Founder and Organizer, Feb 2014 - present
Plan and lead star parties and field trips.
Organizer, Dec 2013 - present
Plan and lead Haskell discussion sessions, lectures, and hackathons.
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.
Master of Science, Computer Science, 2014 - present
Master of Science, Aerospace, 2006 - 2011
Bachelor of Science, Computer Engineering, 2001 - 2005
Minors in Computer Science, Electrical Engineering, and Mathematics.
Coursera, Nov 2012
SpringSource, Apr 2009
Danube, Feb 2011
US 20100100967, May 2009
A secure collaborative environment to facilitate the sharing of confidential information between organizations, which can be used in conjunction with existing infrastructure.
Self-published, Oct 2010
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.
The 87th AMS Annual Meeting, San Antonio, TX, Jan 2007