NATHANIEL ROBINSON / ENGINEERING

Engineering,
in the real world.

I build the software, infrastructure and automation that make useful things work. Then I keep them working.

PYTHON / KUBERNETES / INFRASTRUCTURE AS CODEBuilt. Deployed. Iterated.
Useful software.Repeatable infrastructure.Visible outcomes.

01 / FEATURED BUILD

One home. A lot of
engineering problems.

A live home-energy platform bringing solar, battery storage, EV charging and hot water into one place.

001SELF-HOSTED / HOME ENERGY

WattPilot

Smart home energy automation. From a nightly script to an integrated platform.

WattPilot started with battery automation. It grew into a Python application that connects Huawei FusionSolar, Octopus Intelligent, myenergi and Solcast—with a dashboard for seeing what's happening and scheduling what happens next.

Behind the interface: a Raspberry Pi running k3s, containerised services, MySQL, and a deployment path managed with Ansible, Terraform and GitHub Actions.

Look under the hood

THE SYSTEM AT A GLANCE

FusionSolarOctopusmyenergiSolcast
PYTHON SERVICESObserve. Decide. Automate.Cached API readings · scheduled jobs · MySQL-backed storage
PRIVATEEnergy dashboardAccess-protected controls
PUBLICThis portfolioThree read-only metrics

02 / THE ENGINEERING

The interesting part
is how it works.

01

Automate the setup.
Keep the intent in code.

Ansible bootstraps the Pi. Terraform describes the cluster resources and Cloudflare routing. Version tags drive the release workflow, with tests before deployment.

AnsibleTerraformGitHub Actions
02

Assume the API
will have a bad day.

Readings come from the selected solar installation, without mixing in other sites on the account. Cached data and clear messages when a service is unavailable help the system handle rate limits, changing API responses and outages.

PythonREST / GraphQLMySQL
03

Make the boundary
part of the design.

The portfolio is public; the energy controls aren't. A separate service receives only three approved solar and battery readings, with their timestamp and availability status. Account identifiers, charging schedules and API credentials stay private.

Cloudflare Accessk3sRead-only API

03 / HOW I WORK

I like understanding
the whole system.

From an awkward API response to a failed rollout, I enjoy finding the cause, making a practical fix, and turning what I learned into a test or a runbook.

This project is where I put that approach into practice: real integrations, real infrastructure, and feedback from everyday use.

My journey & skills

04 / WHAT'S NEXT

Got a system
worth building?

I'm looking for my next engineering opportunity.
Explore what I'm building on GitHub.

Find me on GitHub