Skip to content

/var/log/career

Career

Written as system logs, because that is what a career is — a sequence of events with timestamps. In terminal mode these are real files, and grep searches every job at once.

  1. System Officer

    current

    Archaeology Data Service

    Mar 2025 — present

    Responsible for the VPS estate behind a national archaeology archive: patching, TLS, backups, disaster recovery and edge security. Also the person who works out why something is slow and moves it somewhere sensible. Most of what was manual when I arrived now runs on its own.

    • Linux
    • Bash
    • Python
    • PHP
    • Symfony
    • Docker
    • PostgreSQL
    • MySQL
    • Oracle
    • Cloudflare
    • Lucee
    • AWS S3
    • Windows Server
    • NFS
    2025-03-31 09:00:00 [INFO ] promoted role="System Officer" org="Archaeology Data Service"
    2025-04-04 10:30:00 [WARN ] incident every stakeholder metrics request answered by writing SQL by hand, worst at financial year end
    2025-04-16 11:40:00 [WARN ] incident disaster recovery planning found old data was not maintained beyond 90 days
    2025-04-17 09:20:00 [INFO ] onboarded approval to investigate phishing simulation testing, off the back of the disaster recovery work
    2025-04-22 15:20:00 [OK ] shipped metrics dashboard on Node, Express and React — joins, date-range rollups and Matomo stats behind self-service endpoints
    2025-05-09 09:30:00 [WARN ] incident remote staff pulling NFS filestore transfers back down the VPN and across several hops — archive conversions and downloads were crawling
    2025-05-09 14:30:00 [WARN ] incident distributed denial of service against a public archive service
    2025-05-09 18:00:00 [OK ] resolved mitigated at the Cloudflare edge with challenge rules; SNORT evaluated as a longer-term detection layer
    2025-05-16 10:10:00 [OK ] resolved archive search server recovered after an outage, then monitored through the following days
    2025-05-16 15:45:00 [INFO ] automated fuzzy matching script reconciling a rock art image archive against its records, after exact filesize and reference matching proved too brittle
    2025-06-02 10:15:00 [WARN ] incident database backups for every Oracle, PostgreSQL and MySQL instance were being run by hand
    2025-06-09 16:20:00 [OK ] automated scripted backups across all three engines — no manual step left in the routine
    2025-06-11 10:00:00 [INFO ] shipped API Platform service exposing collection, object and representation metadata to STFC Hartree, bearer authenticated and IP restricted
    2025-06-20 12:05:00 [OK ] automated every backup job wired to its own Slack webhook and bot, plus a log file — a silent failure is no longer possible
    2025-06-30 11:30:00 [INFO ] liaised technical contact for the partner API and for questions about ADS data; weekly meetings with the partner team
    2025-07-04 16:00:00 [INFO ] hardened disaster recovery plan written — DR team and escalation path, business impact analysis with RTO and RPO per system, dependency mapping, risk controls and response scenarios
    2025-07-08 08:05:00 [WARN ] incident web server crashing under normal traffic — a ColdFusion search tool was filling the Java heap on every request
    2025-07-10 17:30:00 [OK ] resolved found it in the Lucee exception logs: de-nested the query loops, preloaded thumbnails from the database ahead of the query, raised the heap ceiling from 512MB to 3GB, and confirmed with a heap dump in Eclipse MAT that it was on-heap pressure rather than a leak
    2025-07-18 10:45:00 [OK ] resolved retention raised and agreed: most databases now kept twelve months before deletion, up from 90 days
    2025-07-25 14:00:00 [OK ] resolved specified and rolled out a Windows Server remote desktop with university ITS; transfers now run local to the filestore, ~15 staff phased on in stages
    2025-08-05 11:40:00 [INFO ] hardened TLS certificate renewal and configuration taken over across public-facing services
    2025-08-26 09:45:00 [INFO ] migrated staff estate moved to Windows 11 ahead of the Windows 10 end-of-support deadline
    2025-09-22 10:30:00 [OK ] onboarded first staff enrolled onto the remote desktop after a testing period
    2025-10-06 09:50:00 [INFO ] adopted sole ownership of the remote desktop server — accounts, software updates and capacity planning
    2025-10-07 13:20:00 [INFO ] resolved unblocked a colleague's GitHub auto-deployment — directory permissions and group membership on the deploy account
    2025-12-08 11:20:00 [INFO ] automated Google Apps Script issuing grant review packs to reviewers, and an image backup that copies only what is new
    2026-01-13 11:30:00 [INFO ] reviewed reviewing colleagues' pull requests as a routine part of the team's workflow, not just raising my own
    2026-01-20 13:25:00 [INFO ] shipped Python and bash pipeline mirroring archive files to partner S3 storage, cron-scheduled at weekends — 26.7 TB transferred, routed by whether a collection is heritage science
    2026-02-02 15:05:00 [OK ] shipped first pull request raised and merged on my own, against a codebase I did not write
    2026-02-02 16:30:00 [OK ] hardened ClamAV scanning scheduled on cron across the estate
    2026-02-24 09:15:00 [OK ] automated daily reconciliation job comparing the S3 mirror against the archive and reporting any missing files
    2026-03-05 11:15:00 [WARN ] incident remote desktop crawling under concurrent transfers — the ceiling was scratch disk I/O saturation, not CPU
    2026-03-12 15:40:00 [OK ] resolved second physical drive added and users split across both; original sizing had come from watching real laptop workloads in Task Manager
    2026-03-17 11:00:00 [OK ] tested restore performed from an automated backup and verified clean
    2026-05-14 10:00:00 [INFO ] presented presented and joined the roundtable at the MAIA COST Action stakeholder workshop in Lisbon — AI in archaeology, and why training data quality decides whether it helps
    2026-06-08 15:10:00 [INFO ] automated Google Apps Script and Qualtrics tooling built for research teams collecting survey data
    2026-08-03 09:40:00 [WARN ] incident WordPress instance exposed to wp2shell — two chained flaws allowing code injection with no login and no user interaction; sole responder on call that day
    2026-08-03 11:20:00 [ERROR] incident unauthorised administrator accounts present — the exposure had been acted on, not just theoretical
    2026-08-03 14:15:00 [OK ] hardened patched, then worked the incident: unauthorised administrator accounts found and removed, all admin credentials rotated, logs swept for further indicators
    2026-08-11 14:05:00 [INFO ] shipped Tabby SFTP plugin built to an accessibility requirement — dark-mode transfer client with copy/paste and edit-in-place saving straight back to the server
    2026-08-18 10:20:00 [INFO ] shipped Tabby server health plugin polling top for CPU, memory load and uptime at the terminal
    2026-08-19 14:20:00 [INFO ] tested phishing simulation close to deployment
  2. Digital Archives Assistant

    Archaeology Data Service

    Apr 2024 — Mar 2025

    Archive ingest and preservation work, increasingly automated. Building tooling in this role is what led to the System Officer post.

    • Python
    • SQL
    • Windows
    2024-04-01 09:00:00 [INFO ] hired role="Digital Archives Assistant" org="Archaeology Data Service"
    2024-06-11 10:15:00 [INFO ] onboarded OASIS helpdesk support, answering tickets and writing up the common queries as a blog post
    2024-07-15 11:20:00 [WARN ] incident archiving a digital asset meant repeating the same manual steps on every deposit
    2024-09-02 16:45:00 [OK ] automated built a set of Python executables collapsing those steps into a single run
    2024-10-08 13:40:00 [INFO ] cataloguedHS2 GIS archiving
    2024-11-19 10:30:00 [INFO ] tested test cycles for the new Depositing Ingest tool, defects fed back to the developers
    2025-02-06 14:15:00 [INFO ] resolved workstation hardware faults diagnosed and repaired in house
  3. VLE Support Officer

    University of York — Digital Education Team

    May 2023 — Apr 2024

    Took departments across the university through the migration to Blackboard Ultra — training, documentation and at-desk support. Heavily public-facing, and the role where I learned to explain technical change to people who did not ask for it.

    • Blackboard Ultra
    • MkDocs
    • Git
    • GitHub
    • Camtasia
    2023-05-01 09:00:00 [INFO ] hired role="VLE Support Officer" org="University of York, Digital Education Team"
    2023-07-24 13:00:00 [INFO ] onboarded weekly workshops and drop-ins teaching staff to build modules in Blackboard Ultra
    2023-09-11 10:40:00 [INFO ] shipped video guides written and edited in Camtasia for the Ultra transition
    2023-10-30 15:20:00 [INFO ] migrated VLE support documentation rebuilt in MkDocs, maintained through git and GitHub
    2023-11-20 14:00:00 [INFO ] reviewed shared and reviewed code through GitHub with the Digital Education Team — first professional experience of working that way
    2024-01-15 11:05:00 [INFO ] liaised point of contact between academic departments and the VLE Transformation Project team
    2024-03-04 12:00:00 [OK ] awarded Making the Difference award, Student and Academic Services — customer service excellence, continuous improvement, student experience
  4. Digital Archives Assistant

    Archaeology Data Service

    Mar 2021 — May 2023

    Day-to-day curation of a national archaeology archive. Where I learned SQL properly, and where preservation formats stopped being an abstraction.

    • SQL
    • OpenRefine
    2021-03-01 09:00:00 [INFO ] hired role="Digital Archives Assistant" org="Archaeology Data Service"
    2021-05-12 10:25:00 [INFO ] queried daily SQL against the archive database to correct and update collection metadata
    2021-09-08 14:50:00 [INFO ] migrated format assessment work — lossy against lossless, and what survives long-term storage
    2022-06-15 11:30:00 [INFO ] cataloguedcollection records maintained at volume, accuracy checked against deposited material
    2022-10-05 09:30:00 [INFO ] presented represented the organisation at 3D modelling and XML ontologies workshops in Pisa
    2023-04-03 14:00:00 [INFO ] presented wrote and delivered a paper at CAA Amsterdam on HS2 and UNPATH'D Waters against FAIR principles
  5. Placement Student

    Archaeology Data Service

    Apr 2020 — Jul 2020

    First contact with the archive, and with the idea that cataloguing at scale is a data problem.

    • OpenRefine
    2020-04-01 09:00:00 [INFO ] hired role="Placement Student" org="Archaeology Data Service"
    2020-05-20 13:10:00 [INFO ] cataloguedDerbyshire archaeological journals catalogued; subject terms consolidated for retrieval
    2020-06-24 15:35:00 [INFO ] shipped monograph volumes added and edited for the Oxford University School of Archaeology series
    2020-07-01 16:00:00 [OK ] left placement complete; OpenRefine used throughout to reconcile catalogue data