Skip to content

About

I fix things, and at some point that turned into building them. Three years ago I was taking first-line calls and swapping failed drives. Now I write the software the business sells and I look after the Linux boxes it runs on, which means I get to be both the developer and the person who gets rung at eight on a Sunday. That combination has changed how I write code more than any book has.

I'm studying for a BSc in Software Engineering at Regent College London alongside the job. Most of what I actually know came from breaking something first.

Experience

Software Engineer

June 2025 - Present

Alpha IT Solutions, London

  • Build and run the software the business uses and sells: a Windows security auditing tool in Python, a multi-tenant client portal in TypeScript that two client companies run on, and two live web apps. Front end, back end, and the servers underneath.
  • Provision and harden the Linux servers the business runs on. SSH cut back to key-only, fail2ban on anything exposed, host firewall through UFW, ClamAV on the paths that matter, and the whole box re-checked against a Lynis audit after every change.
  • Every hardening script I write backs up what it is about to touch and can be run twice without doing harm. That rule exists because I once changed a working config with no way back.
  • Set up remote monitoring and management across client machines using MeshCentral, including a nightly encrypted backup that pulls off-box over a WireGuard tunnel.
  • Audited the company domains for SPF, DKIM and DMARC, and found most of them on p=none with no reporting address configured.
  • Still take first-line calls. Writing the tooling has not replaced knowing what breaks.

Junior IT Technician

June 2023 - June 2025

Alpha IT Solutions, London

  • Diagnosed and fixed hardware and software faults for small business clients, first line, usually with the client standing over the machine.
  • Installed and set up new hardware, software and operating systems.
  • Wrote the support guides for the jobs that came in twice. Repeat calls on those dropped off.
  • Explained the fix in plain terms, and said plainly when a machine was not worth repairing.

Education

BSc Software Engineering

Expected 2029

Regent College London

Modules so far: Introduction to Programming, Data Structures, Software Development, Network Configurations.

Skills

Programming
Python, JavaScript, TypeScript, C#, SQL, Bash, HTML, CSS
Frameworks
React, Node.js, Express, Astro, Vite, Mongoose, Tailwind CSS, Tkinter
Data and tools
MongoDB, SQLite, Git, VS Code, PyInstaller, Stripe API, REST APIs
Infrastructure
Linux administration (AlmaLinux, Debian), VPS provisioning, nginx, WireGuard site-to-site VPN, MeshCentral RMM, encrypted off-site backups, pm2
Security
Host hardening driven by Lynis audits, fail2ban, ClamAV, UFW and nftables, SSH key-only authentication, vulnerability assessment, patch and end-of-life auditing, SPF/DKIM/DMARC, Cyber Essentials control mapping
Networking
TCP/IP, DNS, router and firewall configuration, VLANs, Unifi access points, small network design
Systems
Windows, Windows Update and WinRM administration, macOS, Linux
Support
First-line support, hardware and software troubleshooting, system diagnostics, OS installation and configuration, remote support, technical documentation

Outside the job

There's a home lab at the flat. Unifi hardware, a few VLANs, access points, and a couple of local servers talking to each other over a WireGuard mesh. Most of the networking and Linux I know started there, on kit I could afford to break.

I build and repair custom PCs, badly at first. Bouldering, and board games with far too many rules.

Get in touch

I'm looking for a software engineering role in London. References available on request. The portfolio isn't: the ShadowAudit source is public, both web apps are live, and I'm happy to walk through the code behind any of them.