About

I’m currently a graduate student at Northeastern University studying programming languages and type systems with Amal Ahmed. Previously, I helped start and run a worker-owned software contracting company, Position Development. I studied math and computer science undergrad at Brown University where I worked with Shriram Krishnamurthi. I’m interested in programming languages, education, and leftist politics. This is my personal website.

The easiest way to get in touch is via email: [email protected]. Note that if you have another email address for me, it will probably work as well. I’m currently located in Somerville, MA.

Publications

FunTAL: Reasonably Mixing a Functional Language with Assembly. Daniel Patterson, Jamie Perconti, Christos Dimoulas, and Amal Ahmed. To appear in PLDI 2017 (after revisions). PDF and appendix.

Linking Types for Multi-Language Software: Have Your Cake and Eat It Too. Daniel Patteron and Amal Ahmed. To appear in SNAPL 2017 (after revisions). PDF.

CaptainTeach: Multi-Stage, In-Flow Peer Review for Programming Assignments. Joe Gibbs Politz, Daniel Patterson, Kathi Fisler, and Shriram Krishnamurthi. ITiCSE 2014. PDF.

Python: The Full Monty―A Tested Semantics for the Python Programming Language. Joe Gibbs Politz, Alejandro Martinez, Matthew Milano, Sumner Warren, Daniel Patterson, Junsong Li, Anand Chitipothu, and Shriram Krishnamurthi. OOPSLA 2013. PDF, appendix and code.

Talks

Linking Types: Secure compilation of multi-language programs. January 2017 at the Secure Compilation Meeting at POPL2017. slides (no video).

Typed routing with continuations. April 2016 at the New York Haskell Meetup. slides (or with animations, which may be helpful) and video.

Types and Testing in Haskell. November 2014 at the New York Haskell Meetup. slides and video.

Resume

A current resume is available in PDF form.

I’m at github.com/dbp (code), twitter.com/dbp__ (politics), and instagram.com/dbp____ (food).

My public key is A98D4AF0. Old keys are 9A0C792F, B5FF6961. I’m at keybase.io/dbp, if that’s easier. My ssh public key is here.