David James


I have technical experience in: computer science, software engineering, machine learning, electrical engineering, and modeling & simulation. More broadly, I have experience in: entrepreneurship, leadership, and management. I have experience in public policy, with a focus on energy and the environment.




Somewhere, Earth


Hello, «my first name»

Reinforcement Learning

My favorite area in computer science is reinforcement learning (RL). Regarding theory, I read papers, watch lectures, and do problem sets. Regarding practice, I implement algorithms, replicate experiments, debug problems, build systems, and run experiments. To engage with the RL community, I attend reading groups, follow open source tools, and track RL companies. I am both excited and skeptical; to reduce confirmation bias, I read RL criticism and explore alternative approaches.


I designed and implemented a research project called Communicating Agents Seeking Information (CASI). It uses multi-agent deep reinforcement learning to explore how agents exhibit various kinds of cooperative and competitive behavior. Agents learn decentralized policies in a simulation with partial observability and private communication channels. The simulation engine is written in Rust and connects to PyTorch agents using gRPC. I implemented REINFORCE, PPO, & A2C with exploration bonuses.


I value people, collaboration, experiments, results, and culture. I make time to frame problems, define success, document design choices, test, review code, automate, teach, and learn.


Broadly, I'm interested in computer science, systems, ethics, mathematics, philosophy, and political economy. To list some examples: collective action, environmental policy, communication, decision-making, dialogue & deliberation, fairness, game theory, graph algorithms, knowledge representation, market mechanisms, natural language processing, preference aggregation, reasoning, and visualization.

“Today, the term "economics" usually refers to the narrow study of the economy absent other political and social considerations while the term "political economy" represents a distinct and competing approach.” -Wikipedia


I've served in these roles: founder / CEO, co-founder / CTO, software engineer, data scientist, machine learning engineer, technical advisor, and researcher. I've worked as an employee and contractor.


I've worked for companies including Apple, ARM, Trilogy, as well as various Bay Area startups. I founded two companies: a domain-specific search engine and a crowdfunding platform. I co-founded a genetic genealogy product. I've worked with government at MITRE and the San Diego Air Pollution Control District. Regarding not-for-profits, I've worked at Sunlight Labs and volunteered at Livestrong.


As an undergraduate, I double majored in Electrical & Computer Engineering and Plan II Liberal Arts at the University of Texas at Austin. After working in industry, I got a masters degree in public policy from the LBJ School of Public Affairs.


My favorite languages are Rust, Python, Haskell, and Clojure. I have experience with these... Statistical & scientific: Julia, Stan, R. Low-level: Assembly, C, C++, Verilog. For browsers: JavaScript and Elm. Logic programming: CML, Prolog. Knowledge representation: CycL, RDF, ZGL. General purpose: Erlang, Java, Lisp, Perl, Ruby, Scala, Scheme.

CycL in an ontology language used by Doug Lenat's Cyc artificial intelligence project.


In addition to the above, I enjoy cycling; reading; writing; listening, improvising, & composing music; and playing & designing board games.


«X is impossible» someone says.

Perhaps it is.

And perhaps we should ask...

  • What would make X possible?
  • What constraints can we relax?


My most recent open source creation is the Z Graph Language (ZGL), a graph definition language for humans. I use z graphs for personal knowledge management and knowledge representation & reasoning.

A z graph is a directed multigraph where loops are permitted and any value may be used as a node or edge.
“Personal Knowledge Management is the practice of capturing the ideas and insights we encounter in our daily life, whether from personal experience, from books and articles, or from our work, and cultivating them over time to produce more creative, higher quality work.” -Tiago Forte
“Knowledge representation and reasoning ... is the field of AI dedicated to representing information about the world in a form that a computer system can [use] to solve complex tasks such as diagnosing a medical condition or having a dialog in a natural language.” -Wikipedia


last update: 2021-03-30