Hey there! I see you're not using JavaScript. Just FYI, I use MathJax to display things that deserve to look like math.

Alex Clemmer obtained a BS in computer science from a middle-of-the-road state school in 2013. He had an ok-but-not-great GPA. 3 out of 5 officemates agree that Alex has programmed before.

Alex is mostly known for (1) turning Snapchat into a remote filesystem, (2) porting lisp to the Apple //e, (3) implementing Python 3 in a couple thousand lines of Haskell, (4) writing two chapters of the upcoming AOSA book, and (5) organizing !!Con.

Alex has been programming for about 4 years (as of early 2014).

Alex is currently employed at Microsoft.



Some nifty recent work I did in my free time

Snapchat FS — [code]
I reverse engineered Snapchat's private API. Snapchat FS is a client I wrote (with some help from @pencilo ) that allows you to use Snapchat to store and manage arbitrary files.

Turtles: turns Apple //e -> lisp machine — [video, writeup, code]
Wrote code to send the assembled lisp interpreter binary from a laptop through the audio jack, to the Apple //e, which then stores the lisp and opens up a REPL.

pyli—Python 3 compiler in < 4000 lines of code — [writeup, code]
Writing parsers and lexers is really hard. I wondered if I could write a parser for almost all of Python that anyone could understand. As soon as I finish the AST-to-bytecode step, this will be a complete compiler, but for now it's "only" a parser and lexer.

Completely transition all state serialization in Storm (Twitter's stream processing system) from the Java stock serializer to a type-annotated JSON — [code]
Storm is a stream processing system from Backtype (acquired by Twitter). Storm used to use Java's stock serialization capabilities to persist system state (useful, e.g., for checkpointing and reliability purposes). This patch completely replaces stock Java serialization with a type-annotated JSON called EDN. This solves issues #419 and #525, and supersedes pull request #497.

Adding Haskell's where clause to OCaml — [writeup, code]
I love Haskell's where clause. It is one of the features I really missed when I started learning OCaml, and eventually it got so bad, I ended up just extending OCaml syntax to support it.


Non-computer doings.

!!Con, founding co-organizer — [Website]
More than 40% of our 27 speakers were women, and all speakers were chosen by a blind program committee. More than a third of attendees were women. Our entire ticket stock sold out in under 15 seconds. We obtained more than $15k in sponsorships. The talks were all amazing.

Author, two chapters of the next Architecture of Open Source Applications volume — [Call for reviewers]
The chapters are basically expanded versions of my blog posts about my Python compiler. They cover the phases of lexing and parsing. The software is written with the goal that college sophomores can readily understand and modify it.


Here is how you can find me and stuff

I organize Hack and Tell Seattle. You can find me elsewhere: