James Pettit
<james.l.pettit@gmail.com>
https://github.com/etherealmachine
Full stack application developer. Loves agile web development, building low-latency rock-solid backends, and the occasional foray into machine learning.
Languages
Go, Python, Java, Javascript, C
Libraries
AngularJS, AppEngine, Polymer, Tensorflow
Systems
Redis, Spanner, Postgres, BigTable, Hadoop, Datastore
Experience
Software Engineer @ Google, Inc. 2014 - 2017
On the Skybox/Terra Bella team responsible for delivering satellite imagery and analytics to customers.
- Customizable web application to view, track, and analyze change over time across the globe.
- Golang backend, mixed AppEngine and microservice architecture.
- Polymer no-framework frontend.
- Personally responsible for the Spanner-based database microservice.
Technical Solutions Engineer @ Google, Inc. 2012 - 2014
On the team responsible for scaling Google support for millions of customers. Systems include:
- Web-based agent-facing customer support/relations portals (i.e. CRMs). Primarily written using an AngularJS frontend and Go-based backend with NoSQL-like databases.
- PubSub based automated processing related to order management, automated robot-customer interactions, and batch processing jobs.
- Internal auditing, authentication, and authorization of customer support requests.
Lead Programmer @ LEEPS Lab 2007 - 2012
- Published two Open Source frameworks for Experimental Economics
- Pettit, Friedman, Kephart, and Oprea. "Software for continuous game experiments". Experimental Economics Vol. 17, Issue 4.
- A Java-based framework with a plugin architecture based on dynamic class loading.
- Allowed rapid prototyping and completion of experiments running under soft real-time constraints in a multi-user networked environment.
- Full PDF
- Source and documentation available at https://leeps.ucsc.edu/cong
- https://github.com/RedwoodAdmin/RedwoodFramework
- Next-generation experimental software development system.
- Web-based frontend allowing HTML5 web development knowledge to be used to develop experimental software.
- Soft real-time backend written in Go using a Redis datastore.
M.S. Computer Science, UC Santa Cruz 2011
- Focus on machine learning and artificial intelligence.
- Developed advancement to Monte-Carlo Tree Search using Evolutionary Algorithms to bias the Monte Carlo simulation.
- Applied to the game of Hex and published:
- Pettit, Helmbold, "Evolutionary learning of policies for MCTS simulations", FDG 2012: Proceedings of the International Conference on the Foundations of Digital Games Pages 212-219
- Full PDF
- https://github.com/etherealmachine/hivemind
B.S. Computer Science, UC Santa Cruz 2007
Personal Projects
- https://github.com/etherealmachine/etherealmachine.github.io
- Static site generator for this page. Built in Go with a custom Markdown parser.
Go, Markdown, HTTP
- https://github.com/etherealmachine/zillow-kaggle
- Tensorflow and LightGBM machine learning models to improve the Zillow ZEstimate.
Python, Deep Learning, Tensorflow
- https://github.com/Leeps-Lab/otree-redwood
- Leverage Websockets to build new experiments in the field of Experimental Economics.
Python, Websockets, HTML5, Javascript, Polymer
- https://github.com/etherealmachine/novaterra
- Use Generative Adversarial Models to create terrain maps from Space Shuttle data.
Python, Deep Learning, Tensorflow
- https://github.com/etherealmachine/spyfall
- Pass-and-Play the game Spyfall on you phone, pure HTML and Javascript.
HTML, CSS, Javascript