Hi, I'm James.

           

I am a software engineer. I've been doing it for 30+ years and have built everything in everything. I'm now getting to grips with how to do it with agents, without costing the 🌍.

I've worked at Nokia, F-Secure, LShift, OliverWyman, and universities. I've built large backend systems, frontends, mobile frameworks, in everything from DSP56001 assembly to python. I've worked on many DevOps/CI/CD improvements, led teams, had a couple of tours of academia, done data science (lots of databricks recently), UI design, and architecture/advisory, among many other roles over the years.

In short, I am a symmathecist, in the medium of software.

I've lived in a number of countries, 🇦🇺(Gday!) 🇫🇮(Tervetuloa!) 🇬🇧(Alright Bab!) and worked closely with collegues in many more (🇸🇪🇺🇸🇨🇦🇪🇸🇬🇷🇩🇪🇳🇱🇫🇷🇮🇳🇸🇦🇮🇪🇳🇴🇵🇹🇧🇷🇨🇷).

Details in the CV.

Scribbles

  • 2024-11-07 — Putting Green Software Principles into Practice.

    A paper on applying green software principles in practice, presented at LOCO2024.

  • 2024-03-14 — Advent of Code - AI edition - Day 2

    Each year I get to December and Advent of Code pops up, but coding is my day job so to spice things up I try and add a wrinkle, like "let's do it in the new hotness language" or whatever. Then by day …

  • 2023-12-26 — Advent of Code - AI edition

    Each year I get to December and Advent of Code pops up, but coding is my day job so to spice things up I try and add a wrinkle, like "let's do it in the new hotness language" or whatever. Then by day …

  • 2022-12-24 — Technical notes on this web site.

    How this site is built and deployed.

  • 2022-05-15 — Three Issues that sum up Technical Debt

    Digital transformation often feels like a frantic race to devise more scalable, flexible, and resilient enterprise IT systems that also support innovation and keep customers happy. But when it comes t…

  • 2020-10-02 — In Defence of Breaking Changes

    Is nuance absolutely awesome, or simply rubbish? The news quiz, 103:2 For the purposes of this post let's assume it's simply rubbish. Received wisdom is that breaking changes to supporting softwar…

  • 2020-08-27 — NFRs Considered Harmful

    An NFR is broadly defined as a 'quality' of the software, rather than what it 'does'. So 'the software shall add two numbers' is a functional requirement, while 'the software shall run within two min…

  • 2020-01-06 — Gardencam

    Some time ago I had the idea to stick a camera out a window, take a photo every few minutes, and stitch them together as a matrix that with a bit of luck would visualise the seasons. Thus: Raspberry …

  • 2019-10-28 — UK Parking Areas

    I heard Saul Griffith say recently that if you covered all the car parks in the USA with solar panels you would supply way more than the national energy requirements (I can't find the actual reference…

  • 2018-03-08 — QCon: Improving Life in Smaller, Heterogeneous Projects

    I did a talk. You might be able to see the vid here -> https://qconlondon.com/london2018/london2018/presentation/improving-life-smaller-heterogeneous-projects.html

  • 2017-12-31 — Photo Library Wrangling

    Imagine if you will that I take quite a few photos, but don't manage them well. Mistakes may have been made. Like, I've discovered that when you ask apple photos "don't import duplicates" it's not com…

  • 2016-03-29 — Application Patterns for the Outernet

    I've been meandering through the Long Earth series by Terry Pratchett (may Death be as kind to him as he was to Death) and Stephen Baxter (not met Death yet). It's a classic alternate universe setup, …

  • 2015-10-30 — The Life Changing Magic of Refactoring

    I'm really a unix guy, but I have to admit, the whole .NET/SQLserver stack is hugely empowering. An average employee can take it, and with next to no knowledge or experience, but with a lot of determi…

  • 2015-08-11 — GA4GH

    Gene sequencing has been diving in cost: ⊕ Fall of genome sequencing cost It's no longer in the wild ride of 2008, but still the cost is now low enough that genome data is piling up in resear…

  • 2015-07-09 — Signal Strength

    Another thumb-twiddling commute into the city, with only another listicle to entertain, and once again, no mobile signal. I tweet in frustration: Which received an actual reply! Challenge accepted. …

  • 2015-06-30 — On Being Almost There

    Personis is an ongoing line of research projects about how we can store personal data (thing location tracking, fitness trackers, etc) in a way that leaves us in control of our data but at the same ti…

  • 2015-04-30 — Swarming Spark

    Spark is a useful bunch of stuff for processing large amounts of data, offering a friendly and fast functional interface over map-reduce on a cluster of machines, with some extra bits like cacheable d…

  • 2015-03-31 — Let's Run Science, Part Iota

    In our last jaunt, we had a look at code that take all the various measurements of temperature that have been taken over the last few hundred years, and pull them together into something we can useful…

  • 2015-02-27 — Lunchtime Hack - Lets Run Science

    Who else likes visiting science museums? All those old apparatus ‐ bits of the radio telescope that first saw pulsars, longitude prize clocks, jury-rigged ingenious devices that captured the first gli…

  • 2014-12-24 — Playing with open NHS data, and a rant

    Open Data™ is being pushed quite heavily by the powers that be, which is mostly a good thing because It's useful information that I want to use, and I've already paid taxes for it. Also, this is a dem…

  • 2014-11-28 — Codemesh Day 1

    I was at day 1 of CodeMesh this year (you can see Tim's report on day 2 here. A quick recap: QOTD: There are 3 fire exits as marked, but we're confident that Erlang programmers who die will be restar…

  • 2014-10-31 — LocationHistory visualisation part 3

    I'm a bit like a dog with a bone about this LocationHistory thing (or a dog returning to his vomit?). Previously I had a bash at mapping my movements around London, then spent a bit of time trying to …

  • 2014-09-30 — Lunchtime Hack: Decoding LocationHistory

    Last month we took a look at how we might get our location history from Google and show it on a map. We found that the real deal is found at Takeout and consists of a file that's mostly an array of la…

  • 2014-08-28 — Lunchtime hack: My cycling routes

    Like most Android users (because I think it's the default) Google tracks my location. Thankfully, they provide a way for me to view and edit the data collected (Thus satisfying some major rules of per…

  • 2013-12-31 — Getting Sieves Right

    The great thing about being wrong is that you get to learn something. In a previous post I went on at length about the the sieve of eratosthenes. Now that I have been enlightened by Melissa O'Neill I …

  • 2013-07-31 — Expanding Reducers

    When playing with a new bit of language, it can be helpful to restrict the problem space to an old, well understood algorithm. For me at least, learning one thing at a time is easier! For this post, I…

h/t tufte-css