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 - PresentAlpha 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 2025Alpha 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 2029Regent 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.