about
From the support desk to the servers.
I'm Ethan, 24, a self-taught Linux systems engineer. This is how I got here, how I work and where I'm going.
The story
- 20202020Education
National Senior Certificate, Jeppe High School for Boys
Finished school and went straight to work. No degree.
- Apr 2021Apr 2021Work
WhatsApp Support Consultant at Afrihost
It started on a support desk: fibre, ADSL, mobile data, web hosting and email, answered over WhatsApp. I consistently ranked in the top 15 of about 150 consultants.
- 20222022Project
Hosting triage CLI for the support desk↗
The same hosting problems kept coming back, so I wrote a Python tool that checked a client's DNS, email and website in one pass and printed the fix, ready to paste into the chat. About 10 consultants ended up using it, and it's what got me noticed when I applied to Nclose.
- Sept 2023Sept 2023Work
Junior Linux Engineer at Nclose (Integrity360)
A managed detection and response provider, where I've since been promoted to SysOps Engineer. I help run the platform their security monitoring depends on: the Elastic and OpenSearch clusters, the log pipelines that feed them, and Puppet across the Linux estate. Fully remote for over a year now.
- 20252025Project
Puppet, Foreman and Wazuh homelab↗
Rebuilt the patterns I use at work on my own hardware: Puppet, Foreman and a SIEM pipeline across five machines, to practise outside of client environments.
How I work
- 01
Phased Ubuntu to Debian migration of log collectors across three offices
Change safely. Every change has a way back.
Moving a financial asset manager's log collectors from Ubuntu to Debian across three offices, I used an IP swap script with a health check and a timed auto-revert, which kept disruption to a minimum.
Read case study
- 02
Applying an updated ISM policy to existing OpenSearch indices
Find the root cause. I don't stop at the symptom.
The team kept deleting old indices by hand on the compliance clusters. I found why: updated ISM policies were never applied to the indices that already existed. I aligned them with the change policy API on every compliance cluster.
Read case study
- 03
OpenSearch diagnostics and capacity forecasting tooling
Automate the second time. If I've done it twice, I script it.
Diagnosing an OpenSearch issue used to be a manual, multi-step investigation. My Python triage tooling takes it from about 45 minutes to about two minutes and warns us before a cluster runs out of capacity.
Read case study
What's next
- Kubernetes. I'm studying for the Certified Kubernetes Administrator exam, scheduled for 15 December 2026.
- Then MLOps. Running the infrastructure that machine learning depends on is where I want to grow after that.
- The role. A fully remote platform or observability role.