Next available for work May 2024
Non dressage code which solves problems I'm interested in.
Squirrel Detector demonstrates a willingness to tackle a new technology (machine learning) and use pragmatic tools (python, MQTT) to realise something end to end.
Wellynews aggregates community news from my home town.
Shows sensible evolution of a long-running project into separate services which can then develop into standalone applications in their own right.
Demonstrates a commitment to openness and Internet standards by supporting RSS views of all content.
OpenStreetMap Jigsaw is a fairly unhinged exploration of the geometry of the OpenStreetMap dataset. Transforms the ~ 5 billion elements of an OSM extract into sorted graph of shapes which it exposes as a JSON API. This graph is used to infer readable place names solely from the arrangement of nested shapes. Trade-offs and optimizations to make this run to completion on an obtainable computer.
Attempting to show competence and a vague understanding of how computers work.
MQTT Scraper demonstrates a goroutine and the use of locks (which seem popular in the Go world) to control concurrent access to a shared resource. This application is routing metrics; probably a good example of the systems programming glue which Golang excels at.
Packaged as a container image to defer conversations about where it actually runs. Google Cloud Build for infrequent builds.
Go's most interesting feature is it's build in http server. This completely short circuits the need to agree on an application framework; just use net/http and get building.
NominatimAC is an example of a Spring Boot / Kotlin application which has been migrated inflight from Java. The proper documentation of optional values was an important improvement over Java.
This application has ~ 100 million records in its dataset demonstrating knowledge of working with large (won't fit in memory) data streams.
Whakaoko is another Kotlin / Spring Boot application with more moving parts and persistence. Long-lived run time which has todo real work against flaky third party URLs.
I used Kotlin for Advent of Code 2023 and it seemed to produce lower line counts than Java. The syntaxes for filtering, mapping and sorting were alot more memorable than their Java equivalents.
Java is still an important language which is predominant in whiteboard interview settings.
General Java competence is demonstrated in these Advent of Code 2022 submissions.
This intuition on line 45 of Day 15 part 2 was considered fairly novel by my peers.
Includes some token stream usage.
Cards is an example of how I'd use Scala and Play Framework for a standalone service.
Scala Futures and WS Client are a good fit for the long-running async HTTP fetches this application makes.
I do not feel that Scala 3 is applicable until it's officially supported by Play Framework.
Unsquashed real world code. Dealing with uncertainty and been a good neighbour in a shared code base.
Show me a hill you'd die on...
This. Feed test feedback slowly dies if we don't support the IDE now and then: guardian/grid#4286
Been able to customise your device using the skills from your day job was a big draw. Been able to read and contribute to front end code bases is still a useful collaboration skill.
I developed 2 Android apps with large user bases; Guardian Lite and London Bus Times Preview. The latter received a highly commended award in Transport for London's 2013 accessible app competition.