I’m Philip Monk, a Software developer in the Bay Area.

https://github.com/philipcmonk, phil@pcmonk.me.

Experience

October 2018 - Present
Tlon Corporation

Working on Urbit again.

  • Improved Ethereum smart contracts. (Solidity)
  • Deployed Azimuth and Ecliptic (ERC721 token)
  • Worked on interfacing between Urbit and Ethereum (Hoon)
May 2017 - August 2018
Numerai

One of two main backend engineers at a hedge fund with crowdsourced market predictions through a public tournament.

  • Improved Ethereum smart contract for the Numeraire cryptocurrency. (Solidity)
  • Deployed Numeraire smart contract and performed initial distribution.
  • Wrote service to interact with the Ethereum blockchain, submitting user transactions and monitoring for Numeraire-related events. (Golang)
  • Tied above service into Numerai’s tournament web application. (Node, Mongo)
  • Wrote service to post Numeraire and Ether-related transactions to accounting software.
  • Wrote secure password management system with easy integration to shell scripts.
  • Was primary developer on the migration of Numerai’s primary API from Node/Mongo/REST to Elixir/Postgres/GraphQL.
  • Managed deployment of above API, as well as others. (AWS)
  • Managed a community of thousands of users, collected feedback, and provided technical support for users.
  • Wrote blog posts and technical documentation for users.
  • Oversaw the open sourcing of some modules and got the community involved with improving them.
  • Improved tournament design to eliminate exploits and improve submission quality.
May 2014 - August 201
Tlon Corporation

Worked on all levels of the Urbit system in a team of five, including:

  • Vere, an interpreter for Nock bytecode (in C)
    • Wrote the machinery for Dropbox-style sync of Urbit’s local filesystem to Unix
    • Wrote some of the garbage collection algorithms for the memory manager, eliminated memory leaks
    • Worked on the statistical profiler
  • Arvo, a non-preemptive operating system running under Vere (in the Hoon programming language)
    • Wrote a typed, revision-controlled, global filesystem
    • Implemented a fully end-to-end acknowledgment system for Ames, a network protocol on top of UDP
    • Made improvements to the web server, application manager, functional build system, and timer subsystems
    • Wrote various applications using all aspects of the system
  • Hoon, a purely functional, strongly typed programming language
    • Was one of the first to learn the language, before there was reference documentation
    • Wrote parts of the core libraries
    • Assisted in the design of new language features
  • urb, a Unix tool to interact with Urbit over HTTP (in Python)
    • Sole author
  • A FUSE filesystem that exposes Urbit’s global, revision-controlled filesystem to Unix (in Python)
  • The backend for a successful crowdfunding website (in Node)
  • Documentation
    • Wrote user tutorials, evangelism doc, programming tutorials, cookbook-style recipes, and reference documentation
  • Assisted users and open source contributors new to Urbit.
Fall 2013 - Spring 2014
Undergraduate Research in Mathematics at Arizona State University

Researched an open problem in combinatorics/graph theory, namely, how to count the number of spanning trees in the n-cube using bijective techniques. Presented research at the Southwest Undergraduate Mathematics Research Conference in February 2014.

Jan. 2012 - May 2012
Mathematics and Physics Tutor at Chandler-Gilbert Community College

Tutored college level mathematics and physics from Introductory Algebra to Calculus III, Differential Equations, and University Physics II.

Open Source Contributions

Author of Phlisped, a graphical programming editor experiment written in Racket.

Co-Author of hoon.vim, syntax highlighting in vim for the (then undocumented) Hoon language.

Education

B.S. in Mathemtics from Arizona State University (2012-2014,2017)

Skills and Technologies

Human Languages: English (native), Spanish (conversational), Russian (basic)

Computer Languages: C, Python, Elixir, Go, C++, Java, Racket/Scheme, Node, SQL, Hoon, Bash

Other Skills and Technologies: Systems programming, Linux, Git, AWS, FUSE, technical writing, community management

Publications

  • Urbit: A Solid-State Interpreter. Curtis Yarvin, Philip Monk, Anton Dyudin, Raymond Pasco. May 2016

  • Counting Spanning Trees Using Bijective Techniques. Presented at the Southwest Undergraduate Mathematics Research Conference. February 2014.

  • Horizontal Transformations of Functions: A Student’s Exploration. Scott Adamson, Philip Monk. OnCore. Arizona Association of Teachers of Mathematics. Fall 2013.

Hobbies

Sound engineering, hiking, ultimate frisbee, baseball, languages, cultures.