Blog
Old posts
Some assorted older posts:
Ancient Posts
A few years a ago, I kept a blog about algorithms and optimisations. It's still online here.
Projects
Amqpwn
A no-nonsense messaging library for Haskell. The immediate goal is to have an AMQP client library whose API is wrapped in monads. The ultimate goal is to enable the creation of independent nodes that can exchange messages simply and securely across a network.
↳ GitHubVisigoth
A graph generation and visualisation GUI. The emphasis is on bling, and the goal is to simplify the creation of interesting graph animations. This is our 3rd year group project.
↳ GitHubAbandoned
BookTrader
An Android App to facilitate searching through a large database of books, tracking which users have which books and keeping track of "trades" between users. This was our 2nd year group project.
↳ GitHubHevolisa
A port of the Evolisa image approximater to Haskell. It starts with a blank image, and slowly, evolves the image into an approximation of the original. Technically, it uses a hill-climbing algorithm, not an evolutionary one, but HillClimbingLisa sounds stupid.
↳ GitHubAntique
LTorrent
A full BitTorrent client that distinguishes itself by what it lacks, namely, the ability to upload. This weakness of it makes its use perfectly legal in most countries. In addition, because certain other clients have a tendency to ban such "leechers", it uses an aggressive download policy, which involves actively deceiving other peers as to which parts of the files it has available for sharing. This was my high-school final project.
↳ GitHubSee my GitHub page for even more projects!
About
I am a computing student at Imperial College London and a software developer at RabbitMQ. I have experience designing and writing medium sized programs and working in and leading small teams.
My interests lie in concurrent and distributed systems. My focus right now is on improving the distributed computing capabilities of the functional language Haskell, by adding a network naming and message passing system similar to that of Distributed Erlang .
Teaching
I am an Undergraduate Teaching Associate at Imperial and help the first year students with their Programming courses in Haskell and Java. For the most part, my job is to ensure that they are appropriately awed by Haskell and sufficiently terrified of the graders for the Java tests.
The aforementioned students may find the following iCalendar timetables useful (generated automatically every night).
Work
I am also a member of the RabbitMQ team at VMware, where we develop a high-performance AMQP broker and supporting clients. This involves working with large codebases written in a variety of languages, including Erlang, Java, C# and C.
Live
-
01:46 Sat 28 January -
01:46 Sat 28 January -
01:43 Sat 28 January -
01:20 Sat 28 January -
22:30 Fri 27 January -
20:31 Fri 27 January -
19:52 Fri 27 January -
08:08 Thu 26 January -
19:35 Wed 25 January -
19:34 Wed 25 January -
19:34 Wed 25 January -
19:25 Wed 25 January -
13:56 Sun 04 December -
13:13 Mon 28 November
