blobby tables

about blobby tables


2019-06-08

Hi, I’m Tim! I’m known online as “Blob”, because I chose the username blob8108 aged twelve. (Read 8108 on a 7-segment calculator to understand).

Currently I’m an engineer at Monzo. Before that, I studied Computer Science at the University of Cambridge.

My interests include parsing, compilers, and the future of programming languages.

I’m comfortable with hard technical problems, but I strongly value good user interfaces as well, and enjoy contributing to product design.

If you want to chat, particularly about software or making software better, drop me an email: tim@ this domain.

I’ve been programming for a while

A family friend first introduced me to programming with GW-BASIC. It looked something like this (it was old even then):

10 INPUT "What's your name?", NAME$
20 PRINT "Hello " NAME$ "!"
30 GOTO 10

Then I taught myself Visual Basic from a library book, and things escalated from there… I spent a lot of my free time programming, working on various side projects.

Scratch is fun

Scratch is an excellent beginner-friendly visual programming language. I joined when it was new, got involved in the community, and wrote a few projects for that niche audience.

tosh is my text-based Scratch project editor. It implements a new text-based programming language, entirely compatible with Scratch, and uses advanced parsing techniques to do away with most parentheses. Read the guide to get started, or read about its development.

scratchblocks is my tool for making screenshots of Scratch programs. The Raspberry Pi Foundation use it to write Code Club projects, and they supported my work to update it to support Scratch 3.0. It’s also used on the Scratch Forums and the Scratch Wiki.

Kurt was my first open-source project: a Python library for importing and exporting Scratch projects. I wrote it so I could generate Scratch projects by writing Python code, but a PhD student from UCSB used it for static analysis of Scratch projects, which means that I have one citation to my name! I gave a talk on Kurt at the 2013 Scratch conference in Barcelona.

I wrote some other code as well

Moo is my favourite project I’ve authored. It’s a small, fast tokenizer written in Javascript, to be used with your favourite parser.

I rewrote the core algorithm for Nearley, a parser for node.js using the Earley algorithm, to make it many times faster. For a while I helped maintain Nearley, in collaboration with the original author.

For my final-year dissertation, I implemented a tracing just-in-time compiler for a toy interpreted programming language I wrote.