SOFTWARE / MAPS / A CURIOUS MIND

I like figuring
things out.

Geographic shaded relief of Scotland from real elevation data, with the Hebrides, Orkney and Shetland in their true positions
Scotland · real terrain

Based in Inverness, Scotland

Map sources & detail ↗

I’m Jonathan, a software developer and former commercial pilot based in Scotland. I build software for practical problems, often involving maps, drone imagery and understanding what’s happening on the ground.

There’s usually something I don’t understand yet. That’s the part I enjoy.

A little more about me
A FEW OPEN QUESTIONS

On my mind.

Things I’m curious about.
Notes in progress, room to change my mind.

NEW INVESTIGATION / ENERGY & PLACE

Does local energy mean cheaper energy? ↗

Explore renewable generation, household prices and the questions between them. Follow the evidence with maps and an AI analyst.

LIFE & PERSPECTIVE

A reminder of what matters. ↗

Challenge, kindness, and a note I wrote when leaving school. A short reflection, with room to write your own.

01 / BUILDING WITH AI

What should we
hand over?

Agents can build. I’m interested in the judgment we bring.Open the note

I want to explore what it means to build well with agents. The interesting questions are about the problem we choose, the context we give, and how we decide whether the result is useful.

How much should a tool do on its own? Where should we stop, inspect and challenge an assumption?

A question to keep: what would convince me this actually works?

An experiment on this site ↗
02 / LINUX & OPEN SOURCE

Whose tools
are they, anyway?

The freedom to look inside matters to me.Open the note

I enjoy Linux and open source because I can understand, change and own the tools I use. That feels connected to the habit of taking things apart as a kid.

I’m thinking about how much freedom we give up for convenience, and which parts of our software we should be able to make our own.

A question to keep: could I still use this if the company behind it disappeared?

03 / MAPS & PERSPECTIVE

A different view.
A better question?

From the cockpit to the code, I like changing perspective.Open the note

I used to see the world from a cockpit. Now I spend more time looking at software, but maps, imagery and the physical world still pull me in.

Sometimes a problem becomes easier to understand when we change how we represent it. A map can reveal something a table hides. A small experiment can test an explanation.

A question to keep: what am I missing from this point of view?

Where maps meet practical work ↗
SELECTED WORK & EXPERIMENTS

Things I make.

Software is my way of turning
“what if” into something useful.

01 / SOLARVIEW · WEB APPLICATION

From a whole solar farm
to a single hot cell.

I designed and developed Solarview to turn aerial inspection data into something people can act on: find a problem, examine the imagery and produce a report.

My work connects the spatial data model, browser interface, server-side rules and image-processing integration.

What I built

A map gives findings their location. A table lets a reviewer compare classifications, severity and review status. Module reports bring optical and thermal imagery together with the assessment.

One important design choice: keep the original thermal observation separate from its interpretation, so a classification can change without losing the evidence.

Working with imagery or maps? Let’s talk ↗
LIFE-OPS / A PERSONAL WORKSPACE

Where did I put
the reasoning?

Mail
Find the original conversation.
Finances
Follow a number back to the ledger.
Projects
Keep the decision with its evidence.
Browser · command line · agent tools
02 / LIFE-OPS · IN PROGRESS

Software for the
rest of life.

I’m building life-ops, a repository of tools for the everyday things that tend to end up scattered across inboxes, documents and spreadsheets.

It brings together searchable mail, household finance tools and a shared home for projects, decisions and the evidence behind them. It’s also where I’m exploring how agents can help with practical work while keeping me in control.

What I’m building

Find the source. Mail search leads back to original messages. Finance views read from a Beancount ledger, with missing or unverified information made visible.

Keep the reasoning. Project records connect documents, decisions and actions. Revision history makes it possible to see what changed and revisit an earlier version.

Give agents useful boundaries. Browser, command-line and MCP tools work with the same project records. Agent access is scoped and revocable; an agent cannot record a person’s agreement to a decision.

This is an evolving personal system built around my own needs. It combines Go, Python, TypeScript and self-hosted services. The interesting part is making the pieces useful together, and learning which things are worth automating.

Building tools around your own work? Let’s talk ↗
03 / AN EXPERIMENT WITH PI

A useful first
conversation.

An AI guide that connects a visitor’s project to my documented experience, then helps them shape an introduction in their own words.

Inside the project

A Rust service runs a tool-free Pi session with a small public dossier. The visitor reviews draft suggestions before applying them. Requests have limits, and provider credentials stay on the server.

The guide helps with introductions; it cannot commit me to a project or send email on its own.

Try the experience guide ↗
A close view of the site's calculated terrain contoursBUILT FROM A HEIGHTFIELD
04 / THIS LITTLE CORNER OF THE WEB

Curiosity,
in the browser.

A personal website exploring Rust, Scottish landscapes and the small details that make software feel considered.

Map sources & how it works

This map uses real elevation data from Mapzen Terrain Tiles and the Natural Earth 1:10 million coastline. It is projected in British National Grid, with north up and no relocated island insets. Rockall is outside the displayed extent.

Shaded relief is rendered on a 500 m grid. The contour view uses 100 m elevation intervals on a grid of approximately 1.5 km. These are generalised overview maps, not survey or navigation data. Shading contrast is enhanced, but terrain locations and elevations are not invented.

Rust calculates the contours from the sampled elevations at build time. The map loads as a self-contained image, with no live map service or tracking.

Elevation: Mapzen / Tilezen. Europe terrain produced using Copernicus data and information funded by the European Union, EU-DEM layers. SRTM and GMTED2010 data courtesy of the U.S. Geological Survey; ETOPO1 from NOAA. UK terrain © Environment Agency copyright and/or database right 2015. Coastline: Natural Earth, public domain. Source attribution and licences ↗

THE THREAD RUNNING THROUGH IT

How I
got here.

As a kid, I wanted to be an inventor. I took things apart to understand them: what was inside, why it worked, and what else it could become.

Software gave that curiosity somewhere to go. I’m a former commercial pilot, now a software developer. I love logic, first-principles thinking and a challenge worth getting my head around.

I’m interested in contract and freelance projects, or a software development role where I can solve practical problems and keep learning.

Read my CV ↗ Download PDF ↓
A NOTE TO MYSELF / WHEN LEAVING SCHOOL

A difficult problem.
A little kindness.
Some perspective.

When I was leaving school, I wrote down how I wanted to approach life. I’d use different words for some of it now. These are the ideas I keep coming back to.

A life motto gives me something to return to when I lose sight of what matters.

01 / CHALLENGE

Stay with the difficult bit.

I enjoy the moment when something doesn’t make sense yet. Learning to fly, learning to code, understanding a problem: each has given me a reason to keep learning and trying.

“I will welcome any problems and trials that I may face today”
02 / KINDNESS

Remember the person.

How I treat people matters as much as what I manage to do. I want to stay curious about someone else’s point of view, especially when I’m frustrated or disagree.

“I will be kind, loving and considerate.”
03 / PERSPECTIVE

Begin where you are.

It’s easy to measure life against where I think I should be. I want to notice what’s here, enjoy being alive, and give my attention to what I can do today.

“Embrace it now and go from there.”
STILL A WORK IN PROGRESS

I don’t always get these things right. That’s why I wrote them down.

What would you remind yourself?A little space to think

In your own words.

If this resonates, take a moment to write something for yourself. You don’t need a complete philosophy, just a few words you’d want to come back to on a difficult day.

  1. Use words you would actually say.
  2. Include how you want to treat people.
  3. Leave room to change your mind.

The questions are starting points. You can also write straight into “Your reminder”.

This simply joins your answers below, entirely in your browser. Nothing is sent. Copy anything you want to keep before leaving or reloading.

Think it through with AI

Optional. Your notes, draft and follow-up messages go through Jonathan’s CLIProxy to its configured AI provider. This site holds AI conversations in memory for up to 30 minutes of inactivity; the proxy and provider may retain logs. Avoid sensitive information. Your writing is not saved in this browser and is lost on reload.

Checking AI availability…

LET’S FIND THE USEFUL PROBLEM

What are you
working on?

I’m always interested in a good problem. Tell me what you have in mind, and explore where my experience could help.

Email me directly ↗

Checking availability…

Only send information you are comfortable sharing with an AI service. Contact details can go in your email instead.

What is this based on?

These are the approved public facts behind its answers. Specific roles, outcomes and availability still need a conversation with me.

AI assistant, working from my experience and project notes.