Petar Maymounkov

Petar Maymounkov Curriculum Vitae

Wed, Oct 22, 2014

Contact

Tel: 646-515-0875
Email: petar@maymounkov.org
Homepage: http://maymounkov.org
Twitter: @maymounkov
GitHub: http://github.com/petar and http://github.com/gocircuit

Interests

I an interested in languages and semantics of-and-within large software systems and how they affect engineering culture. I study company software stacks and how they dictate collaboration practices. As a result, I design new systems and languages for alleviating software hotspots that cause human friction.

In a more general setting of Human-Computer intercations, I create semantic frameworks for summarizing and interpreting statistical behavioral data of user interactions with digital systems.

As an integral part of the study of human-digital interactions, I design and implement massive-data processing and real-time analytics software. I have developed a principled holistic approach to designing large distributed systems, in relation to the nature of the data they flow and the user behaviors on the other end.

My present occupation (described below) are two related projects: Circuit (a dynamic cloud orchestration runtime) and Escher (a flow-based meta-programming language).

References

Dr. Christopher White Program Director, DARPA, Arlington, VA
David Mazières Associate Professor of Computer Science, Stanford University
Jonathan Kelner Assistant Professor of Applied Mathematics, MIT
Michel Goemans Professor of Applied Mathematics, MIT
Frans Kaashoek Professor of Electrical Engineering and Computer Science, MIT

Education

Massachusetts Institute of Technology

Doctor of Philosophy
Computer Science
In Computer Science and Artificial Intelligence Lab
Advised by Prof. Jonathan Kelner
Specialized in Algorithm Design and Analysis
Sep 2005 — Feb 2012
Cambridge, MA

New York University

Master of Science
Computer Science
In Courant Institute of Mathematical Sciences
Advised by Prof. David Mazières
Awarded McCracken Scholarship
Sep 2001 — June 2003
New York, NY

Harvard University

Bachelor of Arts
Mathematics
In Faculty of Arts and Sciences
Honors in Mathematics
Awarded Brian Young Scholarship
Sep 1997 — June 2001
Cambridge, MA

Industry experience

L3 / Data Tactics Corp.

Founder and author of products GoCircuit.org and Escher.io
  • The Circuit and Escher projects are developed under a grant from the DARPA XDATA initiative for innovation in massive-data processing.
  • I have hired and managed a team of four engineers for the duration of the projects.
  • Circuit is a software tool for dynamic orchestration of UNIX processes across multiple machines. It enables process-level control of entire datacenters from a single location and with a simple API.
  • Escher is a meta-programming language.
April 2013 — present
New York, NY and Arlington, VA

Tumblr, Inc.

Senior engineer
  • Manager: Blake Matheny
  • Focus: Research and develop infrastructure for cloud computation and management
  • Project: Build and maintain the Go Circuit platform — A programming environment, coupled with a runtime environment, for developing, deploying and maintaining distributed/cloud applications. The platform enables rapid and less error-prone development of distributed applications for massive-data analytics and other cloud-based applications.
March 2012 — April 2013
New York, NY

Public Library of America (PLA) & Berkman Center

Chief architect of back-end infrastructure
Consultant
June 2011 —
Cambridge, MA

Google, Inc.

Algorithm design for YouTube Team
Internship
  • Manager: Dr. Andy Berkheimer
  • Task: Design, analysis and experimentation with caching strategies for Google's global content distribution network
  • Deliverable: A multi-core/multi-machine platform for simulating caching strategies on massive historical data sets (Go Language)
Summer 2010
Cambridge, MA

Google, Inc.

Algorithm design for MapReduce Team
Internship
  • Manager: Dr. Greg Malewicz
  • Task: Design, analysis and implementation of partitioning/clustering algorithms for a distributed vertex-centric computational model
  • Deliverable: Variants on a clustering algorithm, implemented in a custom distributed language, as well as proof-of-concept on real-world data
Summer 2008
Mountain View, CA

Mitsubishi Electric Research Labs

Algorithm design
Internship
  • Manager: Dr. Matthew Brand
  • Task: Design a routing algorithm for QoS-sensitive applications in radio networks with probabilistic edge delays.
  • Deliverable: An approximation algorithm for the Stochastic Shortest Path problem for general and heavy-tailed edge-length distributions. See [4] and U.S. Patent [14].
Summer 2007
Cambridge, MA

Tower Capital Research

Researcher in statistical analysis
  • Manager: Mark Gorton
  • Research in arbitrage strategies and statistical detection of inert market events, with focus on US equity and analyst earnings expectations.
June 2003—June 2005
New York, NY

Harvard-Smithsonian Center for Astrophysics

The IOTA interferometer project
Part-time
  • Manager: Dr. Wesley Traub
  • Task: Design and implement the control-feedback software infrastructure of the IOTA interferometer.
  • Deliverable: Multiple Linux kernel drivers for the various exotic hardware (lasers, high-precision mirrors, etc.). A fail-safe server software that orchestrates the entire multi-machine system. See [13].
1998 — 2001
Cambridge, MA

Software projects and open source

Escher flow programming language

Author (Go Language)
http://escher.io
  • Escher was designed in response to studying the ways in which teams of engineers as well as software components communicate and collaborate with each other within a company software stack. Escher programs are networks of interconnected independently-executing routines, called reflexes, which communicate via asynchronous messages. Escher is a general-purpose meta-programming language like Lua and others.
2012 — present
New York, NY

Go Circuit Project

Author (Go Language)
http://gocircuit.org
  • Circuit is a general-purpose infrastructure for development and sustenance of distributed applications, which enables small to single-person teams to write and maintain complex and highly scaled cloud apps. Many common cloud technologies (like MapReduce, OpenTSDB, Kafka, distributed Redis, aspects of HBASE) can be replaced with short (100-200 lines of code) circuit programs. The circuit's flexibility and simplicity nurtures the development of custom purpose-specific cloud services, as opposed to retro-fitting complex monolithic open-source projects into costly-to-operate patchwork deployments.
2012 — present
New York, NY

Teleport Tool

Author (Go Language)
https://github.com/petar/GoTeleport
  • The Teleport Tool is a communication utility for Linux, Mac OSX and Windows, distributed under the Apache License, written entirely in Go, that allows you to: Shrink your devops workload by protecting your client/server deployments against network interruptions; Retrofit legacy software (or sloppily written new software) to benefit from automatic connection caching and pooling; Keep your interactive sessions (ssh and such) alive after you close your notebook's lid; and, Reduce the configuration complexity of your cloud applications.
2013 —
New York, NY

Vitamix

Author (Go Language)
http://github.com/petar/vitamix
  • Vitamix is a source-to-source compiler, coupled with a runtime logic, for "virtualizing time" in Go programs. It is intended to aid in the testing of and experimentation with time-sensitive "control" software, which is itself written in Go.
2012 —
New York, NY

GoDCCP

Author (Go Language)
http://github.com/petar/GoDCCP
  • GoDCCP is a user-space implementation of the extendable DCCP connection and congestion-control protocol. GoDCCP goes beyond DCCP by adding: reliable transport, end-to-end security and firewall/NAT traversal facilities. GoDCCP is designed as a plug-and-play peer-to-peer connectivity library, significantly easier to use and more extensible than libjingle.
2010 —
Cambridge, MA

GoHTTP

Author (Go Language)
http://github.com/petar/GoHTTP
  • GoHTTP is an advanced, modular HTTP server infrastructure with features like: keepalive, pipelining, multi-thread/multi-core, static file serving, caching, reverse-proxying, REST API and HTTP RPC, extensions, COMET, etc. GoHTTP was used to build the blogging platform Faff, which powers e.g. popalg.org, as well as the social API for the Public Library of America prototype site.
2010 —
Cambridge, MA

Tonika

Author (Go Language)
https://code.google.com/p/tonika/
  • Tonika is a secure, distributed routing system that replaces DNS and BGP. It is intended to enable a physical social network of people to inter-network, while forwarding global traffic exclusively along friend-to-friend links in an authenticated and encrypted manner. At its core, Tonika implements my recent work on oblivious routing schemes. See [2].
2010 —
Cambridge, MA

Go Language

Co-author
http://golang.org
  • I am a co-author in the Go Language project. I have implemented, optimized and maintain a large portion of the HTTP infrastructure in the Go Language Library.
2010 —
Cambridge, MA

Fountain and Online Codec

Author (C, C++)
  • Project: An instruction-level optimized encoder and decoder for various flavors of Fountain Codes and Online Codes (in C and assembler). A transport-layer congestion-control protocol (in C++), for media transfer over satellite links (high-throughput, high-latency).
2004-2005
New York, NY

Research projects

Linear regression preconditioning

with Haim Avron and Sivan Toledo
  • We devise a random preconditioning transform for solving linear regression problems, which improves over a family of Fast Fourier Transforms in practice. The resulting linear-squares solver beats LAPACK by almost an order of magnitude in speed. See [6] and [5].
2009
MIT and Tel Aviv University

Dynamic distributed routing

with Jonathan Kelner
  • We designed the first theoretically sound distributed routing scheme for dynamically changing networks. Our scheme is based on spectral graph methods. As a technical contribution, we establish new isoperimetric inequalities for Laplacians. See [2]. We extend this research to a theory that represents routing schemes (in general) as higher-order tensors. This representation captures prior combinatorial routing schemes, like Raecke’s routing via a distribution over trees, and provides new methods for finding such schemes as solutions to convex problems. See [15].
2008-2009
MIT

Routing by metric embeddings

  • I designed 3-dimensional hyperbolic embeddings of arbitrary trees, which allow for efficient bit representation. Based on these, I developed a distributed routing algorithm for cellular networks. This algorithm has been applied by Japanese wireless providers. See [11].
2006
MIT

Rateless erasure coding

with David Mazières
  • I co-invented the first linear-time universal (aka rateless or fountain) erasure correcting codes. The other independent inventors are Michael Luby and Amin Shokrollahi. This type of codes have been commercialized by the latter authors. They are now widely known as Fountain Codes and used by Qualcomm, Inc. With David Mazières, we developed a portable, optimized implementation geared towards applications in Satellite broadcast and wireless viral data distribution, see [8]. Consequently, I designed alternatives to Fountain Coding for network coding, see [9] and [7].
2002-2005
New York University

Distributed search

with David Mazières
  • We designed and implemented Kademlia: an efficient peer-to-peer routing and search algorithm. Today Kademlia is used in most peer-to-peer products: BitTorrent, OverNet, EDonkey, LimeWire, eMule, RevConnect, CoralCDN, and many more. See [3]. The latter publication enjoys over 2000 citations and is a building block of 15 US patents.
2001-2003
New York University

Engineering expertise

Numbers in brackets represent ball-park lines-of-code:
  • Principles and practices in Distributed Operating Systems.
  • Programming languages: C/C++ (3M), Go Language (500K), Python (30K), Java (100K), Julia (10K), MatLab (10K), Haskell (10K), Erlang (10K), JavaScript (50K)
  • Systems-level UNIX/Linux/BSD; POSIX networking and concurrency principles.
  • Principles of real-time control software design and instrumentation, as in servo feedback loops in Robotics or congestion control mechanisms in communications.
  • Information Coding Theory and software practices for overcoming corruption in communications and bandwidth optimization in complex network topologies.

Software

  • Systems and operations: Docker and Linux containers, Zookeeper, CoreOS, raft, etcd, NGINX, Hadoop, Mesos
  • Databases: MySQL, SciDB, Postgres, LevelDB, BerkeleyDB, Dremel, BigTable, HBASE, OpenTSDB

Theory expertise

  • Language Design: Towards minimal friction in expression of algorithmic intention in various interactive (concurrent) or scientific (numeric) domains of computation; towards separation of responsibilities and increased programming productivity in large development and sustenance efforts, involving multiple peering engineers with varying degrees of expertise.
  • Numeric optimization: Linear and semi-definite programming, interior-point and simplex methods, multiplicative-weights (boosting) methods
  • Statistical and combinatorial algorithm design: Markov processes on metric spaces, metric embedding techniques, spectral graph theory and graph approximations, clustering and routing algorithms
  • Massive data: Sparse approximation, Streaming algorithms and Data Structures

Service

Organizer of the Go Language New York (aka golang ny) Meetup.
Reviewed for:
  • ACM-SIAM Symposium on Discrete Algorithms (SODA)
  • ACM Symposium on Operating Systems Principles (SOSP)
  • USENIX Symposium on Networked Systems Design and Imlementation (NSDI)
  • International Symposium on Distributed Computing (DISC)
  • International Workshop on Peer-to-peer Systems (IPTPS)
  • IEEE Information Theory Workshop
  • IEEE International Parallel and Distributed Processing Symposium

Teaching

  • Teaching Assistant for course MIT 6.854/18.415, Advanced Algorithms, Fall 2008 with Prof. Michel Goemans

Talks and lectures

Presentations

  • Using the circuit to build cloud applications, Google TechTalk, July 2014, New York, NY
  • Day-to-day operations tasks with the circuit, Spotify, July 2014, New York, NY
  • Programming distributed apps with the circuit, DataDog, May 2014, New York, NY

Publications

Graph algorithms and spectral geometry

[1] Global Computation in a Poorly Connected World: Fast Rumor Spreading with No Dependence on Conductance, with Keren Censor-Hillel, Bernhard Haeupler and Jonathan Kelner. In 44th ACM Symposium on Theory of Computing, 2012.
[2] Electric routing and concurrent flow cutting, with Jonathan Kelner. In 20th International Symposium on Algorithms and Computation, 2009. In Elsevier Journal of Theoretical Computer Science, 2011.
[3] Kademlia: A peer-to-peer information system based on the XOR metric, with David Mazières. In First International Workshop on Peer-to-peer Systems 2002. This paper has over 2000 citations.
[4] Routing with probabilistic delay guarantees in wireless ad-hoc networks, with Matthew Brand and Andreas Molisch. In IEEE GlobeCom Wireless Communications Symposium, 2008.

Numerical algorithms

[5] Blendenpik: Supercharging LAPACK’s least-squares solver, with Haim Avron and Sivan Toledo. In SIAM Journal on Scientific Computing, 2009.
[6] Engineering a random-sampling numerical linear algebra algorithm, with Haim Avron and Sivan Toledo. In SIAM Workshop on Combinatorial Scientific Computing, 2009.

Information coding theory

[7] Methods for Efficient Network Coding, with Nicholas Harvey and Desmond Lun. In 44th Allerton Annual Conference, 2006.
[8] Rateless Codes and Big Downloads, with David Mazières. In Second International Workshop on Peer-to-peer Systems, 2003.
[9] Perpetual Codes: Cache-friendly Coding. Manuscript 2009.
[10] Online codes. As New York University Technical Report, 2002.

Metric embeddings

[11] Greedy Embeddings, Trees, and Euclidean vs. Lobachevsky Geometry. Manuscript, 2006.

Complexity

[12] On Radhakrishnan’s Proof of PCP Gap Amplification. Manuscript, 2007.

Systems and control

[13] First results with the IOTA3 imaging interferometer: The spectroscopic binaries lambda Vir and WR 140, with W. Traub, F. P. Schloerb, M. Brewer, M. Pearlman, et al. In The Astrophysics Journal, 2004.

Patents

[14] Method for Routing Packets in Wireless Ad-Hoc Networks with Probabilistic Delay Guarantees, with Matthew Brand and Andreas Molisch. United States Patent Application 20100128703, 2010.